$ aptitude why libc6
i w64codecs Depends libc6 (>= 2.3.2)
$ aptitude why-not libc6
Unable to find a reason to remove libc6.
$ aptitude show libc6
Package: libc6
State: installed
Automatically installed: no
Version: 2.9-4ubuntu6
Priority: required
Section: libs
Maintainer: Ubuntu Core developers <[email protected]>
Uncompressed Size: 12.1M
Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
Suggests: locales, glibc-doc
Conflicts: libterm-readline-gnu-perl (< 1.15-2),
tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
Replaces: belocs-locales-bin
Provides: glibc-2.9-1
Description: GNU C Library: Shared libraries
Contains the standard libraries that are used by nearly all programs
on the system. This package includes shared versions of the standard
C library and the standard math library, as well as many others.
mikeage@linode ~$ aptitude -h | tail -n 1
This aptitude does not have Super Cow Powers.
mikeage@linode ~$ apt-get -h | tail -n 1
This APT has Super Cow Powers.
mikeage@linode ~$ aptitude moo
There are no Easter Eggs in this program.
mikeage@linode ~$ apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
mikeage@linode ~$ aptitude -v moo
There really are no Easter Eggs in this program.
mikeage@linode ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
mikeage@linode ~$ aptitude -vvv moo
Stop it!
mikeage@linode ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
mikeage@linode ~$ aptitude -vvvvv moo
All right, you win.
/----\
-------/ \
/ \
/ |
-----------------/ --------\
----------------------------------------------
mikeage@linode ~$ aptitude -vvvvvv moo
What is it? It's an elephant being eaten by a snake, of course.
aptitude install ... (install or upgrade a package)
aptitude remove ... (remove the binary portions of a package but preserve your /etc configuration)
aptitude purge ... (remove the package completely including your configuration)
aptitude 是 dpkg 的包装器,就像 apt-get/apt-cache 一样,但它是用于搜索/安装/删除/查询的一站式工具。apt 可能无法提供的一些示例:
当前在 Debian 安装程序中使用
并在发行说明中推荐的官方工具是aptitude
.Aptitude 提供了一个 curses 界面(当没有任何参数运行时)和一个命令行界面,几乎可以完成
apt-cache
/apt-get
所做的所有事情。它还具有更好的依赖关系解析器,可让您在多个解决方案之间浏览。即使使用命令行版本,您也可以与建议的解决方案进行交互并提供补充命令或提示(例如安装或删除另一个人推荐的软件包)。但是 aptitude 基于 libapt 库(它不是 dpkg 的直接包装器),因此它取决于
apt
软件包,因此如果没有 apt-get(也在 apt 软件包中),您将无法安装 aptitude。要了解更多关于 apt/dpkg/aptitude 如何交互的信息,您可以查看Daniel Burrows(aptitude 的主要作者)制作的图表。另一个图表显示了各种包管理工具存储的信息:apt 和 dpkg 状态文件的映射。
你也可以阅读我的文章apt-get, aptitude, ... 为你选择合适的包管理器
aptitude
记住您故意安装了哪些软件包,以及自动安装了哪些软件包以满足依赖关系。删除软件包后,aptitude 将删除那些自动安装的软件包以保持系统整洁。apt-get
是不是很聪明。aptitude
一旦您使用具有不同版本的包的不同存储库,它将很快成为不可或缺的工具。想象一下,您正在使用backports.org或像debian-multimedia.org这样的非官方存储库。然后aptitude
将显示(在某个包的详细信息页面的底部)可用的版本号并允许您选择一个。如果由于使用非官方存储库而导致程序发生冲突,您将在顶部看到“Broken: ...”显示。您可以输入l~b (limit / flag / broken) 并获得相互冲突的软件包列表。使手动解决冲突变得更加容易。
此外,您可以使用“
l
”来限制包列表。想象一下,您正在寻找以“ openoffice ”开头的软件包,然后按“l
”并键入“^openoffice
”(这是一个正则表达式),您将只看到这些软件包。从菜单中选择一个“平面包列表”,您将很快达到您的目标。完整的手册非常大,为您提供了更多的过滤器和可能性。即使您不知道它们
aptitude
是一个方便的替代品apt-get
,您也可以将其与常见参数一起使用,例如:除了在
aptitude
不带参数运行时提供漂亮的控制台 UI 之外,它将各种apt-*
命令(和dselect
)组合到一个实用程序中。要搜索一个包并安装它,使用 apt-get:
..但是 aptitude 它是相同的命令:
aptitude
确实有一些额外的功能,aptitude changelog somepkg
比如保存包(以阻止它们升级) - 没有什么是您无法通过其他命令/方法实现的,它只是更加统一和好用。如您所知,当您安装一个包时,如果它需要其他包(依赖项),它们也会被下载和安装。aptitude 会在安装时跟踪安装的软件包附带的软件包,因此当您删除后一个 aptitude 时,会要求您删除其他(现在未使用的)“孤立”依赖项。如果您删除“主”包,apt-get 会将它们静默地保存在您的系统中。
看起来最新版本的 apt-get 具有类似的功能: http ://www.psychocats.net/ubuntu/aptitude
最大的不同是 aptitude 被设计为交互式的,其中 apt 工具更适合脚本工作。您可以使用后者,即 apt 工具,以交互方式很好地使用更多的努力来获得 aptitude 提供的相同结果。如果由于某种原因您不得不只使用一种工具或另一种工具,那么您需要决定要在包管理中投入多少精力。
aptitude 的重要优势之一是它能够计算依赖关系。首先,它可以处理复杂的相互依赖关系,而无需您自己干预,而这通常 apt-get 会失败。但是,如果您不喜欢它为您提供的解决方案(并且它会为自己的解决方案评分以证明它认为它有多好),您可以要求它离开并提出另一个解决方案来解决冲突。
它确实做了一些很棒的包管理。
最大的不同是:输入“aptitude”不带任何参数。
它为您提供了一个基于文本的用户界面,您可以使用键盘搜索/导航等。查看有关依赖项、反向依赖项、包的所有可用版本的信息,并且您可以从该屏幕对它们进行任何包管理器操作。
您可以按“g”查看更改,必要时修改包的添加和删除,并应用所有待处理的操作。
通过 ssh 连接或普通旧终端进行包管理的一种很好的可视化方式。