歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 詳解本地yum倉庫repository

詳解本地yum倉庫repository

日期:2017/2/28 14:50:48   编辑:Linux教程

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

Copyright © Linux教程網 All Rights Reserved