CentOSのRPMでOSのバージョン間違い

新しいサーバをZABBIXで監視に追加するためにZABBIXのリポジトリインストール用のRPMをインストールしようと思ったら、見慣れないエラーが出てインストールできなかった。

ZABBIX-JPのyumリポジトリ利用方法 | ZABBIX-JP

# wget http://repo.zabbix.jp/relatedpkgs/rhel6/i386/zabbix-jp-release-6-6.noarch.rpm
# rpm -ivh zabbix-jp-release-6-6.noarch.rpm
警告: /var/tmp/rpm-xfer.eXQBuk: ヘッダ V4 DSA signature: NOKEY, key ID f32904ff
エラー: 依存性の欠如:
	rpmlib(FileDigests) <= 4.6.0-1 は zabbix-jp-release-6-6.noarch に必要とされています
	rpmlib(PayloadIsXz) <= 5.2-1 は zabbix-jp-release-6-6.noarch に必要とされています

rpmlibというパッケージがインストールされて無いことが原因かと思たののでyum searchで調べてみたけども該当するようなパッケージは見つからない。
ググって調べてみてもなんだか要領を得ない。

なんだろうと思って、ふとOSのバージョンを確認したら。

# cat /etc/redhat-release
CentOS release 5.8 (Final)

CentOS5系だった・・・
新しく導入したサーバだからCentOS6系だと思い込んで、CentOS6系用のRPMをインストールしようとしていた。
ただの思い込みだったわけだ。

# rpm -ivh http://repo.zabbix.jp/relatedpkgs/rhel5/i386/zabbix-jp-release-5-6.noarch.rpm

CentOS5系用のパッケージをインストールして解決。

自分で調達したものではなかったので気づかなかったという。

rpmコマンドのエラーではOSのバージョンが違うとかは特に出ないようになってるんだな。
似たようなエラーが出た場合はRPMパッケージの対応OSが合っているか確認してみよう。

コマンドのRPMパッケージ名を調べる CentOS

普通にインストールしたCentOSでは普通に使えていたコマンドが
CentOSで契約したVPSに入っていなくて使えないことがある。

自分の場合はdigやmailコマンドをよく使うのでないとちょと困る。

で、yumを使ってインストールしたいわけだけど

yum install dig
yum install mail

ではインストールできない。なぜなら、RPMのパッケージ名が違うからだ。

そこで今度はyum search digとかしてみるわけだけど
Digitalとかの単語が引っかかるだけで結局分からない。

そんなときはrpmのqfオプションでコマンドの実行ファイルの
パッケージ所属を調べればよい。

コマンドのパスはwhichなんかで調べる。

#which dig
/usr/bin/dig

#rpm -qf /usr/bin/dig
bind-utils-9.3.6-4.P1.el5_4.2

#yum install bind-utils

こんな感じでdigがBINDのユーティリティで
bind-utilsというパッケージ名であることが分かる。
パッケージ名が分かればyumでインストールできる。

mailコマンドも同様に調べてみる。

#which mail
/bin/mail

#rpm -qf /bin/mail
mailx-8.1.1-44.2.2

#yum install mailx

CentOSなのにyum自体が入っていないという
恐ろしい場合もある。

そのときは下記記事をご参考に
使えるねっとのVPSにyumをインストールする CentOSサーバ構築術 文具堂

CentOSにDBD-SQLiteをRPMでインストールする

CentOSのyumにはDBD-SQLiteがないのでMovable Typeのデータベースとして
sqliteを利用する場合は別途CPANなどでインストールする必要がある。

ただ、CPANを使うとRPMですでにperl-DBIが入っているのに
DBIもCPANでインストールし直さなければならなくなることがある。

なので、DBD-SQLiteもRPMの方がよいだろうとうことで
Dagリポジトリを利用することにする。

perl-DBD-SQLite RPM packages

CentOSのバージョンや種類によって必要なRPMをダウンロードして
インストールするだけ。
CentOS5の場合はファイル名に「el5」が含まれるパッケージをダウンロードする。

CentOS5 i386の場合
wget http://dag.wieers.com/rpm/packages/perl-DBD-SQLite/perl-DBD-SQLite-1.14-1.el5.rf.i386.rpm
rpm -ihv perl-DBD-SQLite-1.14-1.el5.rf.i386.rpm

CentOS5 x86_64の場合
wget http://dag.wieers.com/rpm/packages/perl-DBD-SQLite/perl-DBD-SQLite-1.14-1.el5.rf.x86_64.rpm
rpm -ihv perl-DBD-SQLite-1.14-1.el5.rf.x86_64.rpm

ちなみに、yumにDAGリポジトリを追加すると言う方法もあるのだろうけど
ごっそり構成が変わりそうになるので、リポジトリを追加する方法は好みではない。


SQLite入門 第2版
西沢 直木
¥2,940