
古い Adaptec アレイ コントローラを監視するソフトウェアを実行しようとしたところ、次の結果になりました。
error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
そこで検索してみましたが、リストにありませんでした:
$ sudo apt-cache search libstd*
libstonith1 - Reusable cluster libraries -- libstonith1
libstdc++6-4.6-dev - GNU Standard C++ Library v3 (development files)
libstdc++6 - GNU Standard C++ Library v3
perl - Larry Wall's Practical Extraction and Report Language
libruby1.8 - Libraries necessary to run Ruby 1.8
libstartup-notification0 - library for program launch feedback (shared library)
他の場所で推奨されているsedトリックを試しても、オンラインリポジトリがこの古いバージョンでは機能しなくなったため、apt-get updateは失敗します。
sudo sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
次にDVD ISOをダウンロードしましたここそれをクリーンな /etc/apt/sources.list に追加しましたが、まだ満足できません。
現在のsources.listファイルは次のとおりです。
# CD
deb file:/media/ubuntu-12.04.5-iso/ precise main restricted
# DVD
#deb file:/media/ubuntu-12.04.5-dvd-iso/ precise main restricted
$ sudo apt-get update
Get:1 file: precise Release.gpg [198 B]
Get:2 file: precise Release [4,595 B]
Ign file: precise/main TranslationIndex
Ign file: precise/restricted TranslationIndex
Ign file: precise/main Translation-en_AU
Ign file: precise/main Translation-en
Ign file: precise/restricted Translation-en_AU
Ign file: precise/restricted Translation-en
Reading package lists... Done
DVD と CD の ISO の両方を試しました。
それから、.debファイルをダウンロードしてインストールしようとしました。 http://old-releases.ubuntu.com/ubuntu/pool/main/g/gcc-3.3/libstdc++5_3.3.6-15ubuntu2_amd64.deb
$ sudo gdebi libstdc++5_3.3.6-15ubuntu2_amd64.deb
[sudo] password for zanotech:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Building data structures... Done
Building data structures... Done
This package is not able to be installed
Dependency is not satisfiable: gcc-3.3-base (>= 1:3.3.6-15ubuntu2)
確かにこのサーバーは gcc-4.6-base を実行しています。
比較のために、Centos 7 サーバーでは次のようにして問題を回避しました。
# yum -y install compat-libstdc++-33
どこが間違っているのでしょうか?
ユーティリティを実行するディレクトリに古い libstdc++ をインストールする方法はありますか?
答え1
これは非常に推測的なものであり、絶対に推奨されるものではありませんが、共有オブジェクト ファイルが本当に、正直に言って必要なすべてである場合は、古い、時代遅れのバージョンの Ubuntu (必要な場合は、たとえば仮想ボックスで作成したもの) から「手動で」コピーしてみてはいかがでしょうか。