yumが使えない環境でrpmファイルをインストールする方法

yumが使えない環境でrpmファイルをインストールする方法

Posted at October 20,2016 12:33 AM
Tag:[Linux, rpm, yum]

yumが使えない環境でrpmファイルをインストールする方法を紹介します。

1.問題点

C++のビルドで不足している32bit用のライブラリをインストールしたいのですが、そのサーバはインターネットと接続されていません。

インストールしたいrpmファイルはネットからダウンロードして、別サーバから転送までしました。

サーバ上にあるrpmファイルをyumでインストールするには、下記のように"localinstall"を付与すればできるようですが、リポジトリの設定ができていないとダメなようです。

# yum localinstall glibc-devel-2.12-1.149.el6.i686.rpm

ということで、yumが使えない環境でrpmファイルをインストールする方法を紹介します。

2.rpmファイルをインストールする

サーバ上にあるrpmファイルをインストールするには、yumではなくrpmコマンドでインストールします。

ただしyumのように依存関係を自動的に解消してくれないので、依存するライブラリが含まれるパッケージ(rpmファイル)はすべて手動でインストールします。

下記は実際にインストールしたときのコマンドと応答メッセージです。

まず、必要であることが分かっているパッケージ、"glibc-devel-2.12-1.149.el6.i686.rpm"をインストールします。

[root@hoge tmp]# rpm -ivh glibc-devel-2.12-1.149.el6.i686.rpm 
警告: glibc-devel-2.12-1.149.el6.i686.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
エラー: 依存性の欠如:
        libBrokenLocale.so.1 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libanl.so.1 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libcidn.so.1 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libcrypt.so.1 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libdl.so.2 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libm.so.6 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libnsl.so.1 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libnss_compat.so.2 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libnss_dns.so.2 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libnss_files.so.2 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libnss_hesiod.so.2 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libnss_nis.so.2 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libnss_nisplus.so.2 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libresolv.so.2 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        librt.so.1 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libthread_db.so.1 は glibc-devel-2.12-1.149.el6.i686 に必要とされています
        libutil.so.1 は glibc-devel-2.12-1.149.el6.i686 に必要とされています

上記のようにエラーが出てインストールできなかった場合は、最初にひっかかったエラーのライブラリを、locateコマンドで検索します。

[root@hoge tmp]# locate libBrokenLocale.so.1
/lib64/libBrokenLocale.so.1

lib64ディレクトリでしかみつからないので、このライブラリは64bit版しかインストールされていないようです。

次に"rpm -qf"で64bit版のrpmパッケージを調べます。

[root@hoge tmp]# rpm -qf /lib64/libBrokenLocale.so.1
glibc-2.12-1.149.el6.x86_64

これで32bit版の同じライブラリをインストールするには、"glibc-2.12-1.149.el6.i686"のインストールが必要であることが分かります。

ということで、このrpmパッケージをネットで検索してダウンロードして、rpmコマンドでさきほどのパッケージと同時にインストールします。

ちなみに32bit版であれば、rpmファイルの"i686"の部分は"i386"かもしれませんが、ネットで見つかった方を使えばOKだと思います。

[root@hoge tmp]# rpm -ivh glibc-devel-2.12-1.149.el6.i686.rpm glibc-2.12-1.149.el6.i686.rpm                                                                             
警告: glibc-devel-2.12-1.149.el6.i686.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
エラー: 依存性の欠如:
        libfreebl3.so は glibc-2.12-1.149.el6.i686 に必要とされています
        libfreebl3.so(NSSRAWHASH_3.12.3) は glibc-2.12-1.149.el6.i686 に必要とされています

まだエラーが残っているので、同じ手順で"libfreebl3.so"を調べて、32bit版のパッケージをさらにインストールします。

[root@hoge tmp]# locate libfreebl3.so                                                                                                                           
/lib64/libfreebl3.so
/usr/lib64/libfreebl3.so
[root@hoge tmp]# rpm -qf /lib64/libfreebl3.so
nss-softokn-freebl-3.14.3-17.el6.x86_64

これで"nss-softokn-freebl-3.14.3-17.el6.i686"も必要であることが分かります。

[root@hoge tmp]# rpm -ivh glibc-devel-2.12-1.149.el6.i686.rpm glibc-2.12-1.149.el6.i686.rpm nss-softokn-freebl-3.14.3-17.el6.i686.rpm                                   
警告: glibc-devel-2.12-1.149.el6.i686.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
準備中...                ########################################### [100%]
   1:nss-softokn-freebl     ########################################### [ 33%]
   2:glibc                  ########################################### [ 67%]
   3:glibc-devel            ########################################### [100%]

これで無事にインストールできました。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)