[root@localhost ~]# ls /var/ftp/ pub rhel5 rhel6 [root@localhost ~]# YUM仓库有两个rhel5、rhel6
YUM客户端的配置如下:
[root@s2 ~]# cat /etc/yum.conf [main] cachedir=/var/cache/yum keepcache=0
debuglevel=2 logfile=/var/log/yum.log pkgpolicy=newest distroverpkg=redhat-release tolerant=1 exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 metadata_expire=1800
# PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d
[root@s2 ~]# cat /etc/yum.repos.d/rhel.repo [rhel] name=Red Hat baseurl=ftp://192.168.1.29/rhel5 enabled=1 gpgcheck=0
1.使用 yum 缓存
默认情况下,yum客户端在成功下载和安装软包后会把下载的文件删掉而不进行缓存。这样可以减少磁盘空间的占用。需要时可以启用缓存功能,这样yum可以将rpm数据缓存到YUM的缓存目录中。
缓存的好处:提高YUM的性能;可以离线运行YUM操作,只使用缓存;也可以复制缓存中的软件包以备用。
存放下载的软件包、仓库信息等数据
2. 启用 yum 缓存 客户端的/etc/yum.conf中的keepcache=1
打开缓存后,每个 yum
操作都可从仓库下载软件包数据。要保证缓存包含了软件包数据,在启用缓存后需要运行一个操作,例如 list
或 search
来下载软件包数据而不影响系统。
修改keepcache=1后:
[root@s2 ~]# ls /var/cache/yum/ [root@s2 ~]# [root@s2 ~]# yum -y install httpd …… [root@s2 ~]# ls /var/cache/yum/ rhel [root@s2 ~]# ls /var/cache/yum/rhel/ cachecookie headers packages primary.xml.gz primary.xml.gz.sqlite repomd.xml [root@s2 ~]# ls /var/cache/yum/rhel/packages/ httpd-2.2.3-6.el5.i386.rpm [root@s2 ~]# [root@s2 ~]# ls /var/cache/yum/rhel/headers/ httpd-2.2.3-6.el5.i386.hdr[root@s2 ~]# du -sh /var/cache/yum/rhel/packages/httpd-2.2.3-6.el5.i386.rpm 1.1M /var/cache/yum/rhel/packages/httpd-2.2.3-6.el5.i386.rpm
3.在只使用缓存的模式下使用 yum
要在没有网络的情况下执行 yum
,只要启用了缓存,就可以用 -C
选项。这样 yum
就不会检查网络上的仓库,只使用缓存。在这个模式中,yum
只能安装已下载并缓存的软件包。[root@localhost ~]# service vsftpd stop Shutting down vsftpd: [ OK ] [root@localhost ~]#
因为客户端缓存的有httpd的rpm包,所以[root@s2 ~]# yum -y remove httpd可以执行成功。缓存中没有dhcp的rpm包,所以[root@s2 ~]# yum -y install dhcp这条命令不能正确执行。