因为工作的关系,刚从CentOS换到Ubuntu,需要对Ubuntu系统有一些了解。因此便有了本文。
apt-cache search package #搜索包(相当于yum list | grep pkg)apt-cache show package #显示包的相关信息,如说明、大小、版本等apt-cache showpg package #显示包的相关信息,如Reverse Depends(反向依赖)、依赖等apt-get install package #安装包apt-get reinstall package #重新安装包apt-get -f install package #强制安装apt-get remove package #删除包(只是删掉数据和可执行文件,不删除配置文件)apt-get remove --purge package #删除包,包括删除配置文件等apt-get autoremove --purge package #删除包及其依赖的软件包+配置文件等apt-get update #更新源apt-get upgrade #更新已安装的包apt-get dist-upgrade #升级系统apt-get dselect-upgrade #使用 dselect 升级apt-cache depends package #了解使用依赖apt-cache rdepends package #查看该包被哪些包依赖apt-get build-dep package #安装相关的编译环境apt-get source package #下载该包的源代码apt-get clean && apt-get autoclean #清理下载文件的存档 && 只清理过时的包apt-get check #检查是否有损坏的依赖dpkg -S filename #查找filename属于哪个软件包apt-file search filename #查找filename属于哪个软件包apt-file list packagename #列出软件包的内容apt-file update #更新apt-file的数据库
dpkg -l #列出当前系统中所有的包.可以和参数less一起使用在分屏查看(类似于rpm -qa)dpkg -l |grep -i "pkg" #查看系统中与"pkg"相关联的包(类似于rpm -qa | grep pkg)dpkg -s pkg #查询一个已安装的包的详细信息(类似于rpm -qi)dpkg -L pkg #查询一个已安装的软件包释放了哪些文件(类似于rpm -ql)dpkg -S file #查询系统中某个文件属于哪个软件包(类似于rpm -qf)dpkg -c pkg.deb #查询一个未安装的deb包将会释放哪些文件(类似于rpm -qpl)dpkg -I pkg.deb #查看一个未安装的deb包的详细信息(类似于rpm -qpi)dpkg -i pkg.deb #手动安装软件包(不能解决软依赖性问题,可以用apt-get -f install解决)dpkg -r pkg #卸载软件包(不是完全的卸载,它的配置文件还存在)dpkg -P pkg #全部卸载(不能解决依赖性的问题)dpkg-reconfigure pkg #重新配置dpkg -x pkg.deb dir #将一个deb包解开至dir目录dpkg --pending --remove #移除多余的软件
强制安装一个包(忽略依赖及其它问题)
dpkg -i pkg.deb --force-all #可以参考dpkg --force-help
此外,Ubuntu还有另外一个包管理工具aptitude,以下是常见用法
aptitude update #更新可用的包列表 aptitude upgrade #升级可用的包 aptitude dist-upgrade #将系统升级到新的发行版 aptitude install pkgname #安装包 aptitude remove pkgname #删除包 aptitude purge pkgname #删除包及其配置文件 aptitude search string #搜索包(相当于yum list | grep pkg,重要)aptitude show pkgname #显示包的详细信息 (相当于yum info pkg,重要)aptitude clean #删除下载的包文件 aptitude autoclean #仅删除过期的包文件
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)
此外,如果要搜索网络上的bzip2软件包,用apt-cache search bzip2,会搜索出很多杂乱的东西,而aptitude search bzip2结果则精确的多。因为apt-cache根据全文匹配(包含描述等),而aptitude是根据文件名来匹配。
原文地址:Ubuntu的包管理方式简介(apt-get、dpkg、aptitude), 感谢原作者分享。 困难是人的教科书。