YUM
yum的前身是yup(yellow dog updater, yellow dog linux 的软件更新器),借助yum软件仓库,可以完成安装、卸载、自动升级等任务,能够自动查找并解决人品吗包之间的依赖关系而无需管理员手动配置。
要成功的使用yum机制来更新系统软件,需要有一个包含有各种rpm安装包文件的软件仓库,提供软件服务器成为“源”服务器。
yum软件仓库通常借助于HTTP或FTP协议来进行发布,这样可以面向网络中的所有客户端提供软件源服务。
下面我们通过拓扑实验来了解yum服务的运作原理:
在本地创建一个存放YUM源的目录,如mkdir /yum
将RHEL6光盘中的所有内容拷贝到/yum中
#mount /dev/cdrom /media
#cp -rf /media/* /yum
在/etc/yum.repos.d目录下创建一个以.repo结尾的文件:
配置内容参照光盘源的YUM,此处略过
清理YUM缓存
yum clean all
验证本地YUM安装包
B):网络YUM(通过FTP或HTTP协议方式实现网络YUM安装RPM包)
在Linux主机中使用YUM客户端工具在线升级、安装软件时,由于受到网络连接速度、网络带宽的限制,往往给用户安装带来不必要的麻烦。但是如果在局域网中构建一个基于本地的YUM源服务器,则可以大大解决用户安装软件速度较慢的问题
通过FTP方式:(方式1:硬盘源)
实现步骤:
YUM服务器端配置:
将RHEL6光盘中的所有内容复制到本地硬盘相关目录下,如/var/ftp/rhel6
推荐步骤:
安装vsftpd服务软件包
#mkdir /var/ftp/rhel6
#mount /dev/cdrom /media
#cp /media/* /var/ftp/rhel6
启动vsftpd服务:
service vsftpd start
chkconfig vsftpd on
在另一台客户端测试,首先创建repo文件指定YUM源位置
vi /etc/yum.repos.d/server.repo,注意文件的扩展名要以repo结尾,文件内容如下
[Server]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/rhel6/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[HighAvailability]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/rhel6/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[LoadBalancer]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/rhel6/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ResilientStorage]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/rhel6/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
验证:在客户端上安装RPM包,如samba
若YUM服务器开启了selinux功能,客户端通过YUM安装会失败
解决方法1:关闭selinux功能setenforce 0
方法2:setsebool allow_ftpd_full_access on
若YUM服务器开启了防火墙,客户端通过YUM安装会失败
解决方法1:关闭iptables
方法2:在INPUT规则链上创建允许FTP访问的规则。
通过FTP方式:(方式2:光盘源)
YUM服务器端配置:(IP:192.168.0.2)
先将RHEL6系统光盘挂载到/var/ftp/pub目录下
确保vsftpd服务启动
YUM客户端配置:(IP:192.168.0.1)
在/etc/yum.repos/目录下创建一个以.repo为后缀的文件,内容如下:
[Server]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/pub/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[HighAvailability]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/pub/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[LoadBalancer]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/pub/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ResilientStorage]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.0.2/pub/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
在客户端上测试
2、通过HTTPD方式:与ftp方式类似
(略)
对于用户搜集的非RHEL6光盘的更多其他软件包(必须包括存在依赖关系的所有安装文件)除了应准备相应的目录以外,还需要手动创建repodata数据文件,这就要用到createrepo工具(RHEL6光盘中有)
以RHEL6安装光盘中Packages/目录的RPM包为例:
安装createrepo工具:
createrepoa主要用于收集目录中的rpm包文件的头信息,以创建repodata软件仓库数据(经gzip压缩的xml文件)。
mount /dev/cdrom /mnt //挂载光盘
rpm �Civh /mnt/Packages/createrepo-0.9.8-4.el6.noarch.rpm
注意:安装createrepo包时要依赖以下两个包:deltarpm和python-deltarpm,不能忽略这两个包
安装FTP服务器:
rpm -ivh /mnt/Packages/vsftpd-2……..(按TAB键自动补齐)
配置软件仓库目录:
可参考安装光盘的Server目录
mkdir /var/ftp/pub/Packages
mkdir /var/ftp/pub/repodata
从光盘把所有的RPM包复制到/var/ftp/pub/Packages目录下(要确保硬盘有足够的磁盘空间)
cp - a /mnt/Packages/* /var/ftp/pub/Packages/
创建软件仓库信息文件:
cd /var/ftp/pub/
createrepo --database ./
[root@server pub]# ls repodata/
filelists.sqlite.bz2 other.sqlite.bz2 primary.sqlite.bz2 repomd.xml
filelists.xml.gz other.xml.gz primary.xml.gz
可以看到已经创建好了相应的软件仓库信息文件
在客户端上创建扩展名为.repo的文件,内容参考上面的有产设置。