想象一下当您安装例如这样的 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),如何使用我已经手动安装的软件包进行安装?
请不要在意为什么我需要手动安装这个包而不是使用官方的,请帮我回答问题,谢谢。如果这个包对你来说是个问题,你可以想象任何其他包。
没有真正干净的方法可以做到这一点,但是当您从源代码安装 openssl 时,无论如何您都是靠自己的。
apt-get download <package>
获取要安装的 .deb 文件。dpkg --ignore-dep=openssl -i <dotdebfile.deb>
/var/lib/dpkg/status
并删除 <package> 中的依赖项。好的,openssl/libssl 有点复杂,所以让我们从假设一些其他包依赖开始。
首先,您通过 ./configure 安装一些东西,使事情变得不必要地复杂;制作; 在具有包管理器的操作系统上进行安装。如果您需要现有包存储库未提供的东西,更好的方法通常是创建自己的(deb)包并安装它。
也就是说,如果你真的坚持手动安装东西,让 dpkg/apt 包数据库满意的最简单方法可能是使用类似equivs之类的东西来创建空的假包,在不实际安装任何文件的情况下提供依赖关系。
使 openssl/libssl 更复杂的原因是您经常依赖于特定版本。根据具体情况,您可能仍需要安装常用的 Debian 版本,然后将较新的版本安装在(库)路径之外的单独位置。