资质和apt-get是两个处理这包管理的流行的工具。 两者都能够处理包括安装,删除,搜索等各种活动。但仍然有两个工具之间的差异,使用户喜欢一个超过另一个。 使这两个工具单独考虑的区别是本文的范围。
APT和Aptitude之间的差异
什么是Apt
公寓或高级包装工具是一个自由和开源软件,它优雅地处理软件的安装和拆卸。 最初,它是专为Debian的.deb
包,但它已能兼容RPM软件包管理器 。
公寓是一个没有GUI整个命令行。 只要在命令行指定与要安装包的名字一起被调用时,它发现包中“的/etc/apt/sources.list'依赖与该软件包列表中指定沿源配置的列表和它们排序,并自动将它们与当前包一起安装,从而使用户不必担心安装依赖项。
它具有高度的灵活性,允许用户轻松地控制各种配置,如:添加任何新的源搜索包,和apt -钉扎如系统中标记的包无法向上渐变从而使得其当前版本安装了最终版本,“智能”升级,即升级最重要的包,留下最不重要的包。
什么是能力?
性向是前端先进封装工具增加了一个用户界面的功能,从而使用户可以交互地搜索包并安装或移除。 最初为Debain创建,Aptitude还将其功能扩展到基于RPM的分发。
它的用户界面是基于ncurses库这增加了各种元素来它通常以GUI的观察。 它的一个亮点是它可以模仿大多数apt-get的命令行参数。
在所有的, 性向是更高级别的包管理,抽象低级别的细节,并且可以在这两个基于文本的交互的用户界面模式,甚至在命令行非交互式模式操作。
如果你想知道APT和Aptitude的用法与现实世界的例子,你应该转到以下文章。
APT和Aptitude之间有什么区别?
除了是该性向主要区别在于一个高级别软件包管理而APT是可以由其他更高级别的包管理器,该分离这两个包管理其他主要亮点被用于低级别软件包管理:
- Aptitude是比功能更广阔的apt-get和集成的功能apt-get和它的其他变体,包括易标记和apt-缓存 。
虽然易于得到处理所有的软件包安装,上层次,系统升级换代,净化包,解决依赖等,性向处理很多更多的东西比apt,包括易标记的功能和apt-缓存 ,即寻找一个包已安装软件包列表,标记要自动或手动安装的软件包,保留软件包以使其不可用于向上渐变等。
- 虽然apt-get缺乏UI,Aptitude有一个纯文本和交互式UI
apt-get的是一个较低的水平软件包管理器仅限于命令行,而能力倾向是一个更高级别的工具有一个默认的纯文本的互动通过输入所需的命令命令行操作的选项以及界面。
- Aptitude具有比apt-get更好的软件包管理
在许多情况下,包括安装,删除和冲突解决包,Aptitude证明它的价值,而不是apt-get。 一些情况包括:
1.在删除任何已安装的软件包, 资质将自动删除未使用的包,而易于得到需要用户通过任一增加额外的选项明确指定该'—auto-remove'
或指定'apt-get autoremove'
0.4
2.为了进一步研究为何某些动作被阻塞或者为什么或者为什么,没有一定要采取行动,能力倾向提供'why'
和“为什么-不是”命令。
这样的 :能力倾向可以找到你通过查看已安装的软件包列表,并检查是否他们的任何建议的软件包的有依赖或任何其依赖于安装某个软件的原因表明,包或等。
$ aptitude why yaws-wiki i doc-base Suggests dhelp | dwww | doc-central | yelp | khelpcenter4 p dwww Depends apache2 | httpd-cgi p yaws Provides httpd-cgi p yaws Suggests yaws-wiki
像在这里它搜寻到安装命名包的原因'yaws-wiki'
是,它是由一个依赖建议(yaws)
,它提供一个虚拟包(httpd-cgi)
在其上包(dwww)
具有依赖和包(dwww)
被命名为已安装的软件包中的一个建议'doc-base'
。
apt-get中缺少此功能。
3.虽然易于得到很可能就在安装或拆卸包装与消息相互矛盾的动作的情况下,消亡, 能力倾向可以建议可能的措施以消除冲突。
性向提供了可用于不仅在系统而且对整个库查询几乎任何包装强大的搜索。
而易于得到需要另一个贴切的变体,即易于缓存来搜索包,性向提供用于搜索的软件包它可以是安装或存在于库中,但尚未被安装更容易和有效的方法。
使用apt-cache vs Aptitude搜索软件包
$ apt-cache search 'python' | head -n4 kate - powerful text editor kcachegrind-converters - format converters for KCachegrind profiler visualisation tool kig - interactive geometry tool for KDE python-kde4 - Python bindings for the KDE Development Platform $ aptitude search 'python' | head -n4 i bpython - fancy interface to the Python interpreter p bpython-gtk - fancy interface to the Python interpreter p bpython-urwid - fancy interface to the Python interpreter p bpython3 - fancy interface to the Python3 interpreter
在这里,在默认情况下都容易缓存和存储库包的整个列表上的包资质的搜索,但资质的输出显示了包是否在系统上安装或不给予每包标志,这里是'p'
这表明包是存在的,但没有安装与'i'
这表明在安装软件包,而倾向于缓存仅列出包及其一行细节如果没有安装或不包告诉。
使用Aptitude的高级包搜索的一些其他示例
1.搜索库中的一包'python2.7'
在包的名称和'2.7'
在其描述中。
$ aptitude search '~npython2.7 ~d2.7' p idle-python2.7 - IDE for Python (v2.7) using Tkinter i libpython2.7 - Shared Python runtime library (version 2.7 p libpython2.7:i386 - Shared Python runtime library (version 2.7 p libpython2.7-dbg - Debug Build of the Python Interpreter (ver p libpython2.7-dbg:i386 - Debug Build of the Python Interpreter (ver i A libpython2.7-dev - Header files and a static library for Pyth p libpython2.7-dev:i386 - Header files and a static library for Pyth i libpython2.7-minimal - Minimal subset of the Python language (ver p libpython2.7-minimal:i386 - Minimal subset of the Python language (ver i libpython2.7-stdlib - Interactive high-level object-oriented lan p libpython2.7-stdlib:i386 - Interactive high-level object-oriented lan p libpython2.7-testsuite - Testsuite for the Python standard library i python2.7 - Interactive high-level object-oriented lan p python2.7:i386 - Interactive high-level object-oriented lan p python2.7-dbg - Debug Build of the Python Interpreter (ver p python2.7-dbg:i386 - Debug Build of the Python Interpreter (ver i A python2.7-dev - Header files and a static library for Pyth p python2.7-dev:i386 - Header files and a static library for Pyth p python2.7-doc - Documentation for the high-level object-or p python2.7-examples - Examples for the Python language (v2.7) i python2.7-minimal - Minimal subset of the Python language (ver p python2.7-minimal:i386 - Minimal subset of the Python language (ver
在这里, '~n'
代表的姓名和'~d'
指示的描述。 其他形式的相同命令是:
$ aptitude search '?name(python2.7) ?description(2.7)'
其他标志包括:
-
~i or ?installed()
在搜索中仅安装的软件包列表中选择一个包。 -
~U or ~Upgradable
:列出所有这是升级与他们最新的可用版本的软件包。 -
~E or ?Essential()
这些软件包要么安装或使用,这是至关重要的。
$ aptitude versions '?Upgradable' | head -n 12 Package apache2: ph 2.4.7-1ubuntu4 trusty 500 ph 2.4.7-1ubuntu4.5 trusty-security 500 ih 2.4.7-1ubuntu4.8 100 ph 2.4.7-1ubuntu4.9 trusty-updates 500 Package apache2-bin: p A 2.4.7-1ubuntu4 trusty 500 p A 2.4.7-1ubuntu4.5 trusty-security 500 i A 2.4.7-1ubuntu4.8 100 p A 2.4.7-1ubuntu4.9 trusty-updates 500
喜欢这里的3包安装的版本试看一个简短列表(表示'i'
和他们的升级目前的版本(带所示) 'p'
2.查找提供特定服务的所有包
要查找所有这些软件包提供SMTP服务:
$ aptitude search '?provides(smtp)' p libghc-smtpclient-dev - Simple Haskell SMTP client library p libghc-smtpclient-dev:i386 - Simple Haskell SMTP client library p libghc-smtpclient-prof - Simple Haskell SMTP client library; profil p libghc-smtpclient-prof:i386 - Simple Haskell SMTP client library; profil p syslog-ng-mod-smtp - Enhanced system logging daemon (SMTP plugi p syslog-ng-mod-smtp:i386 - Enhanced system logging daemon (SMTP plugi
3.查找建议某个包的所有包
喜欢这里,我们列出了建议“海湾合作委员会”包的所有包。
$ aptitude search '~DSuggests:gcc' | head -n10 p bochs - IA-32 PC emulator p bochs:i386 - IA-32 PC emulator p cpp-4.4 - GNU C preprocessor p cpp-4.4:i386 - GNU C preprocessor p cpp-4.6 - GNU C preprocessor p cpp-4.6:i386 - GNU C preprocessor p cpp-4.7 - GNU C preprocessor p cpp-4.7:i386 - GNU C preprocessor p cpp-4.7-arm-linux-gnueabi - GNU C preprocessor p cpp-4.7-arm-linux-gnueabi:i386 - GNU C preprocessor
结论
因此,对于大多数的情况下, 能力倾向的语法保持作为几乎相同的apt-get的 ,使用户易于得到的迁移到性向具有痛苦少,但除了这一点,许多强大的功能都集成在资质使它成为一个被选择的。 除了这些差异,我们强调,如果你发现这两个包管理器之间的任何其他有趣的差异,请在您的评论中提及他们。