Archive for the ‘linux’ Category

あぁ勘違い

月曜日, 11月 1st, 2004

大変なことが判明した.どうやらRedHatのバージョンが7.3ではないようだ.先ほどから挙動がどうもおかしいので,ちゃんと調べてみることにした.

# cat /proc/version
Linux version 2.4.7-10 (bhcompile@stripples.devel.redhat.com) (gcc version 2.96
20000731 (Red Hat Linux 7.1 2.96-98)) #1 Thu Sep 6 17:27:27 EDT 2001

あれ?7.1?

# cat /etc/redhat-release
Red Hat Linux release 7.2 (Enigma)
#

ということ.つまり,このサーバ上のRedHatは,7.2だったというのだ.どうりでなんか表示がおかしかったわけだ・・・
さて,気を取り直して,なぜ先ほどアップデートができなかったのかを検証してみた.これは LinuxQuestions.org似たような問題を抱えた投稿が載っていた.

質問者
.package iptables needs kernel that has been excluded
package iptables needs kernel that has been excluded
I don’t know what this means.
回答者
Look in /etc/yum.conf. You exclude the kernel package, but iptables depends on it.
質問者
Thanks very much for your tips! You were right, I had a line ‘exclude=kernel*’ in my yum.conf. I have now commented this out.

まあ簡単に言えば,/etc/yum.conf内のexclude=kernel*の行をコメントアウトすればよい.つまり,yumはkernelをアップデートの対象から外していたので,正常にアップデートできなかった,ということになる.さっそくちなもやってみた.そして,いよいよ再びアップデートのコマンドを入力だ.

# yum update
Gathering package information from servers
Getting headers from: Red Hat Linux 7.2 base
Getting headers from: Fedora Legacy utilities for Red Hat Linux 7.2
Getting headers from: Red Hat Linux 7.2 updates
Finding updated packages
Downloading needed headers
getting /var/cache/yum/updates/headers/kernel-headers-0-2.4.9-34.i386.hdr
getting /var/cache/yum/updates/headers/kernel-0-2.4.20-30.7.legacy.i686.hdr
getting /var/cache/yum/updates/headers/kernel-bigmem-0-2.4.20-30.7.legacy.i686.hdr
getting /var/cache/yum/updates/headers/kernel-doc-0-2.4.20-30.7.legacy.i386.hdr
getting /var/cache/yum/updates/headers/kernel-enterprise-0-2.4.9-34.i686.hdr
getting /var/cache/yum/updates/headers/kernel-source-0-2.4.20-30.7.legacy.i386.hdr
(中略)
[update: binutils.i386]
[update: util-linux.i386]
[update: python-xmlrpc.i386]
[update: kon2.i386]
I will install/upgrade these to satisfy the dependencies:
[deps: Omni.i386]
[deps: perl-suidperl.i386]
[deps: python-popt.i386]
[deps: perl-NDBM_File.i386]
[deps: perl-CGI.i386]
[deps: Omni-foomatic.i386]
[deps: perl-DB_File.i386]
[deps: perl-CPAN.i386]
Is this ok [y/N]:

ついにyumが動き出したようだ!ここでyと入力し,先に進めよう.

Is this ok [y/N]: y
Getting man-1.5j-7.7x.0.i386.rpm
Getting openssl-0.9.6b-36.7.legacy.i386.rpm
Getting sendmail-cf-8.11.6-27.72.i386.rpm
Getting pam-0.75-46.7.2.i386.rpm
Getting groff-1.17.2-7.0.2.i386.rpm
Getting python-devel-1.5.2-43.72.i386.rpm
Getting stunnel-3.26-1.7.3.i386.rpm
(中略)
Getting kon2-0.3.9b-14.7.2.1.i386.rpm
Calculating available disk space – this could take a bit
sendmail-cf 100 % done
sendmail-devel 100 % done
(中略)
Omni-foomatic 100 % done
printconf 100 % done
up2date 100 % done
Kernel Updated/Installed, checking for bootloader
Grub found – making this kernel the default
Installed: kernel.i686
Updated: man.i386 openssl.i386 sendmail-cf.i386 pam.i386 groff.i386 python-deve
l.i386 stunnel.i386 mm-devel.i386 shadow-utils.i386 libpng.i386 krb5-libs.i386 w
get.i386 libxslt.i386 docbook-utils.noarch tmpwatch.i386 gcc-c++.i386 sendmail.i
386 openssh.i386 XFree86-libs.i386 sendmail-devel.i386 ttfonts-ja.noarch e2fspro
gs-devel.i386 foomatic.i386 gcc.i386 xinetd.i386 MAKEDEV.i386 kernel-headers.i38
6 Canna-libs.i386 libpng-devel.i386 micq.i386 cyrus-sasl-plain.i386 cpp.i386 sen
dmail-doc.i386 wu-ftpd.i386 printconf.i386 nss_ldap.i386 libtool.i386 glibc-comm
on.i386 openldap-clients.i386 zlib-devel.i386 openldap-devel.i386 utempter.i386
glibc-devel.i386 slocate.i386 at.i386 nscd.i386 cyrus-sasl-md5.i386 modutils.i38
6 cyrus-sasl.i386 krb5-devel.i386 rhn_register.i386 nfs-utils.i386 gnupg.i386 gc
c-g77.i386 groff-perl.i386 bind-utils.i386 libstdc++.i386 python.i386 iptables.i
386 rmt.i386 libtool-libs.i386 vim-common.i386 authconfig.i386 dev.i386 kon2-fon
ts.i386 e2fsprogs.i386 apache.i386 gdb.i386 libxml2.i386 kudzu.i386 iproute.i386
kudzu-devel.i386 perl.i386 cvs.i386 file.i386 Canna.i386 fileutils.i386 mm.i386
ghostscript.i386 pam-devel.i386 imap.i386 XFree86-xfs.i386 LPRng.i386 cyrus-sas
l-devel.i386 glibc.i686 quota.i386 raidtools.i386 vim-minimal.i386 openldap.i386
zlib.i386 openssl-devel.i386 libstdc++-devel.i386 up2date.i386 initscripts.i386
openssh-server.i386 tar.i386 binutils.i386 util-linux.i386 python-xmlrpc.i386 k
on2.i386 Omni.i386 perl-suidperl.i386 python-popt.i386 perl-NDBM_File.i386 perl-
CGI.i386 Omni-foomatic.i386 perl-DB_File.i386 perl-CPAN.i386
Transaction(s) Complete
#

結構な時間はかかったが,今度こそ無事にアップデートが終わったようだ.よかったよかった・・・
しかし問題は,FedoraLegacyはすでに7.2のサポートを打ち切っているという点である.結局はディストリビューションを別のモノに変更せざるを得ない,ということか.サーバ管理の道は険しい・・・
しかも,なぜかftpが通らなくなってしまった・・・httpdは再起動して直ったのだが,何かがやっぱりおかしいままだ・・・

あらためてyumのインストール

木曜日, 10月 28th, 2004

step 2:yumのインストール
ここは予想通り簡単に行った.

# rpm -ivh http://download.fedoralegacy.org/redhat/7.3/legacy-ut
ils/i386/yum-1.0.3-6.0.7.x.legacy.noarch.rpm
http://download.fedoralegacy.org/redhat/7.3/legacy-utils/i386/yum-1.0.3-6.0.7.x.
legacy.noarch.rpm を取得しています
Preparing… ################################# [100%]
1:yum ################################# [100%]
#

Step 2.1: ミラーサイトの追加登録
yumがアクセスするためのミラーサイトを追加登録.まあこれはオプションなので,とくにやらなくてもいいでしょ.ということですっとばす.
Step 2.2:GPGキーを追加
GPGキーを追加する必要があるらしい.Noticeのところに,1回も起動してない場合はもう一度起動させてとか書いてあるのでちょっと不安になったが,とりあえずやってみよう.

# gpg –import /usr/share/doc/yum-1.0.3/*GPG-KEY
gpg: /root/.gnupg: 辞書ができました
gpg: /root/.gnupg/options: 新しいオプション・ファイルができました
gpg: オプション・ファイルを読み直すよう、GnuPGを再起動してください
#

GnuPGってなんだろ?と思って調べてみる.どうやらPGPのような公開鍵暗号らしい.ここえふめも)を参考にして,gpgをもう一度起動させてみる.途中でctrl+cを押下し,空の鍵束を作成することにした.

# gpg
gpg: /root/.gnupg/secring.gpg: 鍵輪ができました
gpg: /root/.gnupg/pubring.gpg: 鍵輪ができました
gpg: 開始します。メッセージをタイプしてください …
^C(←ctrl+c押下)
gpg: Interrupt caught … exiting
#

これでいいんかな,と思ったけど,念のためもう一度公開鍵を作成した.よく分からないので,念のため一部伏せ字(***)にしておく.

# gpg –import /usr/share/doc/yum-1.0.3/*GPG-KEY
gpg: 鍵8******5: 公開鍵を読み込みました
gpg: /root/.gnupg/trustdb.gpg: 信用データベースができました
gpg: 鍵7******A: 公開鍵を読み込みました
gpg: 鍵D******E: 公開鍵を読み込みました
gpg: 処理数の合計: 3
gpg: 読込み: 3
#

Step 3: システムをアップデートする
ここまでこればあとはyumを使ってアップデートするだけ.でも初回起動時には結構時間がかかるらしい.

# yum update
Gathering package information from servers
Getting headers from: Red Hat Linux 7.2 base
Getting headers from: Fedora Legacy utilities for Red Hat Linux 7.2
Getting headers from: Red Hat Linux 7.2 updates
Finding updated packages
Downloading needed headers
getting /var/cache/yum/updates/headers/man-0-1.5j-7.7x.0.i386.hdr
getting /var/cache/yum/updates/headers/e2fsprogs-devel-0-1.26-1.72.i386.hdr
(中略)
getting /var/cache/yum/base/headers/sip-devel-0-2.4-3.i386.hdr
getting /var/cache/yum/base/headers/xosview-0-1.7.3-5.i386.hdr
Resolving dependencies
.package iptables needs kernel that has been excluded
package iptables needs kernel that has been excluded
#

この作業を終えるのに15分ほどかかった.しかし気になるのは最後の2文である.

.package iptables needs kernel that has been excluded
package iptables needs kernel that has been excluded

はたしてこれはどのような意味を持つのだろうか?まあとりあえず今は無視するとして・・・
Step 4: 自動アップデート設定
cronを使ってyumを実行させることで,自動アップデートしてくれるらしい.これはやっておくべし,ですな.

# chkconfig yum on
# service yum start
Enabling yum: [ OK ]
#

以上でyumのインストールおよびシステムのアップデート作業は完了した・・・かに思えた.ところがログファイル(/var/log/yum.log)には何も記録されていない.rpmのパッケージのバージョンを確認しても,なんだかアップデートされていないような気もする.たとえば,最新のアップデートは10月23日のglibc-2.2.5-44.legacy.3.i386.rpmのはずなのだが,実際に調べるとこんな調子である.

# rpm -qi glibc
Name : glibc Relocations: (not relocateable)
Version : 2.2.4 Vendor: Red Hat, Inc.
Release : 13 Build Date: 2001年09月05日 04時49分21秒
Install date: 2002年03月12日 18時21分11秒 Build Host: stripples.devel.redhat.com
Group : System Environment/Libraries Source RPM: glibc-2.2.4-13.src.rpm
Size : 18009683 License: LGPL
Packager : Red Hat, Inc.
Summary : The GNU libc libraries.
Description :
The glibc package contains standard libraries which are used by
multiple programs on the system. In order to save disk space and
memory, as well as to make upgrading easier, common system code is
kept in one place and shared between programs. This particular package
contains the most important sets of shared libraries: the standard C
library and the standard math library. Without these two libraries, a
Linux system will not function.
#

おかしい・・・何かがおかしい・・・

rpm依存性の欠如問題の解決のために

木曜日, 10月 28th, 2004

 とにもかくにも,「依存性の欠如」エラーから抜け出さないと先には進めない.とりあえず,足りないモノを順番に入れていけばいいという至極簡単なセオリーを試してみる.エラーログを参考にすれば,「yum-1.0.3-6.0.7.x.legacy.noarch.rpm」のインストールには,「rpm-python 4.0.4以上」,「rpm 4.0.4以上」が必要らしい.じゃあ先にrpm-pythonをインストールしてみよう.

# rpm -Uvh http://download.fedoralegacy.org/redhat/7.3/os/i386/r
pm-python-4.0.4-7x.18.i386.rpm
http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm-python-4.0.4-7x.18.i386.
rpm を取得しています
エラー: 依存性の欠如:
rpm = 4.0.4は rpm-python-4.0.4-7x.18 に必要とされています
popt = 1.6.4は rpm-python-4.0.4-7x.18 に必要とされています
librpm-4.0.4.so は rpm-python-4.0.4-7x.18 に必要とされています
librpmdb-4.0.4.so は rpm-python-4.0.4-7x.18 に必要とされています
librpmio-4.0.4.so は rpm-python-4.0.4-7x.18 に必要とされています
#

あぁぁ,やっぱりだめだったか・・・
これを見ると,popt 1.6.4というのが必要になりそうだ.そういえばこいつ,前回rpmを4.0.4にアップデートしようとしたときも表示されていたな.というわけで,fedoralegacyのサイトから,poptを無理矢理探し出した.どうせほかのrpmパッケージと同じディレクトリにあるんでしょ?と思ったら案の定ありましたぜ,旦那.

# rpm -Uvh http://download.fedoralegacy.org/redhat/7.3/os/i386/p
opt-1.6.4-7x.18.i386.rpm
http://download.fedoralegacy.org/redhat/7.3/os/i386/popt-1.6.4-7x.18.i386.rpm を
取得しています
エラー: 依存性の欠如:
popt = 1.6.3は rpm-4.0.3-1.03 に必要とされています
popt = 1.6.3は rpm-devel-4.0.3-1.03 に必要とされています
popt = 1.6.3は rpm-python-4.0.3-1.03 に必要とされています
#

なんでだぁ!わけがわからん!
ちょっと冷静になってみよう.そういえばCYBERAM Documents Project…RPMコマンドのページに,こんな記述があった.

お互い依存関係にありインストールできない場合は、
#rpm -ivh hogehoge-3.5-1.i386.rpm honyarara2.1.i386.rpm
と入力します。

そうか,つまり,全部一緒にrpmコマンドの中にぶち込めばいいのか!
で,早速やってみた.

# rpm -Uvh http://download.fedoralegacy.org/redhat/7.3/os/i386/p
opt-1.6.4-7x.18.i386.rpm http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm
-4.0.4-7x.18.i386.rpm http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm-py
thon-4.0.4-7x.18.i386.rpm
http://download.fedoralegacy.org/redhat/7.3/os/i386/popt-1.6.4-7x.18.i386.rpm を
取得しています
http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm-4.0.4-7x.18.i386.rpm を
取得しています
http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm-python-4.0.4-7x.18.i386.
rpm を取得しています
エラー: 依存性の欠如:
popt = 1.6.3は rpm-devel-4.0.3-1.03 に必要とされています
rpm = 4.0.3は rpm-build-4.0.3-1.03 に必要とされています
rpm = 4.0.3は rpm-devel-4.0.3-1.03 に必要とされています
librpm-4.0.3.so は rpm-build-4.0.3-1.03 に必要とされています
librpmbuild-4.0.3.so は rpm-build-4.0.3-1.03 に必要とされています
librpmdb-4.0.3.so は rpm-build-4.0.3-1.03 に必要とされています
librpmio-4.0.3.so は rpm-build-4.0.3-1.03 に必要とされています
#

だんだん腹が立ってきた・・・こうなったらやけっぱちだ.ここのエラーに出てきたもの全部まとめてインストールしてやる!これでどうだ!

# rpm -Uvh http://download.fedoralegacy.org/redhat/7.3/os/i386/p
opt-1.6.4-7x.18.i386.rpm http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm
-4.0.4-7x.18.i386.rpm http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm-py
thon-4.0.4-7x.18.i386.rpm http://download.fedoralegacy.org/redhat/7.3/os/i386/rp
m-build-4.0.4-7x.18.i386.rpm http://download.fedoralegacy.org/redhat/7.3/os/i386
/rpm-devel-4.0.4-7x.18.i386.rpm
http://download.fedoralegacy.org/redhat/7.3/os/i386/popt-1.6.4-7x.18.i386.rpm を
取得しています
http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm-4.0.4-7x.18.i386.rpm を
取得しています
http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm-python-4.0.4-7x.18.i386.
rpm を取得しています
http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm-build-4.0.4-7x.18.i386.r
pm を取得しています
http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm-devel-4.0.4-7x.18.i386.r
pm を取得しています
Preparing… ################################ [100%]
1:popt ################################ [ 20%]
2:rpm ################################ [ 40%]
3:rpm-python ################################ [ 60%]
4:rpm-build ################################ [ 80%]
5:rpm-devel ################################ [100%]
#

すばらしいすばらしい!訳の分からない依存性の問題もクリアして,なんとかrpmをインストールすることができたようだ.これでやっとyumのインストールができそうだ.

立ちはだかるrpmの依存性問題

水曜日, 10月 27th, 2004

Fedora LegacyのUsing Fedora Legacy’s yum for Red Hat Linux 7.xというドキュメントと,パッケージを最新に保つ(yum,aptの導入)Shotaro Online)の二つを参考にしながら作業を進める.
step 1:準備
1.root権限でログインする

$ su –
Password:
#

2.必要なパッケージを確認する
 yumを利用するには,gnupg, python,rpm-pythonが必要なため,チェックを行う.

# rpm -q gnupg python rpm rpm-python
gnupg-1.0.6-3
python-1.5.2-35
rpm-4.0.3-1.03
rpm-python-4.0.3-1.03
#

あ,みんなインストールされているみたいだ.rpmパッケージの最新版は4.0.4らしいのだが,Documentationには「RedHat7.3の場合,全部あるならとりあえず問題ないよ」と書いてあったので,そのままにしておこう.
step 2:yumのインストール
 ところが,世の中そんなに甘くはなかった.意気揚々とyumをインストールしようとしたところ,以下のようになってしまった..

# rpm -ivh http://download.fedoralegacy.org/redhat/7.3/legacy-utils/i386/yum-1.0
.3-6.0.7.x.legacy.noarch.rpm
http://download.fedoralegacy.org/redhat/7.3/legacy-utils/i386/yum-1.0.3-6.0.7.x.
legacy.noarch.rpm を取得しています
エラー: 依存性の欠如:
rpm-python >= 0:4.0.4は yum-1.0.3-6.0.7.x.legacy に必要とされています
rpm >= 0:4.0.4は yum-1.0.3-6.0.7.x.legacy に必要とされています
#

あれあれ??結局rpm,rpm-pythonともに4.0.4にアップデートしなきゃいかんのか...
legacyのDocumentationには,

# rpm -Uvh http://download.fedoralegacy.org/redhat/7.2/updates/i386/rpm-4.0.4-7x.i386.rpm

とあったが,7.3ではなく7.2なのが怖くて,以下のように7.3用のrpmをダウンロードしてアップデートしようと試みた.

# rpm -Uvh http://download.fedoralegacy.org/redhat/7.3/os/i386/r
pm-4.0.4-7x.18.i386.rpm
http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm-4.0.4-7x.18.i386.rpm を
取得しています
エラー: 依存性の欠如:
popt = 1.6.4は rpm-4.0.4-7x.18 に必要とされています
rpm = 4.0.3は rpm-build-4.0.3-1.03 に必要とされています
rpm = 4.0.3は rpm-devel-4.0.3-1.03 に必要とされています
rpm = 4.0.3は rpm-python-4.0.3-1.03 に必要とされています
librpm-4.0.3.so は rpm-build-4.0.3-1.03 に必要とされています
librpm-4.0.3.so は rpm-python-4.0.3-1.03 に必要とされています
librpmbuild-4.0.3.so は rpm-build-4.0.3-1.03 に必要とされています
librpmdb-4.0.3.so は rpm-build-4.0.3-1.03 に必要とされています
librpmdb-4.0.3.so は rpm-python-4.0.3-1.03 に必要とされています
librpmio-4.0.3.so は rpm-build-4.0.3-1.03 に必要とされています
librpmio-4.0.3.so は rpm-python-4.0.3-1.03 に必要とされています
#

アップデートがいけないのかと思い,インストールオプションを変更して再チャレンジ

# rpm -ivh http://download.fedoralegacy.org/redhat/7.3/os/i386/r
pm-4.0.4-7x.18.i386.rpm
http://download.fedoralegacy.org/redhat/7.3/os/i386/rpm-4.0.4-7x.18.i386.rpm を
取得しています
エラー: 依存性の欠如:
popt = 1.6.4は rpm-4.0.4-7x.18 に必要とされています
#

むむむ・・・結局rpmの依存性の問題からは逃れられないのか.ここは次回またチャレンジすることにして,今日はもう寝ることにしよう.

The Fedora Legacy Program

水曜日, 10月 27th, 2004

 そろそろ実際のアップデート作業を始めたいのだが,まだそこにすらたどり着けていないちなである.調べていくうちになんとなく全体像が見えてきたので,簡単にまとめてみることにした.

 Red Hat LinuxやFedora Coreの高品質なアドオンパッケージの開発を行うためのコミュニティプロジェクトがfedora.usである.
 2004年にfedora.redhat.com上のfedora projectと合併され,現在はfedora extrasとなった.ここではRedHat8.0,9,Fedora Coreあたりを取り扱っている.
 いっぽう,ここで取り扱われない昔のディストリビューションについては,The Fedora Legacy Projectで取り扱うことになっている.

 つまり,RedHat Linux 7.3を対象としているのであるから,fedora legacyを見ればよい,ということになる.うん,話が簡単になってきた.
 そしてまさにそのやり方は,fedora legacyのDocumentationのページの,Getting started…以降に書いてあった.しかしここをみると,RedHat 7.x用のaptは存在せず,yumを利用するしかなさそうだ.まあそれでも本来の目的は達成できるのだから,これはこれでいいのか...
 ちなみに,トップページからはDownloadのページにも行けるが,ここはマニュアルでアップデートをしたいユーザ向けのページなので,注意すべし.