我们在Linux下用rpm工具来安装软件包总是会遇到由于软件包之间的依赖关系而无法完成安装的问题,对于linux很熟悉的人来说或许可以根据经验来判断出所依赖的软件包,但是对于一般人来说还是挺困难的,况且这样做也太麻烦。那怎么办呢?这就是我要讲的yum,它就可以很好的解决软件包之间的依赖关系,如此强大的工具让我们来认识一下吧!
推荐阅读:
RedHat 本地yum源配置 http://www.linuxidc.com/Linux/2012-11/75127.htm
RedHat Linux 本地yum源的配置 http://www.linuxidc.com/Linux/2013-08/88217.htm
RedHat 6.2 Linux修改yum源免费使用CentOS源 http://www.linuxidc.com/Linux/2013-07/87383.htm
更多RedHat相关信息见RedHat 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=10
在讲解之前呢我们先来熟悉一下yum安装、查看软件包的一些重要的用法
yum的基本用法
1、若想列出所有的软件包可以输入yum list all 命令,显示为下图所示
2、若想显示所有已经安装的,则输入yum list installed,反之则输入yum list available
3、若想查看软件包的信息,则输入yum info + 软件包名,如下图所示
4、如果用rpm工具来安装某些有依赖关系的软件包就会出现下面的情况
但是用yum安装的话就会迎刃而解
然后自下而上安装所有的软件(这里是由依赖关系而定的),提示你安装下一个
选择y,安装下一个
最后提示你要进行签名检测,导入公钥
至此完成安装,如果你不想系统提示你安装下一个软件包和导入公钥就在命令后边加上 -y就可以了
如果不想要签名检测的话也可以在命令后加上 -nogpgcheck
想卸载的话就输入yum remove + 软件包名
5、下面以KDE软件包组为例为大家讲解一下软件包组的安装过程
第一步:查看本地有没有安装KDE
第二步:安装
6、yum查看软件包组的信息,yum groupinfo + 软件包组名,如下图所示
接下来请看第二页:http://www.linuxidc.com/Linux/2013-08/88286p2.htm
Yum软件包的安装可以分为客户端服务器和本地两种模式:
一、C/S模式yum安装
客户端服务器模式就是如果有一台机器想要用yum安装软件包的话,就需要一台yum服务器提供资源来供使用。 在服务器上我们需要有几个仓库用来存储这些资源,这几个仓库有Server(大部分的软件的安装)、VT(虚拟化的安装)、Cluster(群集化的安装)和ClusterStorage(存储的安装)。除此之外我们还要在客户端有相应的配置,来告诉客户端我们要怎样访问我们的服务器、怎样获取资源。在本地我们可以利用ftp、http和nfs来进行访问,当然用什么样的协议访问就需要什么样的服务器来供访问,下面我以ftp访问为例做一下讲解。
服务器端的配置:
1、首先我们来安装ftp服务的软件
2、然后输入命令 service vsftpd start 来启动服务
3、 尝试访问ftp
访问成功后可以输入bye退出
4、在客户端我们可以直接访问/var/ftp,所以要把光盘下的所有文件拷到/var/ftp下(这个过程可能持续一段时间哟,耐心等待吧!)
客户端的配置:
1、为客户端配置一个ip,与服务器端在同一个网段内
2、修改/etc/yum.repos.d/rhel-debuginfo.repo文件
注意事项:
其中的大小写问题,比如Server的第一个s要大写、VT、Cluster和ClusterStorage的书写
3、查看本地识别的仓库
安装新添加到ftp服务器的软件
第一步:我们把软件包名分别为rrdtool、rrdtool-perl的两个软件包拷到ftp服务器上
第二步:在客户端查看有没有这两个软件包
经查看没有这两个软件包,这是怎么回事呢?下面我们来了解一下客户端是怎样从服务器端获得缓存文件的。
(1)首先我们到服务器端查看一些文件来供我们了解,到/var/ftp目录下,查看文件我们可以看到Server、VT等几个库
(2)我们再到相应的库下边查看名为repodata的目录,并分别查看其中的文件
其实客户端查看有哪些软件包就是基于repodata这个目录下的文件,当我们新添加到ftp时,这些文件并没有更新,这就是我们为什么查看不到的原因。
(3)正如我们前面提到的一样,我们在到客户端查看仓库的时候,我们看到过缓存文件,但是当我们试图清除缓存查看客户端所有软件包时也许会遇到这样的情况,如下图所示
提示我们yum处于锁定状态,这时候我们需要执行rm -rf /var/run/yum.pid 来强行解除锁定,然后你的yum就可以运行了
(4)下面我们应该做的就是去服务器端进行一下更新,需要执行create-repo这个命令,不过执行这个命令前还需要我们安装一个名为createrepo的软件包,下面我们到/var/ftp/Server目录下来安装该软件包并执行命令
第三步:我们再回到客户端上先执行yum clean all命令清除缓存之后安装这两个软件包
至此yum的C/S模式安装软件包结束,这里需要指出的是尽管C/S模式是基于网络的,不过考虑到安装的速度的话还是局域网比较实用,因为利用因特网上的yum服务器的话速度会慢好多
二、本地yum安装软件包
本地yum和客户端服务器端yum的区别就是它的客户端和服务器都在一台机器上,利用本地的资源来安装软件包,下面我们来了解一下其实现过程。
1、先挂载光盘
2、修改配置文件
再增加一个参数 -i 来执行修改(注意参数顺序哟)
3、清除本地缓存并查看所有软件
至此本地yum配置完成,在C/S模式下的各种操作都可以在本地yum中来实现