Debian和Ubuntu系统的软件包管理工具
Debian和Ubuntu系统的软件包管理工具主要包括: dpkg、apt-get和aptitude。本文将介绍这三种工具的使用方法
及其区别。
1、dpkg的使用方法
dpkg是一个Debian的一个命令行工具,它可以用来安装、删除、构建和管理Debian的软件包。下面是它的一些命令的使用方法及解释:
(1) 安装软件
用法: dpkg -i <.deb file name>
示例:dpkg -i sogoupinyin_2.0.0.0078_amd64.deb
(2) 安装一个目录下面所有的软件包
用法:dpkg -R
示例:dpkg -R /usr/local/src
(3) 释放软件包,但是不进行配置
用法:dpkg –unpack package_file 如果和-R一起使用,参数可以是一个目录
示例:dpkg –unpack sogoupinyin_2.0.0.0078_amd64.deb
(4) 重新配置和释放软件包
用法:dpkg –configure package_file
如果和-a一起使用,将配置所有没有配置的软件包
示例:dpkg –configure sogoupinyin_2.0.0.0078_amd64.deb
(5) 删除软件包(保留其配置信息)
用法:dpkg -r
示例:dpkg -r sogoupinyin
(6) 替代软件包的信息
用法:dpkg –update-avail <Packages-file>
(7) 合并软件包信息
用法: dpkg –merge-avail <Packages-file>
(8) 从软件包里面读取软件的信息
用法:dpkg -A package_file
(9) 删除一个包(包括配置信息)
用法:dpkg -P
(10) 丢失所有的Uninstall的软件包信息
用法:dpkg –forget-old-unavail
(11) 删除软件包的Avaliable信息
用法:dpkg –clear-avail
(12) 查找只有部分安装的软件包信息
用法:dpkg -C
(13) 比较同一个包的不同版本之间的差别
用法:dpkg –compare-versions ver1 op ver2
(14) 显示帮助信息
用法:dpkg –help
(15) 显示dpkg的Licence
用法:dpkg –licence (or) dpkg –license
(16) 显示dpkg的版本号
用法:dpkg –version
(17) 建立一个deb文件
用法:dpkg -b direc×y [filename]
(18) 显示一个Deb文件的目录
用法:dpkg -c filename
(19) 显示一个Deb的说明
用法:dpkg -I filename [control-file]
(20) 搜索Deb包
用法:dpkg -l package-name-pattern
示例:dpkg -I vim
(21) 显示所有已经安装的deb包,同时显示版本号以及简短说明
用法:dpkg -l
(22) 报告指定包的状态信息
用法:dpkg -s package-name
示例:dpkg -s ssh
(23) 显示一个包安装到系统里面的文件目录信息
用法:dpkg -L package-Name
示例:dpkg -L apache2
(24) 搜索指定包里面的文件(模糊查询)
用法:dpkg -S filename-search-pattern
(25) 显示包的具体信息
用法:dpkg -p package-name
示例:dpkg -p cacti
(26) 有些软件很难卸载,而且还阻止了别的软件应用,就需要使用如下命令
用法: dpkg --force-all --purge packagename
示例: dpkg --force-all --purge xinetd
(27) 常见的问题:
a. 安装Ubuntu或者Debian以后,想要知道软件安装到具体的路径,可以使用 dpkg -L 命令来查看。
b. 如果想暂时删除程序以后再安装,可以使用 dpkg -r 命令
2、apt-get 的使用方法
apt-get 是一条linux命令,适用于deb包管理式的操作系统;主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。它的基本使用方法如下:
(1) 获得最近的软件包的列表,列表中包含一些包的信息,比如这个包是否更新过
用法: apt-get update
(2) 将系统升级到新版本
用法: apt-get -u upgrade 或 apt-get dist-upgrade
说明: 由于包与包之间存在各种依赖关系,upgrade 只是简单的更新包,不管这些依赖,它不会添加包或是删除包;而 dist-upgrade 可以根据依赖关系的变化,添加包,删除包。一般在运行 upgrade 或 dist-upgrade 之前,要运行 update。
(3) 安装软件包
用法: apt-get install packagename
示例: apt-get install mdadm
(4) 卸载一个已安装的软件包(保留配置文档)
用法: apt-get remove packagename
示例:apt-get remove sqlite3
(5) 卸载一个已安装的软件包(删除配置文档)
用法: apt-get remove --purge packagename
示例: apt-get remove --purge samba
(6) 删除包及其依赖的软件包
用法: apt-get autoremove packagename
示例: apt-get autoremove openssh-server
(7) 删除包及其依赖的软件包和配置文件,比上面的要删除的彻底一点
用法: apt-get autoremove --purge packagname
示例: apt-get autoremove --purge xinetd
(8) 清除那些已卸载的软件包的.deb文档
用法: apt-get autoclean
说明:
a. 通过这种方式,您能够释放大量的磁盘空间。
b. 假如您的需求十分迫切,能够使用apt-get clean以释放更多空间,apt-get clean 这个命令会将已安装软件包裹的.deb文档一并删除。
3、aptitude 的使用方法
aptitude是Debian GNU/Linux系统中,非常神奇的的软件包管理器,基于大名鼎鼎的APT机制,整合了dselect和apt-get的所有功能,并提供的更多特性,特别是在依赖关系处理上。
aptitude与apt-get一样,是Debian及其衍生系统中功能极其强大的包管理工具。与apt-get不同的是aptitude在处理依赖问题上更佳一些。
举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包,这样系统中不会残留无用的包,整个系统更为干净。
aptitude常用的使用方法如下:
(1) 更新可用的包列表
用法: aptitude update
(2) 升级可用的包
用法: aptitude upgrade
(3) 将系统升级到新的发行版
用法: aptitude dist-upgrade
(4) 安装软件包
用法: aptitude install pkgname
示例: aptitude install php5 php5-gd php5-curl php5-sqlite php5-mysql
(5) 删除软件安装包
用法: aptitude remove pkgname
示例: aptitude remove php5
(6) 删除软件包及其配置文件
用法: aptitude purge pkgname
示例: aptitude purge gcc
(7) 搜索软件包
用法: aptitude search string
示例: aptitude search samba
(8) 显示包的详细信息
用法: aptitude show pkgname
示例: aptitude show vsftpd
(9) 删除下载的包文件
用法: aptitude clean
(10) 仅删除过期的包文件
用法: aptitude autoclean
4、三种工具的区别
(1) dpkg绕过apt包管理数据库对软件包进行操作,因此当你用dpkg安装过的软件包,然后再使用apt也可以再安装一遍,系统不知道之前安装过了,将会覆盖之前dpkg的安装。
(2) dpkg主要是用来安装.deb文件,但不会解决模块(软件包)的依赖关系,且不会关心系统中软件仓库内的软件(包),可以用于安装本地的deb文件。
(3) apt会解决和安装模块的依赖问题,并会咨询软件仓库,但不会安装本地的deb文件,apt是建立在dpkg之上的软件管理工具。
(4) aptitude与apt-get一样,是Debian及其衍生系统中具有极其强大的包管理工具,与apt-get不同的是aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样系统中不会残留无用的包,整个系统更为干净。