1. 程式人生 > >linux 下載rpm包到本地,createrepo:建立本地YUM源

linux 下載rpm包到本地,createrepo:建立本地YUM源

如何下載rpm包到本地

設定yum安裝時,保留rpm包。

1.編輯 /etc/yum.conf 將keepcache的值設定為1;

這樣就可以將yum安裝時的rpm包儲存在 /var/cache/yum下面

2.或者使用yum-plugin-downloadonly外掛,

  sudo yum install yum-plugin-downloadonly

 用法:sudo yum install ceph-0.87.1-0.el7.centos.x86_64.rpm --downloadonly --downloaddir=./

 有時centos的rpm源不是最新的,需要安裝一個epel源,sudo yum install epel-release

repodata作為軟體的倉庫,其目錄下有四個必要檔案:filelists.xml.[gz],other.xml.[gz],primary.xml.[gz]和repomd.xml(md意思是metadata),其中最主要的是repomd.xml檔案。一般出現的找不到repodata目錄或檔案的錯誤的原因通常有三個:一是路徑問題;二是沒有生成repodate目錄;三是*.repo配置檔案衝突(這個需要特意注意)。

建立本地源步驟如下:

1、安裝createrepo包;
2、新建本地源目錄(假若本地源在當前家目錄下)
   2.1 $mkdir -p local-yum/i386/       #其中i386是包放置目錄
   2.2 將安裝包放置到i386目錄中
   2.3 createrepo local-yum/           #建立一個源

3、配置yum源(可以單獨新建一個repo檔案,也可以新增到已經存在的repo檔案中)在/etc/yum.repos.d/下面建立檔案
************************************************************
[local-yum]
name=local-yum
baseurl=file:///home/test/local-yum/               #檔案目錄不能設定到i386,否則本地源使用會報錯
enabled=1
gpgcheck=0

解釋:
[....]     代表這個庫的名字,必須是唯一的,不可以重複。
name=     是這個庫的說明,沒有太大的實際意義,只是一個欄位說明。
baseurl=  說明採取什麼方式傳輸,具體路徑在哪裡,可以使用的方式有,file:///,ftp://,http://等
enabled=1  說明啟用這個更新庫,0表示不啟用。
gpgcheck=1 表示使用gpg檔案來檢查軟體包的簽名
gpgkey=    表示gpg檔案所存放的位置,此處也可以有http方式的位置。
************************************************************

可以使用以下命令來檢驗yum源是否安裝成功
yum clean all yum repolist


4、yum工具介紹
   yum工具有很多的引數可供使用,如下:
        yum install 軟體名1 [軟體名2] [...]
        yum update [軟體名1][軟體名2] [...]
        yum check-update
        yum upgrade [軟體1] [軟體2] [...]
        yum remove | erase 軟體名1 [軟體名2] [...]
        yum list [...]
        yum info [...]
        yum provides | whatprovides feature1 [feature2] [...]
        yum clean [ packages | headers | metadata | dbcache | all ]
        yum makecache
        yum groupinstall 軟體組1 [軟體組2] [...]
        yum groupupdate 軟體組1 [軟體組2] [...]
        yum grouplist [hidden] [groupwildcard] [...]
        yum groupremove group1 [group2] [...]
        yum groupinfo 軟體組名 [...]
        yum search 字串1 [字串2] [...]
        yum shell [檔名]
        yum resolvedep 依賴關係1 [依賴關係2] [...]
        yum localinstall rpm包1 [rpm包2] [...]
        yum localupdate rpm包1 [rpm包2] [...]
        yum reinstall 軟體包1 [軟體包2] [...]
        yum downgrade 軟體包1 [軟體包2] [...]
        yum deplist 軟體包1 [軟體包2] [...]
        yum repolist [all|enabled|disabled]
        yum help [command]
    以上就是yum全部的可用引數了,自動分析依賴性關係是它最好的一個特點,也是目前最方便的安裝方法。

5、更新本地源,在倉庫所在目錄下
   createrepo --update local-yum/          # 更新本地源
   createrepo local-yum/                   # 重新生成metadata

6、用的上的命令      createrepo --update:


   有時候你的軟體倉庫中含有很多的軟體包,雖然只是其中的一小部分有所改動但是你卻不必為每個軟體包重新產生元資料,這樣做明顯太浪費時間了。這就是--update選項誕生的原因。
   像之前一樣執行createrepo命令但是添加了--update選項.       $createrepo --updatelocal-yum/   現在createrepo只更新那些在上次產生元資料之後被改變,新增或者刪除了的專案.
      verifytree 
  如果你剛剛做了一個repo並且你想要驗證在你的repo中的所有東西都是正確且可以完成其功能的話,你可以執行erifytree命令來檢查所有的repodata和軟體包。

7、建立基於html的更新源
   7.1 安裝httpd安裝包
   7.2 如上建立本地更新源
       cd /var/www/html/
       mkdir -p nsmc
       cdnsmc
       mkdir RPMS SRPMS
   7.3 拷貝相關檔案到RPMS和SRPMS目錄中
   7.4 在nsmc所在目錄下執行如下命令
       createrepo nsmc           #建立倉庫
   7.5 service httpd start       #啟動httpd守護程序,這是關鍵地方之一,否則在其他機器上會提示找不到相關源
   7.6 編寫repo檔案
*************************************
[nsm]
name=NeoShine Linux Desktop 5 nsmc repo - i386
baseurl=http://xxx.xxx.xxx.xxx/nsmc
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neoshine-release

注意:gpgcheck設定為0,則不需要認證簽名。