分类: LINUX
2008-05-04 22:40:41
yum(yellowdog updater modified)的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux用户头痛的dependencies的问题。
yum通过一个或者多个配置文件描述对应的repository的网络地址,通过http或者ftp协议在需要的时候从repository获得必要的信息,下载相关的软件包。这样,本地用户通过建立不同的repository的描述说明,在有网络连接时就能方便进行系统的升级维护工作。
repository可以使用createrepo命令创建,也可以用网络中已有的repository镜像,下面我们介绍如何建立一个repository(以httpd为例).
1、创建要存放RPM包的目录
#mkdir /data && mkdir /data/RPMS
2、将每张安装光盘上的GTES目录下所有的RPM包以及其他新的软件包复制到/data/RPMS目录下,如果您只想管理部分RPM包也可以只将需要的包复制到此目录:
#cp *.rpm /data/RPMS
3、将第一张安装光盘GTES/repodata/comps.xml文件复制到/data/下,然后执行createrepo命令:
#createrepo –v –p –g /data/comps.xml –o /data/RPMS /data/RPMS
该操作会创建/data/RPMS/repodata目录,并在其中生成有关/data/RPMS目录中rpm包的信息文件。类似下面的结果:
#ls –l /data/RPMS/repodata -rw-r--r-- 1 root root 895280 04-24 14:24 comps.xml -rw-r--r-- 1 root root 2050016 04-24 14:24 filelists.xml.gz -rw-r--r-- 1 root root 113566 04-24 14:24 other.xml.gz -rw-r--r-- 1 root root 750514 04-24 14:24 primary.xml.gz -rw-r--r-- 1 root root 1140 04-24 14:24 repomd.xml
4、编辑/etc/httpd/conf/httpd.conf
DocumentRoot “/var/www/html” 改为 DocumentRoot “/data”
然后在文件最后添加下列几行:
Options FollowSymLinks Indexes Includes AllowOverride None
5、重新启动httpd
#/etc/init.d/httpd restart
1、编辑/etc/yum.conf
[main] cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log pkgpolicy=newest distroverpkg=turbolinux-release tolerant=1 exactarch=1 obsoletes=1 gpgcheck=1 ==>只需要将此处改为0,即不检查GPG签名。 plugins=1 metadata_expire=1800 # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d
2、重新启动yum-updatesd
/etc/init.d/yum-updatesd restart
要使用yum功能,我们仅仅需要配置一个yum客户端。如下:
1、编辑/etc/yum.conf
[main] cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log pkgpolicy=newest distroverpkg=turbolinux-release tolerant=1 exactarch=1 obsoletes=1 gpgcheck=1 ==>只需要将此处改为0,即不检查GPG签名。 plugins=1 metadata_expire=1800 # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d
2、编辑/etc/yum.conf或者在/etc/yum.repos.d/下新建以.repo为后缀的文件(如:gtes11.repo),在文件最后加入下列几行:
[repositoryid] name = gtes11 packages updates baseurl = or yourwebserverip/RPMS 如果repository在您本地系统上,也可以用下面的方式: baseurl = file:///data/RPMS/
当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长。
下面我们介绍一下yum一些常用命令:
列出资源库中所有可以安装或更新的rpm包
#yum list
列出资源库中特定的可以安装或更新以及已经安装的rpm包
#yum list mozilla
可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包
#yum list mozilla*
搜索rpm包
#yum search mozilla
安装rpm包,同时自动安装其所依赖的软件包
#yum install mozilla
删除rpm包,同时删除倚赖于该包所有的软件包
#yum remove mozilla
检查有哪些可更新的rpm包
#yum check-update
更新指定的rpm包
#yum update mozilla
更新软件包(更新所有可以升级的rpm包,包括kernel)
#yum -y update
大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
#yum upgrade
yum缓存(/var/cache/yum/)的相关参数
清除缓存中rpm包文件
#yum clean packages
清除缓存中rpm头文件
#yum clean headers
清除缓存中旧的rpm头文件
#yum clean oldheaders
清除缓存中旧的rpm头文件和包文件
#yum clean 或#yum clean all (相当于yum clean packages + yum clean oldheaders)
注意:在您正确配置了repository及yum客户端后,使用yum时,如果报“” 这样的错误,很可能是您客户端yum缓存造成的。执行yum clean all后,基本上就可以解决。
1、添加/删除软件包工具
Turbolinux提供了基于yum的图形化软件包添加/删除工具,选择“应用程序→系统工具→添加/删除软件”。如图1、图2:
图1
图2
浏览 查看您系统上当前已安装的软件包组的情况。 搜索 查找某个软件包 列表 [所有软件包] 是您系统当前已安装的包和可用的包的总 [已安装的软件包] 是您系统当前已安装的软件包 [可用的软件包] 是您当前系统上没有安装和已删除的软件包 注意:在您添加所选的包的同时,此工具会同时添加它所依赖的包;删除所选的包的同时,会删除依赖此包的一些包。
2、更新软件包工具
Turbolinux 还提供了一个图形化的软件更新的工具,选择”应用程序→系统工具→软件包更新工具”。如图3、图4
图3
图4
如果您的repository有新的软件包,此工具会为您找到,点击[应用更新]即可更新此包。