Ubuntu(Debian)的aptitude与apt-get的区别和联系

aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些。举例来说,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。以下是笔者总结的一些常用 aptitude 命令,仅供参考。
命令 作用
aptitude update 更新可用的包列表
aptitude upgrade 升级可用的包
aptitude dist-upgrade 将系统升级到新的发行版
aptitude install pkgname 安装包
aptitude remove pkgname 删除包
aptitude purge pkgname 删除包及其配置文件
aptitude search string 搜索包
aptitude show pkgname 显示包的详细信息
aptitude clean 删除下载的包文件
aptitude autoclean 仅删除过期的包文件

当然,你也可以在文本界面模式中使用 aptitude。

有的问题 apt-get 解决不了,必须使用 aptitude 解决,有的问题,用 aptitude 解决不了,必须使用 apt-get

    • aptitude 解决得更好的地方: install, remove, reinstall(apt-get无此功能),
      show(apt-get无此功能), search(apt-get无此功能), hold(apt-get无此功能),
      unhold(apt-get无此功能), 
    • apt-get 解决得更好的地方: source(aptitude无此功能), build-dep (低版本的aptitude没有build-dep功能)
    • apt-get 跟 aptitude 没什么区别的地方:update, upgrade (apt-get upgrade=aptitude safe-upgrade, apt-get
    • dist-upgrade=aptitude full-upgrgade)

aptitude妙用实例:

下列软件包有未满足的依赖关系:
 libreadline6-dev : 依赖: libreadline6 (= 6.3-4ubuntu2) 但是 6.3-8ubuntu1 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

yingc@yingc:~/work/gitcode/test.new.1$ aptitude install libreadline6-dev
程序“aptitude”尚未安装。 您可以使用以下命令安装:
sudo apt-get install aptitude
yingc@yingc:~/work/gitcode/test.new.1$ sudo apt-get install aptitude
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
libjs-sphinxdoc libnetpbm10 libqt4-core libqt4-gui libqt5quickparticles5 libqt5quicktest5 libqt5quickwidgets5 netpbm php-tcpdf
thunderbird-locale-en thunderbird-locale-en-gb thunderbird-locale-en-us thunderbird-locale-zh-cn thunderbird-locale-zh-hans
Use 'apt-get autoremove' to remove them.
将会安装下列额外的软件包:
aptitude-common libboost-iostreams1.54.0 libcwidget3 libept1.4.12
建议安装的软件包:
aptitude-doc-en aptitude-doc tasksel debtags libcwidget-dev
下列【新】软件包将被安装:
aptitude aptitude-common libboost-iostreams1.54.0 libcwidget3 libept1.4.12
升级了 0 个软件包,新安装了 5 个软件包,要卸载 0 个软件包,有 107 个软件包未被升级。
需要下载 2,526 kB 的软件包。
解压缩后会消耗掉 10.5 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu/ trusty-updates/main libboost-iostreams1.54.0 i386 1.54.0-4ubuntu3.1 [29.3 kB]
获取:2 http://cn.archive.ubuntu.com/ubuntu/ trusty/main libept1.4.12 i386 1.0.12 [140 kB]
获取:3 http://cn.archive.ubuntu.com/ubuntu/ trusty/main aptitude-common all 0.6.8.2-1ubuntu4 [700 kB]
获取:4 http://cn.archive.ubuntu.com/ubuntu/ trusty/main libcwidget3 i386 0.5.16-3.5ubuntu1 [300 kB]
获取:5 http://cn.archive.ubuntu.com/ubuntu/ trusty/main aptitude i386 0.6.8.2-1ubuntu4 [1,356 kB]
下载 2,526 kB,耗时 9秒 (273 kB/s)
Selecting previously unselected package libboost-iostreams1.54.0:i386.
(正在读取数据库 ... 系统当前共安装有 236171 个文件和目录。)
Preparing to unpack .../libboost-iostreams1.54.0_1.54.0-4ubuntu3.1_i386.deb ...
Unpacking libboost-iostreams1.54.0:i386 (1.54.0-4ubuntu3.1) ...
Selecting previously unselected package libept1.4.12:i386.
Preparing to unpack .../libept1.4.12_1.0.12_i386.deb ...
Unpacking libept1.4.12:i386 (1.0.12) ...
Selecting previously unselected package aptitude-common.
Preparing to unpack .../aptitude-common_0.6.8.2-1ubuntu4_all.deb ...
Unpacking aptitude-common (0.6.8.2-1ubuntu4) ...
Selecting previously unselected package libcwidget3.
Preparing to unpack .../libcwidget3_0.5.16-3.5ubuntu1_i386.deb ...
Unpacking libcwidget3 (0.5.16-3.5ubuntu1) ...
Selecting previously unselected package aptitude.
Preparing to unpack .../aptitude_0.6.8.2-1ubuntu4_i386.deb ...
Unpacking aptitude (0.6.8.2-1ubuntu4) ...
Processing triggers for man-db (2.7.0.2-2) ...
正在设置 libboost-iostreams1.54.0:i386 (1.54.0-4ubuntu3.1) ...
正在设置 libept1.4.12:i386 (1.0.12) ...
正在设置 aptitude-common (0.6.8.2-1ubuntu4) ...
正在设置 libcwidget3 (0.5.16-3.5ubuntu1) ...
正在设置 aptitude (0.6.8.2-1ubuntu4) ...
update-alternatives: using /usr/bin/aptitude-curses to provide /usr/bin/aptitude (aptitude) in 自动模式
Processing triggers for libc-bin (2.19-10ubuntu2) ...
yingc@yingc:~/work/gitcode/test.new.1$
yingc@yingc:~/work/gitcode/test.new.1$
yingc@yingc:~/work/gitcode/test.new.1$
yingc@yingc:~/work/gitcode/test.new.1$ sudo aptitude install libreadline6-dev
下列“新”软件包将被安装。
libreadline6-dev{b}
下列软件包将被“删除”:
libjs-sphinxdoc{u} libnetpbm10{u} libqt4-core{u} libqt4-gui{u} libqt5quickparticles5{u} libqt5quicktest5{u} libqt5quickwidgets5{u}
netpbm{u} php-tcpdf{u} thunderbird-locale-en{u} thunderbird-locale-en-gb{u} thunderbird-locale-en-us{u} thunderbird-locale-zh-cn{u}
thunderbird-locale-zh-hans{u}
0 个软件包被升级,新安装 1 个, 14 个将被删除, 同时 102 个将不升级。
需要获取 207 kB 的存档。 解包后将释放 19.2 MB。
下列软件包存在未满足的依赖关系:
libreadline6-dev : 依赖: libreadline6 (= 6.3-4ubuntu2) 但是 6.3-8ubuntu1 已安装。
下列动作将解决这些依赖关系: 保持 下列软件包于其当前版本:
1) libreadline6-dev [未安装的] 是否接受该解决方案?[Y/n/q/?] n
下列动作将解决这些依赖关系: 降级 下列软件包:
1) libreadline6 [6.3-8ubuntu1 (now) -> 6.3-4ubuntu2 (trusty)] 是否接受该解决方案?[Y/n/q/?] y
下列软件包将被“降级”:
libreadline6
下列“新”软件包将被安装。
libreadline6-dev
下列软件包将被“删除”:
libjs-sphinxdoc{u} libnetpbm10{u} libqt4-core{u} libqt4-gui{u} libqt5quickparticles5{u} libqt5quicktest5{u} libqt5quickwidgets5{u}
netpbm{u} php-tcpdf{u} thunderbird-locale-en{u} thunderbird-locale-en-gb{u} thunderbird-locale-en-us{u} thunderbird-locale-zh-cn{u}
thunderbird-locale-zh-hans{u}
0 个软件包被升级,新安装 1 个, 1 个被降级, 14 个将被删除, 同时 102 个将不升级。
需要获取 318 kB 的存档。 解包后将释放 19.2 MB。
您要继续吗?[Y/n/?] y
读取: 1 http://cn.archive.ubuntu.com/ubuntu/ trusty/main libreadline6 i386 6.3-4ubuntu2 [111 kB]
读取: 2 http://cn.archive.ubuntu.com/ubuntu/ trusty/main libreadline6-dev i386 6.3-4ubuntu2 [207 kB]
已下载 318 kB,耗时 15秒 (20.0 kB/s)
(正在读取数据库 ... 系统当前共安装有 236310 个文件和目录。)
Removing libjs-sphinxdoc (1.2.2+dfsg-1ubuntu2) ...
Removing netpbm (2:10.0-15.1) ...
Removing libnetpbm10 (2:10.0-15.1) ...
Removing libqt4-core (4:4.8.6+git49-gbc62005+dfsg-1ubuntu1) ...
Removing libqt4-gui (4:4.8.6+git49-gbc62005+dfsg-1ubuntu1) ...
Removing libqt5quickparticles5:i386 (5.3.0-3ubuntu13) ...
Removing libqt5quicktest5:i386 (5.3.0-3ubuntu13) ...
Removing libqt5quickwidgets5:i386 (5.3.0-3ubuntu13) ...
Removing php-tcpdf (6.0.048+dfsg-2) ...
Removing thunderbird-locale-en-gb (1:31.6.0+build1-0ubuntu0.14.10.1) ...
Removing thunderbird-locale-en-us (1:31.6.0+build1-0ubuntu0.14.10.1) ...
Removing thunderbird-locale-en (1:31.8.0+build1-0ubuntu0.14.10.1) ...
Removing thunderbird-locale-zh-cn (1:31.6.0+build1-0ubuntu0.14.10.1) ...
Removing thunderbird-locale-zh-hans (1:31.8.0+build1-0ubuntu0.14.10.1) ...
Processing triggers for man-db (2.7.0.2-2) ...
Processing triggers for libc-bin (2.19-10ubuntu2) ...
dpkg:警告:downgrading libreadline6:i386 from 6.3-8ubuntu1 to 6.3-4ubuntu2
(正在读取数据库 ... 系统当前共安装有 235426 个文件和目录。)
Preparing to unpack .../libreadline6_6.3-4ubuntu2_i386.deb ...
Unpacking libreadline6:i386 (6.3-4ubuntu2) over (6.3-8ubuntu1) ...
正在设置 libreadline6:i386 (6.3-4ubuntu2) ...
Processing triggers for libc-bin (2.19-10ubuntu2) ...
Selecting previously unselected package libreadline6-dev:i386.
(正在读取数据库 ... 系统当前共安装有 235426 个文件和目录。)
Preparing to unpack .../libreadline6-dev_6.3-4ubuntu2_i386.deb ...
Unpacking libreadline6-dev:i386 (6.3-4ubuntu2) ...
Processing triggers for install-info (5.2.0.dfsg.1-4) ... 当前状态:102 个被更新 [-5]。

Ubuntu(Debian)的aptitude与apt-get的区别和联系的更多相关文章

  1. Ubuntu(Debian)apt-get

    Ubuntu(Debian)的aptitude与apt-get的区别和联系   最近在使用Puppet快速部署Openstack,看到一些没见过的工具,例如aptitude,在Ubuntu上有强大的a ...

  2. Ubuntu/Debian 8 安装 Intel realsense 摄像头驱动

    ## Make Ubuntu/Debian Up-to-date1. sudo apt-get update && sudo apt-get upgrade && su ...

  3. How to Install and Configure Bind 9 (DNS Server) on Ubuntu / Debian System

    by Pradeep Kumar · Published November 19, 2017 · Updated November 19, 2017 DNS or Domain Name System ...

  4. Linux配置防火墙添加端口(Ubuntu/Debian无法使用此方法)

    注意:Ubuntu/Debian无法使用此方法 1.打开iptables vi /etc/sysconfig/iptables 2.添加防火墙规则 规则参考:http://www.cnblogs.co ...

  5. Sublime Text 2/3 输入法修复[Ubuntu(Debian)]

    一直想找一个可以替代sublime的IDE主要还是hi因为没有好的方法解决中文输入的问题, 今天在网上找到一个非常不错的方法,亲自实验是可行的,就记录下来了,我的系统是ubuntu16.04 Subl ...

  6. Ubuntu 18.04 国内的 apt 源

    一.Ubuntu 18.04 国内的 apt 源 1. 阿里源 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted univers ...

  7. MySQL For Linux(CentOS/Ubuntu/Debian/Fedora/Arch)一键安装脚本(5.1-8.0)

    简介 很多童鞋不懂这么在Linux系统安装MySQL,网上大多数教程较复杂,不太适合小白安装,本教程提供一键安装脚本供大家使用,教大家怎么在Linux操作系统( 支持CentOS/Ubuntu/Deb ...

  8. ubuntu sudo update与upgrade的作用及区别

    ubuntu sudo update与upgrade的作用及区别 入门linux的同志,刚开始最迫切想知道的,大概一个是中文输入法,另一个就是怎么安装软件.本文主要讲一下LINUX安装软件方面的特点. ...

  9. apt-spy来获得适合自己的源,适用于UBUNTU/Debian

    使用ubuntu和debian等使用APT源的系统,有些时候是不是会不知道哪里有源,哪里的源比较快让自己的宽带完全利用,我们可以用apt-spy来自动找到 apt-spy -d unstable -a ...

随机推荐

  1. Selenium2+python自动化75-非input文件上传(SendKeys)【转载】

    转至博客:上海-悠悠 前言 不少小伙伴问非input标签如何上传文档,这个本身就是一坑,无奈很多小伙伴非要跳坑里去,那就介绍一个非主流的上传文件方法吧,用第三方库SendKeys. (本篇基于pyth ...

  2. Selenium2+python自动化49-判断文本(text_to_be_present_in_element)【转载】

    前言 在做结果判断的时候,经常想判断某个元素中是否存在指定的文本,如登录后判断页面中是账号是否是该用户的用户名. 在前面的登录案例中,写了一个简单的方法,但不是公用的,在EC模块有个方法是可以专门用来 ...

  3. 《JAVA8实战》读书笔记之传递方法和传递lambda

    传递方法: 假设 你有一个Apple类,它 有一个getColor方法,还有一个变量inventory保存着一个Apples的列表.你可能想要选出所 有的绿苹果,并返回一个列表.通常我们用筛选(fil ...

  4. hdu 3768(spfa+暴力)

    Shopping Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  5. python 模拟登陆园子

    主要用到了python cookielib,urllib2,urllib这3个模块,python 不亏是具有 先天做 爬虫的特质,废话多说直接上代码 #coding: utf- import sys ...

  6. POJ 2407.Relatives-欧拉函数O(sqrt(n))

    欧拉函数: 对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目. 对于一个正整数N的素数幂分解N=P1^q1*P2^q2*...*Pn^qn. Euler函数表达通式:euler(x)=x(1 ...

  7. HDU 1532.Drainage Ditches-网络流最大流

    Drainage Ditches Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. (5)python 字符串和输入输出

    一.字符串转义 字符串可以包含任何字符可以用单引号也可以用双引号 a='hello' a="hello" 如果字符串中存在单引号,可以用双引号里包含单引号的方式 a="I ...

  9. python3中zipfile模块的常用方法

    一.zipfile模块的简述 zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的, 在这里对zipfile的使用方法做一些记 ...

  10. 读取SequenceFile中自定义Writable类型值

    1)hadoop允许程序员创建自定义的数据类型,如果是key则必须要继承WritableComparable,因为key要参与排序,而value只需要继承Writable就可以了.以下定义一个Doub ...