m00*_*000 3 debian package-management ubuntu apt
有没有办法找出软件包是如何安装在 Debian 上的?
即查看它是否是手动安装的或哪个包将其作为依赖项。
此信息应该在某处可用(例如用于apt-get autoremove工作),但我不确定如何为单个包显示它。
例如使用能力:
$ aptitude show gimp linux-headers-3.2.0-2-686-pae
Package: gimp
New: yes
State: installed
Automatically installed: no
<snip>
Package: linux-headers-3.2.0-2-686-pae
New: yes
State: installed
Automatically installed: yes
<snip>
Run Code Online (Sandbox Code Playgroud)
这显示了我系统上的两个示例包。“自动安装”字段显示它是手动安装还是由依赖项拖入。
正如您怀疑的那样,此信息可供 APT 使用。根据您喜欢使用的工具,它会出现在不同的地方,但它很可能被称为“自动安装”,并带有“是/否”值。
您可以使用apt-rdepends(在主存储库中可用)列出包的向前或向后依赖项。例子:
$ apt-rdepends -rp --state-follow=Installed \
--state-show=Installed linux-headers-3.2.0-3-686-pae
Reading package lists... Done
Building dependency tree
Reading state information... Done
linux-headers-3.2.0-3-686-pae
Reverse Depends: linux-headers-686-pae (3.2+45) [Installed]
linux-headers-686-pae
Run Code Online (Sandbox Code Playgroud)
(前两行是单个命令,为了便于阅读而分开)。
这表明linux-headers-3.2.0-3-686-pae由 拖入linux-headers-686-pae,而后者对我的系统没有任何反向依赖关系。查看man apt-rdepends可用的开关。
更新:稍微扩展一下:确切知道哪个包A拖到包B 中并不是很有用,因为也依赖于B 的包C可能已经安装了,因此删除A不应该/不会删除B。在这种情况下,将列出A和C 都依赖于B,但没有给出A或C最初负责安装B 的指示。apt-rdepends
| 归档时间: |
|
| 查看次数: |
885 次 |
| 最近记录: |