- ベストアンサー
libcap-ngのインストール失敗でrpmlibのエラー発生。pkg-configのエラー回避方法は?
- CentOS 5でlibcap-ng-develをインストールしようとしていますが、CentOS 6用のパッケージしか用意されていません。インストール時にrpmlibのバージョンが古いというエラーが発生します。
- また、rpmパッケージからのインストールを諦め、libcap-ngをSRPMからコンパイルしようとしましたが、pkg-configが必要とのメッセージが出てコンパイルに失敗します。
- rpmlibのエラーのエラー回避の方法(rpmのバージョンアップ?)、もしくはpkgconfigをインストールしているにもかかわらずpkg-configのエラーが出る原因を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>しかし、CentOS 5でCentOS 6用のrpmパッケージをインストールしようとすると以下のようなエラーが発生します。 無茶しますねぇ……。 CentOS5のパッケージをCentOS6へ…とかいうなら、バージョンの問題はまだなんとかなるかと思われますが、逆はいくらなんでも無茶でしょう。 >pkgconfigというパッケージを追加したり、pkgconfig.tar.gzからコンパイルしてインストールをしたりしましたが、依然「pkg-config」が必要とのメッセージが出ます。 pkgconfigのrpmパッケージインストールだけでOKだったはずですが……。 # ただし、SRPMからのビルドはダメでしたけどね。 rpm-buildパッケージとその他必要なものが入っているとして…… cd /usr/src/redhat wget http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-0.7.3-1.src.rpm rpm -ivh --nomd5 libcap-ng-0.7.3-1.src.rpm rpmbuild -ba SPECS/libcap-ng.spec として…… 実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.28812 + umask 022 : pscap.c:87: error: 'O_CLOEXEC' undeclared (first use in this function) pscap.c:87: error: (Each undeclared identifier is reported only once pscap.c:87: error: for each function it appears in.) make[2]: *** [pscap.o] Error 1 make[2]: Leaving directory `/home/setoppu/rpm/BUILD/libcap-ng-0.7.1/utils' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/setoppu/rpm/BUILD/libcap-ng-0.7.1' make: *** [all] Error 2 エラー: /var/tmp/rpm-tmp.28812 の不正な終了ステータス (%build) となりました。 「O_CLOEXEC」で検索すると…Kernel 2.6.23以降が必要なようです。 手元のCentOS5.9のカーネルは…2.6.18-348.3.1.el5.centos.plus。 Redhatのバックポートが入っていたとしても「2.6.23以降」という壁は高そうです。 自分で2.6.23以降のカーネルでもビルド&インストールする。という手もありますが、 redhatが大量に当てているカーネルへのパッチがなくなりますから、ちょっと厳しいかも知れません。 # パッチ適用が無くなった為に動作しない機能が出てくる可能性もありますし。 CentOS6.xに乗り換えた方が建設的かも知れません。
お礼
ご回答ありがとうございます。 PCの調子が悪く、返信が遅くなりました。 pkg-configが入っているのに足りないと言われる件は、別の環境で再度試すと問題ありませんでした。 色々と触っているうちにおかしくなってしまったのかもしれません。 libcap-ng-0.7.3-1.src.rpmからlibcap-ngをインストールする方法をご提案頂きましたが、CentOS 6用のレポジトリに置いてあるlibcap-ng-0.6.4-3.el6_0.1.src.rpmとはどちらが安定しているでしょうか?(CentOS 5で使用する場合) 後者の方であれば、kernel 2.6.11以降で構わないようですので、コンパイルも楽な気がします。 まあ今回libcap-ng以外で導入したいものが2.6.29以降を必要としているため、いずれにしてもkernelの壁はあるのですが・・・。