###前提・実現したいこと
Oracle11gR2をインストールするための必要なパッケージを
rpmでインストールしようとしたのですが、以下のエラーメッセージが発生しました。
rpmを使える状態にしたいです。
###発生している問題・エラーメッセージ
rpm: error while loading shared libraries: libelf.so.1: cannot open shared object file: No such file or directory
###該当のソースコード
root@localhost rpm]# rpm -ivh elfutils-libelf-0.164-2.el6.i686.rpm
###試したこと
・/usr/lib64の中を確認したけど、「libelf.so.1」というファイル?はありませんでした。
・rpmを使えるようにするためにlibelf.so.lをインストールしようとして上記パッケージを入れようとしましたが、記載したようなエラーとなりました。
・以下コマンドでシンボリックを貼り直すもまだyumが使えない
[root@localhost lib64]# ln -s /usr/lib64/libelf-0.164.so /usr/lib64/libelf.so.1
###補足情報(言語/FW/ツール等のバージョンなど)
OS:CentOS release 6.8 (Final) 64bit
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
最新の情報は日本オラクル社に確認していただくとして、ググって見つかる公式な情報では Oracle11.2.0はCentOSでは動作保障されていないようです。
Certified Matrix 2016年06月01日現在
時々、動作保障されていないプラットフォームに正常にインストールできたように見えただけで鬼の首を取ったように大喜びして他の人にも同じ組み合わせをすすめる人がいますが、動作保障外が原因で何年も経ってバグが発覚して、大量のデータの修復が必要になってもオラクル社は一切関知しません。すべて自己責任です。
動作保障されている組み合わせを選択する方が建設的かと。
よろしければ[Oracle]タグを追加していただけますか?
投稿2016/10/03 14:14
総合スコア16417
0
OS は 64-bit (x86_64) でしょうか? 32-bit (i686) でしょうか?
rpm コマンドが必要とするライブラリ libelf.so.1 が見つからないようです。
ldd /bin/rpm
で "libelf.so.1 => not found" になっていると思います。
他のライブラリについても "not found" になっているものがないか確認ください。
通常は、/usr/{lib,lib64}/libelf.so.1 は libelf-0.164.so へのシンボリックリンクになっています。
libelf-0.164.so は存在しますか?
もし libelf-0.164.so が存在するなら、何らかの原因でシンボリックリンクが消えてしまったのだと思います。
ldconfig を実行するとシンボリックリンクが作成されます。
(2016/10/02 22:22) 追記
いくつかのファイルで "is empty" と出ていますね。
どのようにして現在の状態になったのかわからないのですが(ディスクフルの状態でインストールしたとか?)、ライブラリの他にもいくつかファイルが壊れている可能性があります。
OS を再インストールした方が安全だと思います。
もし、復旧を試みるのであれば、別の CentOS 6.8 (x86_64) から /usr/lib64/libelf-0.164.so をコピーすれば、rpm コマンドは利用できるようになると思います。
CentOS 6.8 (x86_64) が用意できなくても、他の Red Hat 系 (RPM 系) の Linux が使えるのであれば、RPM ファイルから /usr/lib64/libelf-0.164.so を取り出すことができます。
$ wget http://ftp.iij.ad.jp/pub/linux/centos/6.8/os/x86_64/Packages/elfutils-libelf-0.164-2.el6.x86_64.rpm $ rpm2cpio elfutils-libelf-0.164-2.el6.x86_64.rpm | cpio -imdu $ ls -l ./usr/lib64/libelf-0.164.so -rwxr-xr-x. 1 user1001 users 88456 May 11 04:05 ./usr/lib64/libelf-0.164.so
rpm コマンドが使えるようになったら、rpm -Va
で壊れているファイルを探します。
(参考: httpdのsegfaultエラーについて の 2つ目の回答)
libelf-0.164.so と同様に、壊れているファイルを別の Linux からコピーするか、RPM を上書きインストールします。
[root]# rpm -qf /usr/lib64/libasm-0.164.so (RPM 名を調べる) elfutils-libs-0.164-2.el6.x86_64 [root]# wget http://ftp.iij.ad.jp/pub/linux/centos/6.8/os/x86_64/Packages/elfutils-libs-0.164-2.el6.x86_64.rpm (同じバージョン・リリースの RPM ファイルをダウンロード) [root]# rpm -Uvh --force ./elfutils-libs-0.164-2.el6.x86_64.rpm (上書きインストール)
ただし、rpmdb に登録のあるファイルについては、壊れたファイルを見つけることができますが、それ以外にも不完全な状態になっているファイルがあるかもしれません。
投稿2016/09/27 01:50
編集2016/10/02 13:22総合スコア12173
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/04 00:31 編集
退会済みユーザー
2016/10/04 12:08
0
ベストアンサー
OS再インストールを実施し、yum,rpmが使用できるようになった。
投稿2016/10/04 12:08
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
CentOS 6.8 64bit で以下の通り elfutils-libelf-0.164-2.el6.i686.rpm
のインストールを検証しましたが、libelf.so.1
は問題なくインストールされるようです。
rpm ファイルが壊れている可能性が考えられるので、一度アンインストールと再ダウンロードをして、再インストールしてはどうでしょうか。
ちなみに確認した elfutils-libelf-0.164-2.el6.i686.rpm
は 208736 Byte でした。
yum install ftp://fr2.rpmfind.net/linux/centos/6.8/os/x86_64/Packages/elfutils-libelf-0.164-2.el6.i686.rpm rpm -ql elfutils-libelf | grep libelf.so
/usr/lib64/libelf.so.1 /usr/lib/libelf.so.1
ll /usr/lib64/ | grep elf
-rwxr-xr-x. 1 root root 88456 5月 11 04:05 2016 libelf-0.164.so lrwxrwxrwx. 1 root root 15 7月 2 19:32 2016 libelf.so.1 -> libelf-0.164.so
投稿2016/09/26 15:12
編集2016/09/26 15:18総合スコア580
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/10/04 12:05