YUM存储仓库服务
本实验以IP地址为192.168.1.110/24的IP进行搭建YUM服务器
一.准备网络安装源(服务器端)
1.准备软件仓库目录
[root@localhost ~]# mkidr -p /var/ftp/rhel6
[root@localhost ~]# mount /dev/cdrom /media/ (挂载光盘)
[root@localhost ~]# cp -rf /media/* /var/ftp/rhel6/
还要手动创建repodata数据文件(用到createrepo工具)
[root@localhost ~]# cd /media/Packages/
[root@localhost Packages]# rpm -ivh createrepo-0.9.8-4.el6.noarch.rpm
例如,若已将需作为源发布其他的RPM安装包文件存放到/var/ftp/other/ 可执行一下步骤为其创建repodata数据。(仓库数据)
[root@localhost ~]# mkdir -p /var/ftp/other
[root@localhost ~]# cd /var/ftp/other/
[root@localhost other]# createrepo -g /media/repodata/repomd.xml ./
Saving Primary metadata
Saving file lists metadata
Saving other metadata
2.安装并启动vsftpd服务
[root@localhost media]# cd Packages/
[root@localhost Packages]# rpm -ivh vsftpd-2.2.2-6.el6_0.1.i686.rpm
[root@localhost ~]# chkconfig vsftpd on
[root@localhost ~]# service vsftpd start
验证:
访问ftp://192.168.1.110/rhel6/即可看到以复制到软件仓库目录/var/ftp/rhel6/中的光盘数据
访问ftp://192.168.1.110/other/即可看到非RHEL6光盘自带的软件包
二.配置软件仓库位置(客户端)
在客户端上至少要设置一个可用的软件仓库,才可以用yum工具来下载,yum工具使用的软件仓库信息存放在/etc/yum.repos.d/目录下扩展名为.repo的文件中。
配置如下:
[root@localhost ~]#vi /etc/yum.repos.d/rhel-source.repo
/*(如果说不想修改源文件的话,可以复制一份到当前目录。但是建议是将未用*.repo的删除掉。)*/
[rhel6] //仓库类别
name=Red Hat Enterprise Linux $releasever - $basearch - Source //仓库说明
baseurl=ftp://192.168.1.110/rhel6 //仓库URL访问路径(与文件夹名称保持一致)
enabled=1 //启用此软件仓库
gpgcheck=1 //验证软件包的签名
//不同操作系统建议不要开启
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //GPG公钥文件的位置 (验证数据包是否完整)
[other]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=ftp://192.168.1.110/other
enabled=1 //启用
gpgcheck=0 //不验证软件包的签名
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
以上配置如果不需要的话可以去掉配置选项,根据实际情况要求来实现即可。
特例: YUM也可以使用本地文件夹作为软件仓库,但是这种方法仅限于本地计算机生效
例如:将CDROM 光盘挂载到/madia/目录下。
[root@localhost ~]# cp /etc/yum.repos.d/rhel-source.repo /etc/yum.repos.d/local.repo
[root@localhost ~]# vi /etc/yum.repos.d/local.repo
[local]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=file:///media
enabled=1
----------------------------------------------------------------------------------------------------------------------
Yum工具管理软件包
Yum由 yum-3.2.29-22.el6.noarch.rpm 软件包提供。
Yum 工具结合子命令 list info search来实现
1.yum list -----------------------查询软件包列表
yum list install -----------------------只列出系统已安装的软件包
yum list available -----------------------只列出软件仓库中可用(尚未安装)的软件包
yum list updates -----------------------只列出可以升级版本的软件包
2.yum info -----------------------查询软件包的描述信息
用法 yum info + 软件包的名字(如httpd)
yum clean all ----------------------清除yum缓存
3.yum search ----------------------查询指定的软件包
用法 yum search + 关键词 (仅根据软件包名称和描述信息进行搜索)
yum search all + 关键词 (可扩大搜索范围)
例外加:
yum grouplist yum groupinfo 分组名称 可获得YUM仓库内的软件分组信息
例如:执行 yum groupinfo Desktop 列出软件分组Desktop所包括软件包等信息
YUM安装升级卸载软件包
安装 升级 卸载软件包
Install upgrade remove
-y 选项 自动确认
yum 结合子命令 groupinstall groupupdate groupremove可以针对软件分组进行安装,升级,卸载操作。
例如:执行 yum -y groupremove Desktop 则会删除Desktop所有分组所包含的软件包
rhel5 使用rhel6 yum源报错:Error performing checksum
rhel5 使用rhel6 yum源报错:Error performing checksum(2011-11-10 08:54)
rhel 5 使用 rhel6 或者 fedora 11 以上版本作为yum 源就会发生如下报错:
file:///data/rhel6/repodata/7e94eeabef95726e82318ff8b73520540d2747feb3c0425130fcafdc560340c1-primary.sqlite.bz2: [Errno -3] Error performing checksum
Trying other mirror.
原因: rhel 6 中 repomd.xml 文件使用 sha256 作为hash 算法 ,在rhel 5中 默认使用的是sha 作为hash 算法 ,倒是rhel5 读取 rhel 6 yum 源中的repomd.xml 出现问题
解决办法: 将rhel 6 光盘中内容拷贝出来 ,createrepo -s sha ./ 重新创建repo ,并制定默认算法 sha
package-cleanup --problems
本文出自 “技术交流” 博客,转载请与作者联系!