Ubuntu 下软件包管理命令详解

Ubuntu采用 Debian 的软件包管理器 dpkg 来管理软件包,所有 packages 的信息都在 /var/lib/dpkg/目录下, 其子目录 /var/lib/dpkg/info 保存了各个软件包的配置文件列表:
conffiles 记录了软件包的配置文件列表
list 保存软件包中的文件列表, 用户可以从 .list 的信息中找到软件包中文件的具体安装位置.
md5sums 记录了软件包的md5信息, 这个信息是用来进行包验证的.
prerm 脚本在 Debian 包解包之前运行, 主要作用是停止作用于即将升级的软件包的服务, 直到软件包安装或升级完成.
postinst 脚本是完成 Debian 包解开之后的配置工作, 通常用于执行所安装软件包相关命令和服务重新启动.

/var/lib/dpkg/available 包含了软件包的描述信息, 包括当前系统正在使用的 Debian 的软件包以及已安装和未安装的软件包.
/var/cache/apt/archives 目录是在使用 apt-get install 安装软件时软件包的临时存放路径
/etc/apt/sources.list 存放的是软件源站点信息, 在执行 sudo apt-get install packagename 时,Ubuntu 就去这些站点下载软件包并安装。

相关命令介绍:
1、查看某软件包的安装内容
dpkg -L packagename

2、查找软件库中的软件包
apt-cache search 正则表达式

3、显示系统安装包的统计信息
apt-cache stats

4、显示系统全部可用软件包的名称
apt-cache pkgnames

5、显示某软件包的详细信息
apt-cache show packagename

6、查找某文件属于哪个包
apt-file search packagename

7、查看已经安装了哪些软件包
dpkg -l

8、查询某软件依赖哪些软件包
apt-cache depends packagename

9、查询某软件被哪些软件包依赖
apt-cache rdepends packagename

10、增加一个光盘源
sudo apt-cdrom add
当安装更新软件包时让其优先从Ubuntu 光盘上找,在不能上网时非常有用

11、系统升级
sudo apt-get update

12、清理已删除软件的残余配置信息
dpkg -l | grep “^rc” | awk ‘{print $2}’ | sudo xargs dpkg -P

13、编译时缺少 .h文件的自动处理
sudo auto-apt run ./configure

14、查看安装软件时下载软件包的临时存放目录
ls /var/cache/apt/archives

15、备份当前系统安装的所有软件包的列表
dpkg –get-selections | grep -v deinstall > ~/somefile

16、从上面备份的安装包的列表文件恢复所有包
dpkg –set-selections < ~/somefile sudo dselect 17、清理旧版本的软件缓存 sudo apt-get autoclean 18、清理所有软件缓存 sudo apt-get clean 19、删除系统不再使用的孤立软件 sudo apt-get autoremove 20、查看软件包在服务器上面的地址 apt-get -qq --print-uris install ssh | cut -d\' -f2 其他命令:

apt-cache search package      搜索包
apt-cache show package        获取包的相关信息,如说明、大小、版本等
apt-get install package       安装包
apt-get install –reinstall package     重新安装包
apt-get -f install            强制安装, “-f = –fix-missing”当是修复安装吧
apt-get remove package        删除包
apt-get remove –purge package    删除包,包括删除配置文件等
apt-get autoremove –purge package   删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐)
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 –info “软件包名”        列出软件包解包后的包名称
dpkg -l                      列出当前系统中所有的包.可以和参数less一起使用在分屏查看. (类似于rpm -qa) 
dpkg -l |grep -i “软件包名”   查看系统中与”软件包名”相关联的包. 
dpkg -s                      查询已安装的包的详细信息. 
dpkg -L                      查询系统中已安装的软件包所安装的位置. (类似于rpm -ql) 
dpkg -S                      查询系统中某个文件属于哪个软件包. (类似于rpm -qf)
dpkg -I                      查询deb包的详细信息,在一个软件包下载到本地之后看看用不用安装(看一下呗)
dpkg -i                      手动安装软件包(这个命令并不能解决软件包之前的依赖性问题)
                             如果在安装某一个软件包的时候遇到了软件依赖的问题
                             可以用apt-get -f install在解决信赖性这个问题
dpkg -r                      卸载软件包.不是完全的卸载,它的配置文件还存在
dpkg -P                      全部卸载(但是还是不能解决软件包的依赖性的问题)
dpkg -reconfigure            重新配置 

Post a Comment

Your email is never shared. Required fields are marked *

*
*