Apt处理从其存储库或*.deb
文件安装的软件包之间的依赖关系。但是,用户从源代码编译并安装./configure && make && make install
而不先创建.deb
文件的软件又如何呢?Apt是否有可能删除此类软件所需的软件包?是从源代码安装软件/opt
还是/usr/local
有所作为?
Apt处理从其存储库或*.deb
文件安装的软件包之间的依赖关系。但是,用户从源代码编译并安装./configure && make && make install
而不先创建.deb
文件的软件又如何呢?Apt是否有可能删除此类软件所需的软件包?是从源代码安装软件/opt
还是/usr/local
有所作为?
Answers:
APT对手动安装的软件一无所知。它不知道该软件需要什么库或什么。
当APT仅安装软件包以满足其他软件包的依赖性时,该软件包将标记为自动安装。如果删除依赖于自动安装的软件包的所有软件包,则在运行时将删除该软件包apt-get autoremove
。APT的更高级别的前端通常会在进行其他维护之后提供此功能。为避免删除本地安装的软件所需的软件包,请将这些软件包标记为手动安装:,或键入aptitude。apt-mark manual PACKAGE-NAME
m
要查找二进制可执行文件需要哪些库软件包,请运行ldd /path/to/executable
。对于包含的每一行,运行以显示包含该库的软件包的名称。对于脚本,显示脚本使用的解释器;确保该解释器保持安装状态。查找脚本使用的库可能很困难,没有通用的方法可以做到。/usr/lib/SOMETHING
dpkg -S /usr/lib/SOMETHING
head -n 1 /path/to/script
如果您手动安装了发行版中存在的软件包的较新版本,请查看发行版软件包的依赖项并将其标记为手动安装。
apt-get
Debian中的Jessie没有manual
选项。对于这些手动或自动(自动)安装提示,我一直在使用apt-mark
。(apt-mark manual pkg
,apt-mark showmanual pkg
,apt-mark auto pkg
等)
apt-mark
,谢谢。