感谢支持
我们一直在努力

详解本地yum仓库repository

YUM(Yellow dog Updater,Modified)主要的功能是方便添加、删除和更新rpm软件包。可以解决软件包依存问题,更便于管理大量的系统更新问题。它可以同时配置多个仓库或叫资源库(repository),就是存放更新和依存的软件包的地方。

在安装Red Hat Enterprise Linux过程中,默认是不安装所有软件包的,等到我们需要时再手动安装。通常有两种方法:

1.通过rpm -ivh <package>命令手动安装。

2.通过注册RHN(Red Hat Network)帐号,然后由yum连接到RHN Satellite服务器上去解决更新和软件包依存关系等问题。这种方法需要能连接到internet。

如果没有RHN帐号则可以使用本地yum仓库。

本地yum仓库就是把系统安装光盘里的内容复制到本地磁盘中,通过配置yum,让其访问这个本地磁盘,解决软件包依存关系,但不能更新软件包。

在制作yum仓库时需要一个软件包:createrepo-0.9.8-4.el6.noarch

createrepo是linux下的创建仓库的软件包。create是创建的意思,repo是repository的缩写,是仓库的意思。

repodata作为软件的仓库,其目录下有四个必要文件:*-filelists.xml.gz,*-other.xml.gz,*-primary.xml.gz和repomd.xml,通常也会有软件包组文件*-comps-*.xml[.gz],其中最主要的是repomd.xml文件

createrepo [options] <directory>
-o 指定repodata目录的输出路径
-g 指定查找组文件的位置
-x 排除某个软件包
–update 只更新在上次产生metadate之后被改变的(后接已存在的repodata目录)
=================================================================
创建属于自己的本地yum源(可以将自己收集到的rpm软件包制作成yum仓库,既便于管理软件包又可解决软件包的依赖关系)
1.挂载光盘或系统镜像并拷贝所有的软件包到一个目录中
[root@rhel6 ~]# mount /dev/cdrom /media/
[root@rhel6 ~]# mount -o loop issue.iso /media/
[root@rehl6 ~]# cp -rp /media/{Packages,Server} /var/ftp/pub/RHEL6/

2.安装createrepo
[root@rhel6 ~]# rpm -ivh /var/ftp/pub/RHEL6/Packages/createrepo-0.9.8-4.el6.noarch

3.创建yum repository的xml-rpm-metadata
[root@rhel6 ~]# cd /var/ftp/pub/RHEL6
[root@rhel6 RHEL6]# createrepo -o ./ Packages
3596/3596 – Packages/compat-db42-4.2.52-15.el6.i686.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
//将在/var/ftp/pub/RHEL6目录下生成repodata目录,并将filelists、other、primary、repomd添加到yum的元数据库repodata中

[root@rhel6 RHEL6]# ls repodata/
filelists.xml.gz other.xml.gz primary.xml.gz repomd.xml

[root@rehl6 RHEL6]# createrepo -o ./ -g Server/repodata/*-comps-rhel6-Server.xml ./
3596/3596 – Packages/compat-db42-4.2.52-15.el6.i686.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
//将rpm包组文件加入到YUM源的数据库中(yum grouplist)

[root@rhel6 RHEL6]# ls repodata/
8afad1febf2d8844a235a9ab1aa5f15c9cec1219b9d01060d4794435cf59dffe-comps-rhel6-Server.xml
other.xml.gz
8afad1febf2d8844a235a9ab1aa5f15c9cec1219b9d01060d4794435cf59dffe-comps-rhel6-Server.xml.gz
primary.xml.gz
filelists.xml.gz
repomd.xml

4.创建本地yum客户端的repo文件
在RHEL 5.5中打开”添加/删除软件”的图形化软件安装界面使用system-config-package
而在RHEL6中则改成gpk-application,且必须在本地yum源的repo文件中启用gpgcheck(gpgcheck=1),否则会出现”No groups could be found.A cache refresh should fix this”,软件包集无法正常显示的错误
[root@rehl6 ~]# cat /etc/yum.repos.d/base.repo
[base]
name=base
baseurl=file:///var/ftp/pub/RHEL6
#以上三项为必选项,yum 将从baseurl 指定的目录下查找repodata目录中的repomd.xml文件
#repomd.xml记录了 “other.xml.gz” “filelists.xml.gz” “primary.xml.gz” “comps.xml”等文件
enabled=1
gpccheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RedHat-release

#yum check-update //检查可更新的rpm包
#yum list updates //列出资源库中所有可以更新的rpm包
#yum list extras //列出已安装但不包含在资源库中的rpm包
#yum search package //搜索匹配特定字符的rpm包
#yum install package //安装程序package
#yum remove package //删除程序package,包括与该程序有依赖性的包
#yum update package //更新程序package
#yum grouplist //列出所有的程序组
#yum groupinstall “Web Server” //安装程序组”Web Server”
#yum groupupdate groups //更新程序组groups
#yum groupremove groups //删除程序组groups
#yum localinstall package [–nogpgcheck] //安装本地程序package
#yum clean [all | packages | headers | oldheaders] //清除暂存中旧的rpm头文件和包文件
#yum deplist package //查看程序package的依赖关系
#yum info package //列出资源库中所有可以安装或更新的rpm包的信息

赞(0) 打赏
转载请注明出处:服务器评测 » 详解本地yum仓库repository
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏