Cobalt RaQ3 という古い機材の BIND を 9.2.3 に入れ替える必要が出てきたので、そのメモ。
rpm -bb したときに最終段階で "File not found by glob" というエラーが出るので、原因と対策方法を調査中。
- bind-9.2.1-1.7x.2.src.rpm (Red Hat Linux 7.3 Updates Sources) を入手。
- bind-9.2.3.tar.gz を入手。
- rpm -ivh bind-9.2.1-1.7x.2.src.rpm を実行。
- cd /usr/src/redhat/SPECS を実行し、次の内容でパッチする。
--- bind.spec.orig Wed JOL 17 05:48:12 2002
+++ bind.spec Wed Mar 3 17:12:22 2004
@@ -1,23 +1,23 @@
%define server 1
Summary: A DNS (Domain Name System) server.
Name: bind
License: BSD-like
Group: System Environment/Daemons
-Source: ftp://ftp.isc.org/isc/bind9/%{version}/bind-%{version}.tar.bz2
+Source: ftp://ftp.isc.org/isc/bind9/%{version}/bind-%{version}.tar.gz
Source1: bind-manpages.tar.bz2
Source2: named.sysconfig
Source3: named.init
Source4: named.logrotate
Source5: keygen.c
-Patch: bind-9.2.0rc3-varrun.patch
-Patch1: bind-9.2.0-key.patch
-Patch2: bind-9.2.1-overflow.patch
+#Patch: bind-9.2.0rc3-varrun.patch
+#Patch1: bind-9.2.0-key.patch
+#Patch2: bind-9.2.1-overflow.patch
Url: http://www.isc.org/products/BIND/
Buildroot: %{_tmppath}/%{name}-root
-Version: 9.2.1
-Release: 1.7x.2
+Version: 9.2.3
+Release: 1BuildRequires: openssl-devel gcc glibc-devel
Requires(pre,preun): shadow-utils
Requires(post,preun): chkconfig
@@ -55,13 +55,13 @@
required for DNS (Domain Name System) development for BIND versions
9.x.x.%prep
%setup -q -n %{name}-%{version}
-%patch -p1 -b .varrun
-%patch1 -p1 -b .key
-%patch2 -p1 -b .sec
+#%patch -p1 -b .varrun
+#%patch1 -p1 -b .key
+#%patch2 -p1 -b .sec%build
LTVERSION=`libtool --version |awk '{ print $4 }' |sed -e "s/\.//;s/\..*//g"`
if [ "$LTVERSION" -lt 14 ]; then
export LTCONFIG_VERSION=1.3.5 - rpm -bb bind.spec を実行し、バイナリパッケージを作る。*1
- この手順どおりだと、次の3つのエラーが発生してパッケージの作成に失敗する。
エラー: File not found by glob: /var/tmp/bind-root/usr/lib/libisccc.so.*
エラー: File not found by glob: /var/tmp/bind-root/usr/lib/libisccfg.so.*
エラー: File not found by glob: /var/tmp/bind-root/usr/lib/libdns.so.*
そこで bind.spec からの次の内容をコメントアウトする。
これで rpm -bb をやり直してみたら次のパッケージができました。
#%{_libdir}/libisccc.so.*
#%{_libdir}/libisccfg.so.*
#%{_libdir}/libisc.so.*
しかし実際にインストールしてみようとすると、こうなります。
安易に spec ファイルから消してはいけなかった模様。そこでビルドのログから原因を調べることにします。(nohup でログを残してます)
# rpm -Fvh bind*9.2.3*.rpm
error: failed dependencies:
libdns.so.11 is needed by bind-9.2.3-1
libisccc.so.0 is needed by bind-9.2.3-1
libisccfg.so.0 is needed by bind-9.2.3-1
libdns.so.11 is needed by bind-utils-9.2.3-1
*1:この際にいくつかのパッケージのバージョンが古いと言われるハズですので、必要に応じて依存パッケージのバージョンを上げること。