在 22.04 LTS 上安装旧的 libg2c i386 和 amd64

在 22.04 LTS 上安装旧的 libg2c i386 和 amd64

我已经与一些需要 的旧软件斗争了一段时间libg2c.so.0。一个软件需要i386版本,而另一个软件需要amd64版本。

我将旧版本添加到我的apt配置中:

sudo nano /etc/apt/sources.list.d/old-releases.list

deb     [trusted=yes]    http://old-releases.ubuntu.com/ubuntu hardy universe
deb-src [trusted=yes]    http://old-releases.ubuntu.com/ubuntu hardy universe

现在我可以安装其中一个:

sudo apt update
sudo apt install gcc-3.4-base libg2c0
# OR
sudo apt install gcc-3.4-base:i386 libg2c0:i386

但无法同时安装两者。一个会删除另一个。

i386那么..如果我有 3 个软件,一个与安装的版本兼容,另外 2 个与该amd64版本兼容,我该如何安装这两个软件呢?

请注意,这不是我的软件,并且重新编译它不是一个选择。

答案1

为了获得库gcc-3.4-baselibg2c,我添加了以下源apt

deb     [trusted=yes]    http://old-releases.ubuntu.com/ubuntu hardy universe
deb-src [trusted=yes]    http://old-releases.ubuntu.com/ubuntu hardy universe

然后我下载库和依赖树

sudo apt install --download-only gcc-3.4-base libg2c

然后在目录中“解包它们”,例如/usr/local/mylib_i386

ls -1 | grep [.]deb >> all_debs.txt
cat all_debs.txt | while read fn; do dpkg-deb -x $fn /usr/local/mylib_i386; done

我有 2 个不同的文件夹用于存放我需要的 i386 和 amd64 旧库。然后,使用 i386 库运行的程序被包装在一个.sh文件中:

export LD_LIBRARY_PATH=/usr/local/mylib_i386/usr/...:$LD_LIBRARY_PATH
path/to/program

使用...lib 目录和子目录的路径(LD_LIBRARY_PATH不查看子目录)。

可能还有其他方法可以做到这一点。

相关内容