一. 包管理基础
软件包存储在服务器上,可以利用本地Linux系统上的PMS工具通过互联网访问。这些服务器称为仓库(repository)。
基于Debian的发行版(如Ubuntu和Linux Mint)使用的是dpkg命令,这些发行版的PMS工具也是以该命令为基础的。dpkg会直接和Linux系统上的PMS交互,用来安装、管理和删除软件包。
基于Red Hat的发行版(如Fedora、openSUSE及Mandriva)使用的是rpm命令,该命令是其PMS的底层基础。类似于dpkg命令,rmp命令能够列出已安装包、安装新包和删除已有软件。
二. 基于Red Hat的系统
-
red hat系统可用(基于rpm命令行工具)的前端工具常见的有以下几种。
1)yum:在Red Hat和Fedora中使用。
2)urpm:在Mandriva中使用
3)zypper:在openSUSE中使用 -
yum的使用.
列出软件包:
1)yum list installed //查看系统已安装的包
2)yum list installed > installed_software(文件名) //将已安装的软件包列表重定向到一个文件中
3) yum list xterm(包名) //查看软件包的详细信息
4)yum list installed xterm(包名) //查看包是否安装
5)yum provides /etc/yum.conf(文件名) //查找系统某个文件属于哪个软件包安装软件包:
6)yum install xterm(包名) //安装软件
7)yum localinstall package_name.rpm(包文件) //本地安装(本地安装就是无网络安装,安装包已经使用某种方式下载本地)更新软件:
8)yum list updates //列出需要更新的软件
9)yum update package_name(包名) //指定更新某个软件包
10)yum update //对更新列表中所有包进行更新卸载软件:
11)yum remove package_name(包名) //删除软件包保留数据和配置文件
12)yum erase package_name(包名) //删除软件包和所有文件处理损坏的包依赖关系:
13)yum clean all //清理yum缓存
14)yum deplist package_name //查看指定包的依赖关系
15)yum update --skip-broken //忽略依赖关系yum软件仓库:
16)yum repolist //查看正在从哪些仓库中获取软件 -
urpm和zypper的使用
1)列出已安装的包:
urpm: rpm -qa > installed_software
zypper :zypper search -I > installed_software2)查看各种包详细信息:
urpm: urpmq -i package_name(包名) //包信息
urpm: rpm -q package_name(包名) //是否安装
zypper: zypper search -s package_name(包名) //包信息
zypper: zypper search -s package_name(包名) //包信息(同样的命令,注意在Status列查找i)3)安装软件:
urpm: urpmi package_name zypper: zypper install package_name4)卸载软件:
urpm :urpme package_name (包名)
zypper :zypper remove package_name(包名)5)修复损坏的依赖关系:
urpm: urpmi –clean
Zipper :zypper verify6)zypper和urpm的库:
urpm urpmq --list-media //显示仓库
urpm urpmi.addmedia path_name //添加仓库
zypper zypper repos //显示仓库
zypper zypper addrepo path_name //添加仓库 -
RPM常用参数
rpm -ivh // 安装 rpm 软件包 ( -i 表示安装,v 表示显示安装过程,h 表示显示进度)
rpm -Uvh package_name //升级 rpm 软件包 ( -U 表示升级 rpm 软件包)
rpm -qa package_name //查找指定的软件包
rpm -qpl package_name //列出 rpm软件包内的文件信息
rpm -qpi package_name //列出 rpm 软件包的描述信息
rpm -qf package_name //查找指定文件属于哪个 rpm 软件包
rpm -Va //效验所有的rpm 软件包,查找丢失的文件
rpm -qa | sort | more //将 rpm 的输出通过管道传给 sort 命令,然后再将 sort 的输出通过管道传给 more(分页查看)来显示
三. 基于Debian的系统
-
dpkg命令是基于Debian系PMS工具的核心。包含在这个PMS中的其他工具有:
apt-get
apt-cache
aptitude
最常用的命令行工具是aptitude,aptitude工具本质上是apt工具和dpkg的前端。dpkg是软件包管理系统工具,而aptitude则是完整的软件包管理系统。
命令行下使用aptitude命令有助于避免常见的软件安装问题,如软件依赖关系缺失、系统环境不稳定及其他一些不必要的麻烦。 -
查看系统中安装哪些包。
确定系统上已经安装了什么软件包,如果使用的Linux发行版中已经安装了aptitude,只需要在shell提示符键入aptitude并按下回车键就行了。紧接着就会进入aptitude的全屏模式
选择菜单选项Installed Packages来查看已安装了什么软件包。你可以看到几组软件包,每组后面的括号里都有个数字,表示这个组包含多少个软件包。 -
查看详细信息
aptitude show package_name(包名)
dpkg -L package_name (包名)//查看所有跟某个特定软件包相关的所有文件的列表。 -
用 aptitude 安装软件包
aptitude search package_name(包名) //查找软件包
aptitude install package_name(包名) //安装软件包
注:要检查安装过程是否正常,只要再次使用search选项就可以了。这次你应该可以看到在wine软件包出现了i u ,这说明它已经安装好了。(如果看到一个i,说明这个包现在已经安装到了你的系统上了,如果看到一个p或v,说明这个包可用,但还没安装) -
用 aptitude 更新软件
aptitude safe-upgrade //将所有已安装的包更新到软件仓库中的最新版本
(aptitude full-upgrade ,aptitude dist-upgrade)//它们不会检查包与包之间的依赖关系。整个包依赖关系问题非常麻烦。如果不是很确定各种包的依赖关系,那还是坚持用safe-upgrade选项吧。 -
用 aptitude 卸载软件
aptitude remove package_name(包名) //只删除软件包而不删除数据和配置文件
aptitude purge package_name(包名)//删除软件包和相关的数据和配置文件 -
aptitude 仓库
aptitude默认的软件仓库位置是在安装Linux发行版时设置的。具体位置存储在文件/etc/apt/sources. list中。
下面是ubuntu系统中sources.list文件的例子
使用下面的结构来指定仓库源。
deb (or deb-src) address distribution_name package_type_list
deb或deb-src的值表明了软件包的类型。deb值说明这是一个已编译程序源,而deb-src
值则说明这是一个源代码的源。address条目是软件仓库的Web地址。
distribution_name条目是这个特定软件仓库的发行版版本的名称。在这个例子中,发行版名称是trusty。这未必就是说你使用的发行版就是Ubuntu Trusty Tahr,它只是说明这个Linux发行版正在用Ubuntu Trusty Tahr软件仓库!举个例子,在Linux Mint的sources.list文件中,你能看到混用了Linux Mint和Ubuntu的软件仓库。
package_type_list条目可能并不止一个词,它还表明仓库里面有什么类型的包。你可以看到诸如main、restricted、universe和partner这样的值。当需要给你的source_list文件添加软件仓库时,你可以自己发挥,但一般会带来问题。通常软件仓库网站或各种包开发人员网站上都会有一行文本,你可以直接复制,然后粘贴到sources.list文件中。最好选择较安全的途径并且只复制/粘贴。aptitude前端界面提供了智能命令行选项来配合基于Debian的dpkg工具。现在是时候了解基于Red Hat的发行版的rpm工具和它的各种前端界面了