如何从 aptitude 安装需要手动安装另一个包的包?

如何从 aptitude 安装需要手动安装另一个包的包?

想象一下当您(手动)安装例如 openssl 包时的情形:

wget http://openssl.org/source/openssl-1.0.1h.tar.gz
tar -xvf openssl-1.0.1h.tar.gz
cd openssl-1.0.1h

./config shared
make depend
make
make test
make install

现在您想从 aptitude 安装另一个包,如下所示:

apt-get install ca-certificates

但是它说它将安装您已经手动安装的软件包的 openssl(较低版本但具有 aptitude),如何使用我已经手动安装的软件包来安装它?

请不要关心为什么我需要手动安装这个包而不是使用官方包,请帮我回答这个问题,谢谢。如果这个包对你来说是个问题,你可以想象任何其他包。

答案1

实际上没有一个干净的方法来做到这一点,但是因为您已经从源代码安装了 openssl,所以无论如何您都只能靠自己了。

  • 用于apt-get download <package>获取您想要安装的.deb 文件。
  • 使用以下方式安装 .deb 文件dpkg --ignore-dep=openssl -i <dotdebfile.deb>
  • 编辑/var/lib/dpkg/status并从 <package> 中删除依赖项。

答案2

好的,openssl/libssl 有点复杂,所以让我们从假设一些其他包依赖关系开始。

首先,在具有包管理器的操作系统上,通过 ./configure; make; make install 安装某些东西会使事情变得不必要地复杂。如果您需要现有包存储库未提供的东西,更好的方法通常是创建自己的 (deb) 包并安装它。

也就是说,如果你真的坚持手动安装东西,最简单的保持 dpkg/apt 包数据库正常运行的方法可能是使用类似当量创建空的虚假包,提供依赖项但不实际安装任何文件。

openssl/libssl 更复杂的原因是您经常依赖特定版本。根据情况,您可能仍需要安装现有的 Debian 版本,然后在(库)路径之外的单独位置安装较新的版本。

相关内容