过时的软件包与孤立的软件包


18

过时的包和孤立的包之间有什么区别?更具体地说,为什么会deborphan产生这种情况:

dave@ubuntu:~$ deborphan
libbind9-80
libllvm3.1
libgrail5
libpython3.2
libsvga1
libarchive12
libdirectfb-1.2-9
gcalctool
liblwres80
libqpdf8
libkms1
libnux-3.0-0

... aptitude search '~o'产生以下结果:

dave@ubuntu:~$ aptitude search '~o'
idA libarchive12                                 - Multi-format archive and compression library (shared li
i   libbind9-80                                  - BIND9 Shared Library used by BIND                      
i   libdns81                                     - DNS Shared Library used by BIND                        
i   libdrm-nouveau1a                             - Userspace interface to nouveau-specific kernel DRM serv
idA libgrail5                                    - Gesture Recognition And Instantiation Library          
i   libisc83                                     - ISC Shared Library used by BIND                        
i   libisccc80                                   - Command Channel Library used by BIND                   
i   libisccfg82                                  - Config File Handling Library used by BIND              
i   liblwres80                                   - Lightweight Resolver Library used by BIND              
idA libnux-3.0-0                                 - Visual rendering toolkit for real-time applications - s
idA libnux-3.0-common                            - Visual rendering toolkit for real-time applications - c
idA libpython3.2                                 - Shared Python runtime library (version 3.2)            
idA libqpdf8                                     - runtime library for PDF transformation/inspection softw
i   libudev0                                     - udev library                                           
i A linux-headers-3.5.0-27                       - Header files related to Linux kernel version 3.5.0     
i A linux-headers-3.5.0-27-generic               - Linux kernel headers for version 3.5.0 on 32 bit x86 SM
i   linux-image-3.5.0-27-generic                 - Linux kernel image for version 3.5.0 on 32 bit x86 SMP 
i   linux-image-extra-3.5.0-27-generic           - Linux kernel image for version 3.5.0 on 32 bit x86 SMP 
i   python3.2                                    - Interactive high-level object-oriented language (versio
i   python3.2-minimal                            - Minimal subset of the Python language (version 3.2)

奖金问题:apt-get autoremove甚至更多。为什么?

dave@ubuntu:~$ sudo apt-get --purge autoremove
[sudo] password for dave: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  gksu* libarchive12* libdirectfb-1.2-9* libgksu2-0* libgnome-menu2* libgrail5* libllvm3.1*
  libnux-3.0-0* libnux-3.0-common* libpython3.2* libqpdf8* libsvga1* libts-0.0-0* libx86-1*
  mobile-broadband-provider-info* python-imaging* python-imaging-compat* python-    oauth* tsconf*
0 upgraded, 0 newly installed, 19 to remove and 0 not upgraded.
After this operation, 33.8 MB disk space will be freed.
Do you want to continue [Y/n]? n
Abort.

如果有人想知道,则提示升级到13.04。


我个人删除了除旧内核以外的所有内核,因为在我的计算机上,新内核有点漏洞
jerick wallace 2013年

Answers:


26

简而言之,过时的软件包不再位于列表中的任何存储库中。孤包是自动依赖项,其“依赖项”已全部卸载。并且apt-get autoremove仅考虑apt解决依赖关系而安装的孤立软件包。

过时的软件包

您可能知道,apt保留了可以从中获取软件包的存储库列表。但有时,软件包会从存储库中删除。也许没有人再照顾(维护)该软件包,并且可用的(很旧)最新版本已成为安全隐患。也许程序已更改其名称,相应地更改了软件包名称,并删除了旧名称下的旧软件包。还有从软件包中删除软件包的其他可能原因。

如果系统上已安装软件包,但apt在列表中的任何存储库中都找不到该软件包,则该软件包被视为“已过时”。

孤包

您可能也知道,apt可以管理软件包之间的依赖关系。举例来说,一个名为“ greatprogram”的程序需要一个名为“ greatlibrary”的库才能工作。因此,包含greatlibrary的软件包可以标记为包含greatprogram的软件包的自动依赖项。除非已经安装了greatlibrary(或者将使用相同的命令进行安装),否则您将无法安装greatprogram软件包。

但是,如果您第二天卸载greatprogram而留下了greatlibrary,该怎么办?在这种情况下,至少有另一个软件包需要依赖库作为依赖,但是现在没有其他软件包可以使用了。那些“遗留”程序包称为“孤立程序包”。

apt-get autoremove

您可能还知道的另一个事实是,它apt可以为您自动解决依赖关系。假设您要安装上述greatprogram,但尚未安装greatlibrary。apt-get“注意”存在不满意的依赖关系,并为您提供安装库的机会。

apt-get autoremove使您可以删除以这种方式安装的所有孤立软件包以解决依赖关系。以其他方式安装的孤立软件包不在autoremove的列表中。例如,如果您在安装greatprogram之前先自己安装了greatlibrary,然后在第二天卸载greatprogram,那么greatlibrary仍然是孤立的。但是autoremove不会处理它,因为解决依赖关系并没有自动安装它。


1
感谢您的出色解释。但是很好奇:为什么不了解deborphan所有事情autoremove呢?我了解为什么它无法正常工作。
大卫·肯尼迪
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.