我正在尝试安装一个在 Ubuntu 12.04 LTS 中开发的应用程序。此应用程序(我无法访问源代码)需要安装“libboost_system.1.49”。
现在我必须在 Ubuntu 22.04 LTS 中安装此应用程序,我可以想象,存在一些兼容性问题。
首先,我尝试安装并运行 Boost 库的最新版本 1.74,但应用程序无法运行它,并且仍在请求版本 1.49。
我看到一些相关链接讨论如何卸载该软件包的 X 版本以安装较新或较旧的版本,但按照这些线程中解释的步骤操作后,我仍然无法使其运行。
我尝试过这个:卸载boost并安装其他版本没有成功。还有这个:官方网站的安装说明 我从这里下载了 Boost 版本:从官方网站下载链接
我尝试通过运行来检查安装的库的版本:dpkg -s libboost-dev | grep 'Version'
并且响应是“该包未安装且没有可用信息”
终端显示的异常内容如下:AppName: error while loading shared libraries: libboost_system.so.1.49.0: cannot openshared object file: No such file or directory
与 JAVA_HOME 路径一样,是否有一种方法可以在 Ubuntu 中指定应用程序需要去检索已安装版本的 Boost 库的路径?
我还尝试执行以下命令:
./bootstrap.sh
和
sudo ./b2 --with=all -j $cpuCores install
,来自 Boost 版本的下载文件夹内,但它将 boost 库安装在 /usr/local/include 下而不是 /usr/include 中。
总而言之,我尝试的最后一件事是运行最后一条命令并添加 --prefix 指令:
sudo ./b2 --with=all -j $cpuCores install --prefix=/usr/include
但是当我再次检查版本时,仍然说没有安装 libboost-dev。
每当我尝试安装 libboost-dev 包时,它都会安装 Boost 的最新版本,而不是 1.49,并且我尝试安装 libboost-all-dev_1.49.0.1_i386.deb 包,这是我在 launchpad.net 存储库中能找到的唯一一个包,但是在运行命令时sudo dpkg -i libboost-all-dev_1.49.0.1_i386.deb
,终端会出现一个 dpkg 错误,提示“依赖性问题阻止了 libboost-all-dev:i386 的配置”,并说它依赖于“libboost-dev”......如果我安装它,我将获得最新版本的 Boost 包,但它不兼容......
我可以在 Ubuntu 22.04 LTS 中以某种方式安装和链接 Boost 库的 1.49 版本吗?我不在乎有没有这个库的最新版本,因为安装它的 PC 不会安装任何应用程序。只有依赖于这个 1.49 版本的应用程序。
任何你能提供的帮助我都会非常感激
答案1
您是否尝试过将当前 1.7.4 库与 1.4.9 库建立符号链接?
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_system.so /usr/lib/x86_64-linux-gnu/libboost_system.so.1.49.0