####不废话,直接进入主题####


由于国内主流还是 Redhat系列的操作系统,所以只针对此类系统进行软件包工具的说明


redhat系统常见的软件包工具有

yum :在Redhat和Fedora中试用

urpm :在Mandriva中使用

zypper :在openSUSE中使用

在接下来的说明中本文重点只说yum工具方面


列出已经安装的软件包

yum list installd >installed_software.txt

rpm -qa >installed_software.txt

zypper search -I >installed_software.txt


查看软件包的详细信息(例如软件包为tree)

urpm -i tree

rpm -q tree

zypper search -s tree


如果需要找出什么软件包提供了系统上的某个服务,也可以用万能的yum工具

yum provides /etc/yum.conf

spacer.gif


用yum安装软件

工作中最常用的包管理工具,也是最简单实用高效的工具

比如:yum install tree


也可以手动下载rpm安装文件,并用yum安装:

比如:yum localinstall tree.rpm


简单介绍urpm 和 zypper执行包安装,不惜在root用户下

urpmi tree

zypper install tree


用yum更新软件

列出已安装包的更新列表

yum list updates

如果上条命令没有任何输出结果就表示不需要任何的更新操作


更新某一个包

yum update tree


更新所有列表中的软件包

yum update


在Mandriva 和openSUSE中用一下命令更新软件包

在使用urpm时,软件数据库会自动更新,软件包也会更新

urpmi --auto-update --update

zypper update


使用yum卸载软件

只删除软件包,但保留配置文件和数据文件

yum remove tree


删除软件和它所有的文件用erase选项

yum erase tree


在urpm 和zypper中也一样

urpme tree

zypeer remove tree


处理损坏的包依赖关系

在安装多个软件时,某个包的软件依赖关系可能会被其他软件的安装覆盖,这就是损坏了包的依赖关系,这个时候我们可以试着使用下面的这个命令

yum clean all

然后再使用yum update选项。有时,只要清理了放错位置的文件就行了。


如果上述还不能解决可以用下面的命令

yum deplist tree

这个命令显示了所有包的库依赖关系及什么软件可以提供这些库的依赖关系。一旦你知道了某个包需要的库,就能安装他们了。下面是一个判断xterm包依赖关系的例子:

spacer.gif


如果还是没有解决,还可以使用yum最后一个工具

yum update --skip-broken

--skip-broken选项,允许忽略依赖关系损坏的包而更新其他软件包。这可能没法处理损坏的包,但是可以更新系统上的其他包了。


urpm 和 zypper处理软件包依赖问题

urpm -clean

zypper verify

再用urpm时,如果-clean不工作时,可以跳过问题报的更新,前提是必须将问题报的名字添加到文件/etc/urpmi/skip.list中。


注:损坏依赖关系这个问题,在实际工作中还没遇到过,但是在生产环境中,各种操作都必须遵循一定的规则,既能保证系统的稳定运行,又能保证不会出现上述的情况和错误。


yum软件库

显示现在正在从什么库中获取软件

yum repolist

spacer.gif

本人已经将CentOS原有的yum源更改为国内的aliyun源。

yum库定义文件位于 /etc/yum.repos.d


使用urpm 和zypper的库

urpm显示库 urpm --list-media

urpm添加库   urpmi .addmedia path_name

zypper显示库 zypper repos

zypper添加库 zypper addrepo path_name


源码安装所依赖的包工具

yum install -y sysstat

在源码安装中,需先解压tar包,然后configure 和make命令从源码中构建出最终的可执行程序。



-------------------------------------------------------------------------------------------------


本人实际工作中首选yum安装,yum既方便快捷,更能很好的解决包之间的依赖问题,除了特定的环境需要源码安装才进行源码安装。