Cha*_*art 75
aptitude并且apt-get对许多任务工作相同,但对于最棘手的情况,例如发行版升级(apt-get dist-upgradevs. aptitude full-upgrade),它们有不同的规则,并且 aptitude 的规则在实践中几乎总是在他们不同意的地方更好。
你看到更多关于apt-getover 的文档的原因aptitude主要是惯性:aptitude长期以来一直没有被推荐给 APT 的前端,这么多现有的文档还没有更新,而且有很多人认识到aptitudeover的优点apt-get而是apt-get反射性地使用。
我最近到了在我打字时通常apt用 ai而不是 a的地步-。
后记请注意,在apt-get和aptitude中使用的规则是移动目标——正如休伯特在评论中指出的那样,Debian Lenny 推荐的升级路径现在使用apt-get,而不是aptitude。这反映了这样一个事实,即apt-get跟踪当前包的状态比 少aptitude,因此无需担心 APT 状态不“干净”,并且因为apt-get规则比以前更智能。我仍然使用并推荐aptitude过去apt-get,但这是一个更细微的推荐
小智 22
aptitude可以方便地在搜索中显示您已安装在系统上的程序(借助grep):
aptitude search flash | grep ^i
Run Code Online (Sandbox Code Playgroud)
实际上,aptitude的搜索比您通过管道获得的搜索强大得多grep,因为它支持上下文搜索:
例如,这将查找已安装的包名称中带有“flash”的所有包:
aptitude search '~iflash'
Run Code Online (Sandbox Code Playgroud)
“短格式”的等效“长格式” ~i:
aptitude search '?installed(flash)'
Run Code Online (Sandbox Code Playgroud)
请注意,默认情况下搜索模式是免费的(未锚定的)。要锚定它们,您需要使用锚定模式“ ^”(字符串的开头)和/或“ $”(字符串的结尾)。
要查找名称以 'ttf' 或 'font' 开头的所有软件包:
aptitude search '(^ttf|^font)'
Run Code Online (Sandbox Code Playgroud)
(注意:这是 中错误的解决方法aptitude,因为正确的正则表达式'^(ttf|font)'无法正常工作——它会查找名称以“ttf”开头或包含“font”的包。)
其他漂亮的aptitude功能:
显示名称中带有“固件”且描述中带有“无线”的所有软件包:
aptitude search 'firmware ~dwireless'
Run Code Online (Sandbox Code Playgroud)
或长格式:
aptitude search '?and(?name(firmware),?description(wireless))'
Run Code Online (Sandbox Code Playgroud)
(注意:在简短形式中,空格分隔的参数在引号内进行 AND 运算;如果作为单独的 argv[] 命令行参数传递,它们将进行 OR 运算。)
p atmel-firmware - Firmware for Atmel at76c50x wireless networking chips.
p firmware-atheros - Binary firmware for Atheros wireless cards
...
p libertas-firmware - Firmware for Marvell's libertas wireless chip series
p zd1211-firmware - Firmware images for the zd1211rw wireless driver
Run Code Online (Sandbox Code Playgroud)
~U 显示所有可以从当前版本升级到新版本的软件包:
# aptitude update ; aptitude versions '~U'
Package virtualbox-4.1:
i 4.1.18-78361~Debian~squeeze 100
p 4.1.20-80170~Debian~squeeze <NULL> 500
Run Code Online (Sandbox Code Playgroud)
显示推荐'gcc-multilib'的包
$ aptitude search '~DRecommends:gcc-multilib'
i libc6-dev-i386 - Embedded GNU C Library: 32-bit development libraries for AMD64
Run Code Online (Sandbox Code Playgroud)
解释为什么可能需要安装“fuse-utils”
$ aptitude why fuse-utils
i xorg Depends xterm | x-terminal-emulator
pi gnome-terminal Provides x-terminal-emulator
pi gnome-terminal Recommends gvfs
pi gvfs Depends libgdu0 (>= 2.29.90)
pi libgdu0 Depends udisks (< 1.1.0)
pi udisks Recommends ntfsprogs
pi ntfsprogs Depends fuse-utils (> 2.5.0)
Run Code Online (Sandbox Code Playgroud)
(此示例显示了自 Squeeze(?) 安装所有“推荐”软件包以来默认设置的一些疯狂。安装 gnome-terminal 最终会安装 ntfsprogs 和 fuse-utils,egad!我想大多数人只想要终端视角和不是内置的 NTFS 集成,这是可选的,除非他们指定。)
找到所有提供“mail-transport-agent”服务的包:
$ aptitude search '?provides(mail-transport-agent)'
p citadel-mta - complete and feature-rich groupware server (mail transport agent)
...
p nullmailer - simple relay-only mail transport agent
p postfix - High-performance mail transport agent
i sendmail-bin - powerful, efficient, and scalable Mail Transport Agent
p ssmtp - extremely simple MTA to get mail off the system to a mail hub
p xmail - advanced, fast and reliable ESMTP/POP3 mail server
Run Code Online (Sandbox Code Playgroud)
显示所有已安装的包名称,它们不是 Essential 或由依赖项自动安装的:
$ aptitude search '~i!(~E|~M)' -F '%p'
Run Code Online (Sandbox Code Playgroud)
不幸的是,这东西是相当差的记录,很难找到,但在这里是最好的参考(从‘资质’的维护者)。
| 归档时间: |
|
| 查看次数: |
51819 次 |
| 最近记录: |