首頁 > 軟體

按需製作最小的本地yum源

2020-06-16 16:33:33

【需求背景】

有時候客戶的環境裡面只能離線安裝檔案,此時可以使用CentOS的ISO光碟作為本地源進行安裝,或者是製作一個包含了YUM源服務的虛擬機器。

無論上面的哪一種方式都不夠輕量,我們自己的元件可能只需要YUM源中的若干包即可。

按照下面的方法,可以將需要的包下載到本地資料夾,並製作成YUM源,體積較小,並且利於發布安裝。

【下載yum包】

在一台純淨的CentOS虛擬機器上(建議與客戶環境部署用的CentOS虛擬機器映象相同的虛擬機器,保持初始狀態,不要安裝任何包,否則會影響後面的downloadonly外掛的下載結果)

安裝YUM外掛yum-plugin-downloadonly:

yum install yum-plugin-downloadonly

下載自己需要的包以及對應的依賴包到本地資料夾:

yun install --downloadonly --downloaddir=~/package/ [package-name]

各個包的依賴包之間可能有重疊,建議先把各個包的依賴包下載到單獨的資料夾之後再合併,這時可以全域性掌握一下依賴包重疊的情況。

此時資料夾[package-name]下面應該存在著大量的rpm包,但此時這個資料夾還不能作為yum源來使用,它還缺少元資訊和索引

使用YUM安裝:

yum install createrepo

執行createrepo

createrepo --database ~/package/

命令完成之後,會在 ~/package 資料夾下面生成一個新的資料夾 repodata ,下面包含了一下叫 repomd.xml 的檔案,以及一些名稱很長的後設資料檔案。

此時整個package資料夾就可以當作一個完整的YUM源來使用。

【yum源使用】

在一台不能聯網的機子上拷貝package資料夾到任意目錄下,如 /root/package/ 。

再在 /etc/yum.repo.d/ 資料夾下面新建一個 local-repo.repo 的檔案,內容如下(盡量先把原來已經存在的repo檔案都刪除掉):

[local-repo]

name=local-repo

baseurl=file:///root/package

gpgcheck=0

此時就可以直接使用yum來安裝了。

如果以後需要在YUM源裡面新增東西,按照上面的步驟再把依賴包下載下來,新增到package資料夾中,再進行 createrepo 更新元資訊即可。


IT145.com E-mail:sddin#qq.com