转自:http://www.zhlwish.com/2011/10/23/ubuntu-apt-aptitude-dpkg/

简述

最开始的时候,Linux上的软件以源代码的方式发布,用户下载源代码包(通常打包为.tar.gz),然后自行编译。

dpkg是Debian软件包管理器的基础,它被伊恩·默多克创建于1993年。dpkg与RPM十分相似,同样被用于安装、卸载和供给和.deb软件包相关的信息。

dpkg本身是一个底层的工具,本身并不能从远程包仓库下载包以及处理包的依赖的关系,基于dpkg的上层工具,如APT,则用于从远程获取软件包以及处理复杂的软件包关系


APT全称Advanced Packaging Tool,可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。现在Debian和其衍生发行版(如Ubuntu)中都包含了APT。

APT最早是基于dpkg的开发的,只用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装在支持RPM的系统管理RPM包。

而aptitude是一个APT的文本界面客户端,现在也逐渐加入了GUI的界面,详见http://linuxtoy.org/archives/gtk-gui-for-aptitude.html

Synaptic是Ubuntu中自带的APT的GUI客户端,也就是传说中的新立得。

dpkg命令

(来自:http://linuxtoy.org/archives/dpkg_reference.html)

命令作用
dpkg -i package.deb安装包
dpkg -r package删除包
dpkg -P package删除包(包括配置文件)
dpkg -L package列出与该包关联的文件
dpkg -l package显示该包的版本
dpkg –unpack package.deb解开 deb 包的内容
dpkg -S keyword搜索所属的包内容
dpkg -l列出当前已安装的包
dpkg -c package.deb列出 deb 包的内容
dpkg –configure package配置包

注意:更多选项可通过 dpkg -h 查询,有些指令需要超级用户权限才能执行

APT命令

(来自:http://linuxtoy.org/archives/apt_reference.html)

命令作用
apt-cache search package搜索包
apt-cache show package获取包的相关信息,如说明、大小、版本等
sudo apt-get install package安装包
sudo apt-get install package –reinstall重新安装包
sudo apt-get -f install强制安装
sudo apt-get remove package删除包
sudo apt-get remove package –purge删除包,包括删除配置文件等
sudo apt-get autoremove自动删除不需要的包
sudo apt-get update更新源
sudo apt-get upgrade更新已安装的包
sudo apt-get dist-upgrade升级系统
sudo apt-get dselect-upgrade使用 dselect 升级
apt-cache depends package了解使用依赖
apt-cache rdepends package了解某个具体的依赖
sudo apt-get build-dep package安装相关的编译环境
apt-get source package下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean清理下载文件的存档
sudo apt-get check检查是否有损坏的依赖

备注:package 为软件包名称。

aptitude命令

(来自http://linuxtoy.org/archives/aptitude_quick_reference.html
aptitude是基于APT的又一个包管理的前端,aptitude似乎在处理依赖问题上更佳一些。据说aptitude 另外用一份数据量很小的扩展标记来实现所谓更佳的管理,我没有发现有什么比apt命令更加牛逼的功能,不过看起来命令比apt要简洁。

命令作用
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也是text-based,也就是命令行模式的

Synaptic

由于synaptic是GUI界面的,没啥命令好说的,其实这个在Ubuntu里面也挺少用到的,更多的还是通过apt-get命令就可以搞定。


Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐