我需要在基于 Debian 的发行版上安装两个不同版本的库

我需要在基于 Debian 的发行版上安装两个不同版本的库

Jessie 附带 APR(apache 运行时可移植)作为软件包 libapr1 版本 1.5.1-3。

然而,这是 Jessie 拥有的唯一版本(也是最新版本)。我正在尝试构建 UIMA C++ SDK,它需要 1.3.[0-9] 或 1.4.[0-9] 之间的 apr 版本。

我知道 Debian Wheezy 有 apr 1.4.6 (我下载了实际的软件包)。

我的问题是:

  1. 我是否使用 dpkg 安装软件包,而不是在源代码中添加 Wheezy?或者我应该在我的来源中添加喘息?
  2. 无论是通过 dpkg 还是通过 apt-get,如果我安装同一库的两个不同版本,我是否有破坏“东西”的风险?据我了解,Jessie 使用 apr-1.5.1 来做很多事情,所以我不想弄乱我的系统。

答案1

当您使用 dpkg 或 apt-get 安装两个不同版本时,不会破坏系统,除非您使用 -f 选项强制安装。

相反,它会在您的包数据库中创建一个附加条目。

手动安装源时,请确保将程序链接到库。例如,将 apr-1.4.6 符号链接到 /usr/local/lib/apr。将使用旧库的程序设置为使用您刚刚符号链接的库。

通过将链接放在 PATH 目录中,确保程序可以找到该链接。

答案2

我是否使用 dpkg 安装软件包,而不是在源代码中添加 Wheezy?

不。

或者我应该在我的来源中添加喘息?

不。

无论是通过 dpkg 还是通过 apt-get,如果我安装同一库的两个不同版本,我是否有破坏“东西”的风险?

是的。


相反,我建议要求项目的维护者使用最新的库,因为旧版本上存在几个安全错误(最新修复的 CVE-2015-1829),并进行了修复以确保新系统上的功能(即“修复Linux 内核版本检查以识别更多版本,包括版本 3.10 及更高版本”,如果您在库上使用带有内核 4.0+ 的 Jessie,这看起来相当令人讨厌。我会首先尝试使用较新的库构建软件,并在发现问题时对其进行修补,当然,您应该将它们提交到上游。


另一种选择是仅使用虚拟机(或允许您启动另一个内核的东西)并在那里安装 Wheezy。它可能不包括这些安全问题的修复(您可能需要自己修补它们)。

相关内容