2017-02-15 49 views
0

我已經創建了一個rpm包,我需要將它發佈到YUM,以便用戶可以直接執行yum install softwareName來安裝該應用程序。我在谷歌搜索,但無法找到許多資源。我對這件事很陌生,所以我不知道我想做什麼是可能的。我試圖爲應用程序創建一個本地yum存儲庫,但似乎只適用於本地機器。任何人都可以幫忙嗎?謝謝。如何將rpm包發佈到YUM

+0

如果你的目標只是使這種轉安裝的其他用戶,你只需通過GoogleDrive/DropBox/Web服務器/ FTP服務器等進行共享即可。用戶可以下載它,驗證簽名並通過$ sudo yum localinstall/path/to/your.rpm進行安裝。不幸的是,我也不知道如何將你的rpm放到公​​共的RPM存儲庫中。 – lospejos

回答

0

假設你已經在Linux機器上安裝了YUM。

您需要創建一個包含RPM的YUM存儲庫。例如,

./mydir/Packages/my.rpm 

使用createrepo爲該目錄創建存儲庫。

createrepo ./mydir 

以上將在./mydir

創建repodata目錄然後告訴YUM如該倉庫是在/etc/yum.repos.d/my.repo創建一個回購文件。的my.repo內容可以是這樣的:

[my_repo] 
name=My YUM REPO 
baseurl=file:///path/to/mydir 
enabled=1 

然後做,yum --enablerepo=* clean all。這應該爲yum重新生成元數據。

最後,

`yum --enablerepo=* install my` 

以上,mymy.rpm

爲了從其他機器訪問此網絡上,您需要一個網絡接入,

安裝http。將您的資料庫某處,/var/www/html/repos/mydir/Packages/my.rpm

然後按照其他步驟和編輯my.repo文件,包括機器的hostnamebaseurl屬性:

baseurl=http://myrepository.com/mydir 
+0

謝謝!但是我得到這樣一個錯誤:'失敗:c7-media的repodata/repomd.xml:[Errno 256]沒有更多的鏡像可以嘗試。 file:///media/CentOS/repodata/repomd.xml:[Errno 14] curl#37 - 「無法打開文件/media/CentOS/repodata/repomd.xml」 file:/// media/cdrom /repodata/repomd.xml:[Errno 14] curl#37 - 「無法打開文件/media/cdrom/repodata/repomd.xml」 file:///media/cdrecorder/repodata/repomd.xml:[Errno 14] curl#37 - 「無法打開文件/media/cdrecorder/repodata/repomd.xml」'我在Docker上測試這個,因爲我使用的是Mac。這是我得到錯誤的原因嗎?謝謝! –

+0

您可以通過執行'yum --enablerepo = * --disablerepo = c7-media install my'來禁用任何回購。你也可以使用你自己的回購,'yum --enablerepo = my_repo install my'。你也可以在'/etc/yum.repos.d/name.repo'裏面禁用一個repo並標記'enabled = 0' – iamauser

+0

只需稍作修改 - 你應該儘可能使用'createrepo_c'。它運行速度要快得多。 – msuchy