反向移植软件包应重建反向依赖关系

反向移植软件包应重建反向依赖关系

我在几台机器上使用 Ubuntu Jaunty,并且正在反向移植/自定义编译一些 deb 包来更新 PHP 和 OpenSSL。

不过,我的问题是,我是否也应该重新编译 OpenSSL 的所有反向依赖项?目前,服务器正在运行 0.9.8g,而我正在升级到 0.9.8o。我假设由于它们只是点发布,所以可能不一定需要/它不会破坏与之动态链接的软件包,但是我想在继续执行实际升级之前确认这一点。

如果我最终不得不重建反向依赖关系,有人知道我可以使用任何现有工具来加快速度吗? 当前一直在使用 pbuilder 和现有(较新的)Ubuntu 源档案以及对软件包的一些自定义修改,但尚未弄清楚如何将这些自定义构建软件包注入 pbuilder 环境(尝试根据更新的 OpenSSL 编译我的 PHP,但是 pbuilder 依赖项检查器安装的是 g 而不是 o .. 我假设它是通过 apt 检查的)。

任何信息都会有用。我对 Debian 软件包还不太熟悉,目前认为与 Gentoo / Arch 相比,它很麻烦 -_-

答案1

OpenSSL 0.9.8g 和 OpenSSL 0.9.8o Ubuntu 软件包都将提供相同的共享库软件包libssl0.9.8。这定义了一个稳定的 ABI,在大多数情况下,您会发现链接到 libssl 的应用程序将仅声明对 libssl0.9.8 的依赖。有时可能需要特定版本,但这些通常是最小版本而不是最高版本。

破坏 ABI 的 OpenSSL 的主要新版本将引入一个新包,例如 libssl1.0.0。如果您想升级到该包,那么您确实必须重新编译反向依赖项。这通常称为库转换,在相关发行版的开发版本中完成时即可完成。在反向移植时最好避免这种情况。

简而言之,如果 dpkg/apt 允许您安装新的软件包而不会抱怨依赖关系,那么您就不太可能遇到问题(并且您不需要重新编译那些反向依赖关系)。

相关内容