yumが使えない環境でrpmファイルをインストールする方法
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%]
これで無事にインストールできました。
- VMをundefineできない場合の対処
- cpanflute2でエラーになる場合の対処
- シェルスクリプトをバイナリ化する「shc」
- OpenSSLで文字列を暗号化・複号化する方法
- sshログインに時間がかかる場合の対処
- vi/vimで範囲指定して置換する方法
- vi/vimでマークした行に移動する方法
- vi/vimで複数行を一括削除する方法
- LinuxでOSキャッシュをクリアする方法
- lessで検索文字列だけを表示する方法
- tailコマンドでファイルがローテートされても追従する方法
- svnでファイルやディレクトリを削除する方法
- phpMyAdminで「unknown system variable 'lc_messages'」となる場合の対処
- Linux(CentOS)でapxsがみつからない場合の対処
- PHP7.3とApacheを連携させる方法