LoginSignup
65
73

More than 5 years have passed since last update.

パッケージ依存関係を解消する(rpm)

Last updated at Posted at 2014-01-18

目的

RedHat系Linuxで依存関係のパッケージをrpmでインストール方法です。
今回は、「Oracle Linux 6.4 (x86-64)」で試しています。

なぜ?

yumで解決してしまえばっと思うのですが
なくても出来る方が良い場合もありますよね?

とりあえず実行してみる

[root]# rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm
警告: compat-libstdc++-33-3.2.3-69.el6.i686.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
エラー: 依存性の欠如:
        libc.so.6 は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libc.so.6(GLIBC_2.0) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libc.so.6(GLIBC_2.1) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libc.so.6(GLIBC_2.1.3) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libc.so.6(GLIBC_2.2) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libc.so.6(GLIBC_2.3) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libgcc_s.so.1 は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libgcc_s.so.1(GCC_3.0) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libgcc_s.so.1(GCC_3.3) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libgcc_s.so.1(GLIBC_2.0) は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています
        libm.so.6 は compat-libstdc++-33-3.2.3-69.el6.i686 に必要とされています

なんか難しそうなエラーメッセージがでました。
よくみると・・・「libc.so.6」「libgcc_s.so.1」「libm.so.6」が必要とされている事がわかります。
って言ってもどうやって導入するんだろ?
下記のコマンドで調べることが出来ます。

[root]# yum provides libc.so.6
Loaded plugins: refresh-packagekit, security
glibc-2.12-1.47.el6_2.12.i686 : The GNU libc libraries
Repo        : ol6_latest
Matched from:
Other       : libc.so.6

glibc-2.12-1.7.el6_0.5.i686 : The GNU libc libraries
Repo        : ol6_latest
Matched from:
Other       : libc.so.6

glibc-2.12-1.107.el6.i686 : The GNU libc libraries
Repo        : ol6_latest
Matched from:
Other       : libc.so.6

以下略・・・

「glibc-2.12」の中に必要なライブラリが入ってますとのこと
rpmファイルを確認してみます。

[root]# ls -al glibc-2.12*
-rw-rw-r--. 1 root root 4536956  2月 24 07:49 2013 glibc-2.12-1.107.el6.i686.rpm 
-rw-rw-r--. 1 root root 3977532  2月 24 07:48 2013 glibc-2.12-1.107.el6.x86_64.rpm

同様に必要なライブラリを調べる

同様に「libgcc_s.so.1」「libm.so.6」に必要なライブラリを調べると
下記のrpmファイルが必要とわかります。

-rw-rw-r--. 1 root root   113708 12月 21 16:05 2012 libgcc-4.4.7-3.el6.i686.rpm
-rw-rw-r--. 1 root root  4536956  2月 24 07:49 2013 glibc-2.12-1.107.el6.i686.rpm

機は熟した!

[root]# rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm libgcc-4.4.7-3.el6.i686.rpm glibc-2.12-1.107.el6.i686.rpm
警告: compat-libstdc++-33-3.2.3-69.el6.i686.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
エラー: 依存性の欠如:
        libfreebl3.so は glibc-2.12-1.107.el6.i686 に必要とされています
        libfreebl3.so(NSSRAWHASH_3.12.3) は glibc-2.12-1.107.el6.i686 に必要とされています

残念すぎる・・・でも
もう大丈夫ですよね?

最終章

[root]# rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm libgcc-4.4.7-3.el6.i686.rpm glibc-2.12-1.107.el6.i686.rpm nss-softokn-freebl-3.12.9-11.el6.i686.rpm
警告: compat-libstdc++-33-3.2.3-69.el6.i686.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
準備中...                ########################################### [100%]
   1:libgcc                 ########################################### [ 20%]
   2:nss-softokn-freebl     ########################################### [ 40%]
   3:glibc                  ########################################### [ 60%]
   4:compat-libstdc++-33    ########################################### [ 80%]
   5:libstdc++              ########################################### [100%]
65
73
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
65
73