转自:
http://www.cnblogs.com/holbrook/archive/2012/08/17/2644147.html yum(Yellow dog Updater, Modified) 是一个与apt类似的软件包管理器,在Fedora,Redhat,SUSE,CentOS等Linux发行版中采用。 软件包管理器可以解决rpm的依赖管理问题,使得软件的安装、升级更加容易。 yum使用中心仓库(repository)最为软件源,管理软件包,而各Linux系统通过yum的配置连接到这个源来获取软件包。 1 理由尽管有很多的免费镜像提供yum源服务,但是还是有必要建立自己的yum服务器,主要出于以下几点考虑:
2 规划本公司服务器操作系统主要是RHEL和CentOS,所以希望同时提供这些操作系统的yum源。 由于没有购买RHEL服务,所以RHEL源使用DVD中的文件构建一个“静态”的源。 而CentOS则可以与一个发布的源进行同步,以保持更新。官方认可的镜像服务可以在 http://www./modules/tinycontent/index.php?id=32 查找速度较快并且支持rsync的镜像,但是我找到了一个国内的镜像不在该列表中: mirrors.ustc.edu.cn/centos/. 这个镜像支持rsync 服务,可以进行同步更新。 yum源的规划如下: http://dev./mirrors/ centos/ centos源,其目录结构与其他镜像站点相同 rhel/ RHEL源 6Server/ 5erver/ os/ x8664/ # 将RHEL dvd的iso光盘文件挂载到此目录 updates/ x8664/ # 使用mirrordir从ftp://ftp.redhat.com/redhat/linux/updates/rhn/5Server/x86_64/ 同步 custom/ x8664/ # 自己开发的内部使用的软件包 Packages/ # 打包的rpm文件 repodata/ # 用createrepo生成的索引文件 RPM-GPG-KEY-redhat-5Server RPM-GPG-KEY-redhat-6Server CentOS-mycompany.repo RHEL-mycompany.repo 3 架设yum源可以使用http或ftp提供服务,这里使用nginx作为webserver,提供http方式的访问。 1.在/path/to/your/mirrors 创建好上面规划的目录结构。
4 使用为了便于使用,可以提供写好的repo文件,用户只需放到/etc/yum.repos.d/目录下,再执行yum update 即可。这里创建了CentOS-mycompany.repo 和 RHEL-mycompany.repo 放到/path/to/your/mirrors目录下,分别用于CentOS和RHEL。 在repo文件中可以尽量使用变量,以提高通用性。常用的变量包括: $releasever,发行版的版本 $arch,cpu体系(划分过于细致,在repo文件中一般不使用,而是使用下面的$basearch) $basearch,cpu的基本体系组 我的两个repo文件参考如下: RHEL-mycompany.repo: [base] name=RHEL-mycompany - Base baseurl=http://dev./mirrors/RHEL/$releasever/os/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-redhat-$releasever [updates] name=RHEL-mycompany - Update baseurl=http://dev./mirrors/RHEL/$releasever/updates/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-redhat-$releasever [extras] name=RHEL-mycompany - Extra baseurl=http://dev./mirrors/RHEL/$releasever/extras/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-redhat-$releasever [custom] name=RHEL-mycompany - Custom baseurl=http://dev./mirrors/RHEL/$releasever/custom/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-redhat-$releasever CentOS-mycompany.repo: [base] name=CentOS-mycompany - Base baseurl=http://dev./mirrors/centos/$releasever/os/$basearch/ gpgchecksever=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-CentOS-$releasever #released updates [update] name=CentOS-mycompany - Updates baseurl=http://dev./mirrors/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-CentOS-$releasever #additional packages that may be useful [extras] name=CentOS-mycompany - Extras baseurl=http://dev./mirrors/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-CentOS-$releasever #additional packages that extend functionality of existing packages [centosplus] name=CentOS-mycompany - Plus baseurl=http://dev./mirrors/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-CentOS-$releasever #contrib - packages by Centos Users [contrib] name=CentOS-mycompany - Contrib baseurl=http://dev./mirrors/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-CentOS-$releasever #packages of mycompany [custom] name=CentOS-mycompany - custom baseurl=http://dev./mirrors/centos/$releasever/custom/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://dev./mirrors/centos/RPM-GPG-KEY-CentOS-$releasever
Date: 2012-08-17 15:17:22 CST HTML generated by org-mode 6.33x in emacs 23 |
|