谈谈Linux下Yum的使用推荐

软件的升级是对软件功能的改进和安全性的升级,与windows系统类似,linux操作系统下也需要对软件进行定期的更新升级,保持软件始终处于最新状态。Linux操作系统的升级可以分为自动升级和手动升级两种方式:自动升级一般是在有授权的linux发行版或者免费linux发行版下进行的,只要输入升级命令,系统会自动完成升级工作,无需人工干预。yum是yellowdog updater modified 的缩写,yellow dog(黄狗)也是一个 Linux 的 发行版本,只不过Redhat公司是将这种升级技术利用到自己的发行版上就形成了现在的 yum。 yum是进行linux自动升级常用的一个工具,通过yum工具配合互联网即可实现自动升级系统。例如一台经过授权的Redhat Linux操作系统,或者一台Centos Linux系统,只要你的系统能连接互联网,输入yum update 即可实现系统的自动升级。通过yum进行系统升级实质是yum命令去下载指定的远程互联网 主机上的RPM软件包,然后自动进行安装,同时解决各个软件之间的依赖关系。手动升级是有针对性的进行某个系统软件的升级,例如升级系统的ssh登录工具、gcc编译工具等等。手动升级其实就是通过RPM包工具实现软件更新的,因此在升级软件时可能会遇到软件之间的依赖关系,升级相对比较麻烦。下面具体讲述在Centos Linux4.4下如何设置yum工具,进行系统自动升级。1.yum的安装与配置(1)yum的安装检查yum是否已经安装:[root@localhost ~]# rpm -qa|grep yum如果没有任何显示,表示系统中还没有安装yum工具,yum安装包在centos系统光盘中可以找到,执行如下指令进行安装:[root@localhost ~]# rpm -ivh yum-*.noarch.rpm安装yum需要python-elementtree、python-sqlite、urlgrabber、yumconf等软件包的支持,这些软件包在Centos Linux系统安装光盘均可找到,如果在安装yum过程中出现软件包之间的依赖性,只需按照依赖提示寻找相应软件包安装即可,直到yum包安装成功。下面是某个环境的安装示例:[root@localhost ~]# rpm -ivh yum-2.4.3-1.c4.noarch.rpm warning: yum-2.4.3-1.c4.noarch.rpm: V3 DSA signature: NOKEY, key ID 443e1821error: Failed dependencies: python-elementtree is needed by yum-2.4.3-1.c4.noarch python-sqlite is needed by yum-2.4.3-1.c4.noarch urlgrabber is needed by yum-2.4.3-1.c4.noarch yumconf is needed by yum-2.4.3-1.c4.noarch[root@localhost ~]# rpm -ivh python-elementtree-1.2.6-4.2.1.i386.rpm warning: python-elementtree-1.2.6-4.2.1.i386.rpm: V3 DSA signature: NOKEY, key ID 443e1821Preparing… ########################################### [100%] 1:python-elementtree ########################################### [100%]root@localhost ~]# rpm -ivh sqlite-3.3.3-1.2.i386.rpm warning: sqlite-3.3.3-1.2.i386.rpm: V3 DSA signature: NOKEY, key ID 443e1821Preparing… ########################################### [100%] 1:sqlite ########################################### [100%][root@localhost ~]# rpm -ivh python-sqlite-1.1.7-1.2.i386.rpm warning: python-sqlite-1.1.7-1.2.i386.rpm: V3 DSA signature: NOKEY, key ID 443e1821Preparing… ########################################### [100%] 1:python-sqlite ########################################### [100%][root@localhost ~]# rpm -ivh python-urlgrabber-2.9.8-2.noarch.rpm warning: python-urlgrabber-2.9.8-2.noarch.rpm: V3 DSA signature: NOKEY, key ID 443e1821Preparing… ########################################### [100%] 1:python-urlgrabber ########################################### [100%]root@localhost ~]# rpm -ivh centos-yumconf-4-4.5.noarch.rpm warning: centos-yumconf-4-4.5.noarch.rpm: V3 DSA signature: NOKEY, key ID 443e1821Preparing… ########################################### [100%] 1:centos-yumconf ########################################### [100%][root@localhost ~]# rpm -ivh yum-2.4.3-1.c4.noarch.rpm warning: yum-2.4.3-1.c4.noarch.rpm: V3 DSA signature: NOKEY, key ID 443e1821Preparing… ########################################### [100%] 1:yum ########################################### [100%](2)yum的配置yum工具安装完毕,接下来的工作是进行yum的配置,yum的配置文件有主配置文件/etc/yum.conf、资源库配置目录/etc/yum.repos.d,yum安装后,默认的一些资源库配置可能无法使用,因此需要进行 修改,下面是/etc/yum.repos.d/CentOS-Base.repo资源库配置文件各项的详细含义:[root@localhost ~]#/etc/yum.repos.d/CentOS-Base.repo[base]name=CentOS-4 – Base #name 就是发行版的名称,其格式表示 操作系统名和释出版本 , base 是表明此段寻找的是base包信息。

baseurl=http://mirror.centos.org/centos/4/os/$basearch/ #baseurl 表示yum在互联网上查找升级文件的URL地址。其中 $basearch 代表了系统的硬件构架如 i386 、 x86-64等,同时,yum在资源更新时,会检查baseurl/repodata/repomd.xml文件。 repomd.xml 是一个索引文件,它的作用是提供了更新rpm包文件的下载信息和SHA校验值。 repomd.xml 包括了3个文件,分别为 other.xml.gz 、 filelists.xml.gz 和 primary.xml.gz ,表示的含义依次是 其它更新包列表 、 更新文件集中列表 和 主要更新包列表 。

gpgcheck=1 #gpgcheck表示是否启用gpg检查,1表示启用,0表示不启用校验,如果启用,就是需要在配置文件里注明GPG-RPM-KEY的位置,可以看到下面gpgkey字段,指定了GPG-RPM-KEY验证文件的位置。

#released updates[update]#本段是updates更新模块要用到的部分配置。name=CentOS-4 – Updatesbaseurl=http://mirror.centos.org/centos/4/updates/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4#gpgkey指定GPG密钥的地址#packages used/produced in the build but not released#本段指定的是尚未发布的软件包部分(addons)配置[addons]name=CentOS-4 – Addonsbaseurl=http://mirror.centos.org/centos/4/addons/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#additional packages that may be useful#本段指定的是有用的额外软件包部分(extras)配置[extras]name=CentOS-4 – Extrasbaseurl=http://mirror.centos.org/centos/4/extras/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#additional packages that extend functionality of existing packages#本段指定的是扩展的额外软件包部分(centosplus)配置[centosplus]name=CentOS-4 – Plusbaseurl=http://mirror.centos.org/centos/4/centosplus/$basearch/gpgcheck=1enabled=0gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#contrib – packages by Centos Users#这里是contrib部分[contrib]name=CentOS-4 – Contribbaseurl=http://mirror.centos.org/centos/4/contrib/$basearch/gpgcheck=1enabled=0gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos42.yum的特点 安装方便,自动解决增加或删除rpm包时遇到的依赖 性问题。 可以同时配置多个资源库(Repository) 配置文件简单明了(/etc/yum.conf、/etc/yum.repos.d/CentOS-Base.repo) 保持与RPM数据库的一致性注意:yum会自动下载所有所需的升级资源包并默认放置在/var/cache/yum目录下, 当第一次使用yum或yum资源库更新 时,软件升级所需的时间可能较长。3.yum的日常用法(1)通过yum安装和删除RPM包 安装rpm包,如dhcp[root@localhost ~]#yum install dhcp 删除rpm包,包括与该包有依赖 性的包[root@localhost ~]#yum remove licq注意:同时会提示删除licq-gnome,licq-qt,licq-text(2)通过yum工具更新软件包 检查可更新的rpm包:[root@localhost ~]#yum check-update 更新所有的rpm包:[root@localhost ~]#yum update 更新指定的rpm包,如更新kernel和kernel source:[root@localhost ~]#yum update kernel kernel-source 大规模的版本升级, 与yum update不同的是, 陈旧的淘汰的包也会升级:[root@localhost ~]#yum upgrade(3)通过yum查询RPM包信息 列出资源库中所有可以安装或更新的rpm包的信息:[root@localhost ~]#yum info 列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息:[root@localhost ~]#yum info vsftpd[root@localhost ~]#yum info perl*注意:可以在rpm包名中使用匹配符, 如上面例子是列出所有以perl开头的rpm包的信息。 列出资源库中所有可以更新的rpm包的信息:[root@localhost ~]#yum info updates 列出已经安装的所有的rpm包的信息:[root@localhost ~]#yum info installed 列出已经安装的但是不包含在资源库中的rpm包的信息:[root@localhost ~]#yum info extras注:也就是 通过其它网站下载安装的rpm包的信息。 列出资源库中所有可以更新的rpm包:[root@localhost ~]#yum list updates 列出已经安装的所有rpm包:[root@localhost ~]#yum list installed 列出已经安装的但不包含在资源库中的rpm包:[root@localhost ~]#yum list extras注:也就是通过其它网站下载安装的rpm包。 列出资源库中所有可以安装或更新的rpm包:[root@localhost ~]#yum list 列出资源库中特定的可以安装或更新以及已经安装的rpm包:[root@localhost ~]#yum list sendmail[root@localhost ~]#yum list gcc*注意:可以在rpm包名中使用匹配符, 如上面例子是列出所有以gcc开头的rpm包。 搜索匹配特定字符的rpm包的详细信息:[root@localhost ~]#yum search wget注意:可以通过 search 在rpm包名, 包描述中进行搜索。 搜索包含特定文件名的rpm包:[root@localhost ~]#yum provides realplay(4)通过yum操作暂存信息(/var/cache/yum) 清除暂存的rpm包文件:[root@localhost ~]#yum clean packages 清除暂存的rpm头文件:[root@localhost ~]#yum clean headers 清除暂存中旧的rpm头文件:[root@localhost ~]#yum clean oldheaders 清除暂存中旧的rpm头文件和包文件:[root@localhost ~]#yum clean 或[root@localhost ~]#yum clean all注意: 上面的两条命令相当于yum clean packages + yum clean oldheaders。4.Redhat Linux下用yum升级系统yum也可以升级Redhat Linux系统,在Redhat Linux系统安装盘中默认没有yum的安装包,由于Redhat Linux与Centos Linux基本一致,因此可以用同版本同内核的Centos Linux的yum包在Redhat Linux上进行安装。安装过程在上面章节已经讲述,这里不在多说。由于使用的是Centos Linux的yum包在Redhat Linux下进行的安装,因此在Redhat Linux下需要增加资源库,定义yum的非官方库文件,让一些必需的软件包通过yum也能够安装。首先建立dag.repo,定义非官方库:[root@localhost ~]# vi /etc/yum.repos.d/dag.repo[dag]name=Dag RPM Repository for RHEL4baseurl=http://ftp.riken.jp/Linux/dag/redhat/el4/en/$basearch/dag/enabled=1gpgcheck=1接着导入非官方库的GPG:[root@localhost ~]# rpm –import \http://ftp.riken.jp/Linux/caos/centos/RPM-GPG-KEY-centos4注意:此步骤很重要,如果没有导入授权的RPM-GPG-KEY,在使用yum升级安装软件时就会提示软件不合法,结合上下文可以看出,在Centos下进行yum配置的时候,并没有涉及到导入RPM-GPG-KEY,那是因为连接的资源库为Centos官方的库,而升级的系统也是Centos,当然无需授权,而这里我们升级的系统是Redhat Linux,而用的资源文件是Centos的,所以必须导入Centos的RPM-GPG-KEY,系统才认为升级的包是合法的。 最后,就可以使用非官方定义的rpm包升级系统:[root@localhost ~]#yum update

偶尔,我一个人站在黄昏的荒野,

谈谈Linux下Yum的使用推荐

相关文章:

你感兴趣的文章:

标签云: