我尝试运行一些软件来监视旧的 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)
apt-get 更新失败,因为在线存储库不再适用于这个旧版本,即使我尝试了其他地方推荐的 sed 技巧,
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 版本(如果有必要,您刚刚创建的版本,例如,一个虚拟盒子)?