RHEL6搭建YUM仓库

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

本文出自 “技术交流” 博客,转载请与作者联系!

你可能感兴趣的:(搭建,仓库)