我想获得由apt
或手动安装的软件包列表,aptitude
并能够找出foobar
软件包是手动安装还是自动安装。从命令行有什么巧妙的方法可以做到这一点吗?
我想安装一个包 (DigiKam),但它有很多依赖项。如果我决定不再需要这个软件并卸载它,现在不需要的依赖项会被删除吗?
如果没有,我该如何手动完成?
我正在研究一些机器设置说明,我惊讶地发现它的apt-get install A B
行为与apt-get install A && apt-get install B
.
我的具体例子是A == openjdk-7-jdk
和B == ant
。
因此,openjdk-7-jdk
取决于openjdk-7-jre-headless
,满足ant
的依赖关系 java6-runtime-headless
。但是,如果您将它们安装为apt-get install openjdk-7-jdk ant
,APT 似乎无法解决这个问题并安装default-jre-headless
. 但是如果你在安装openjdk-7-jdk
之前安装ant
,它的依赖是满足的,一切都很好。
APT 通常足够聪明来解决这类问题,那么为什么在这种情况下不能这样做呢?我想更好地了解为什么它会以这种方式工作,这样以后就不会再遇到这种事情了。
每次我安装一个包时:
sudo apt-get install <pkg>
Run Code Online (Sandbox Code Playgroud)
apt-get 显示建议的软件包列表。到目前为止,我只是忽略了这些,但其中一些建议实际上很好(有些则不是)。我想将所有这些列表恢复到一个大列表中(以便我可以查看它并决定是否要安装某些软件包),但是我在 /var/log/apt/history.log 中看不到它们。
也就是说,我正在寻找类似的东西
list = []
for package in installed_packages:
list.append(package.name)
print list
Run Code Online (Sandbox Code Playgroud)