如何為程序包創(chuàng)建自己的存儲庫?

基于RPM的操作系統(tǒng)可與rpm軟件包,最常用的軟件包管理器是yum。雖然較新的基于RPM的操作系統(tǒng)使用dnf實用程序,但它與yum存儲庫保持兼容性,因此這些指令也適用于dnf。

對于Linux,分發(fā)軟件的最常見方法是rpm或deb格式的二進(jìn)制軟件包。大多數(shù)軟件包都包含在官方發(fā)行版本存儲庫或第三方軟件存儲庫中。但是,在某些情況下,您只需要安裝幾個獨立的軟件包即可。您也許可以使用本地軟件包安裝工具,即dpkg或rpm,但是在某些情況下,由于依賴關(guān)系項而無法安裝軟件包,因此您需要手動安裝所有依賴項。這可能需要一些時間,而且不太容易。但是有一個解決方案可以提供幫助,您可以創(chuàng)建自己的本地存儲庫,然后將軟件包部署到該本地存儲庫。

讓我們討論一下如何創(chuàng)建本地存儲庫,以使您的工作更輕松。

基于RPM的發(fā)行版

基于RPM的操作系統(tǒng)可與rpm軟件包,最常用的軟件包管理器是yum。雖然較新的基于RPM的操作系統(tǒng)使用dnf實用程序,但它與yum存儲庫保持兼容性,因此這些指令也適用于dnf。

為了創(chuàng)建yum存儲庫,您需要執(zhí)行以下步驟:

安裝createrepo工具

創(chuàng)建一個存儲庫目錄

將RPM文件放入存儲庫目錄

創(chuàng)建存儲庫元數(shù)據(jù)

創(chuàng)建存儲庫配置文件

1.安裝createrepo工具要創(chuàng)建yum存儲庫,我們需要安裝其他名為“ createrepo”的軟件:

sudo yum install createrepo

2.創(chuàng)建一個存儲庫目錄

您需要創(chuàng)建一個新目錄,該目錄將是您的yum存儲庫的位置,并將包含所需的rpm軟件包文件。

因此,您應(yīng)該確定此目錄的位置并創(chuàng)建它

mkdir <your_directory_name>

作為示例,我們使用/ opt / rpms

mkdir /opt/rpms

3.將RPM文件放入存儲庫目錄

您應(yīng)該將RPM復(fù)制或下載到新目錄中

4.創(chuàng)建存儲庫元數(shù)據(jù)

createrepo命令使用rpm包讀取目錄,并在其中創(chuàng)建一個名為“ repodata”的新目錄。該目錄包含存儲庫的元數(shù)據(jù)信息。每次將其他rpm軟件包文件添加到y(tǒng)um存儲庫時,都需要使用“ createrepo”命令重新創(chuàng)建存儲庫元數(shù)據(jù)。

因此,要創(chuàng)建存儲庫,您需要執(zhí)行以下操作:

createrepo <path_to_your_directory_with_rpms>

例:

createrepo /opt/rpms

如果您已經(jīng)創(chuàng)建了存儲庫元數(shù)據(jù),并且僅向其中添加了新軟件包,則需要更新存儲庫:

createrepo --update /opt/rpms

5.創(chuàng)建存儲庫配置文件

yum存儲庫具有其自己的配置文件,并且有一些規(guī)則:

它必須位于/etc/yum.repos.d/目錄中

它必須具有.repo擴(kuò)展名,以被yum識別

文件選項為:

Repository ID–ID號唯一(示例:[myrepo])

name–可讀的存儲庫名稱(例如:name = My Repository)

Baseurl – 到repodata目錄的URL。如果存儲庫位于本地,則可以使用file:// path;如果存儲庫位于遠(yuǎn)程,則可以使用ftp:// link,http:// link,https:// link-HTTP身份驗證可用http:// user:password @ www。

Enabled –在執(zhí)行更新和安裝時啟用存儲庫(示例:enabled = 1)

Gpgcheck –啟用/禁用GPG簽名檢查(例如:gpgcheck = 1)

Gpgkey – GPG密鑰的URL(例如:gpgkey = http://mirror.cisp.com/)

Exclude –要排除的軟件包列表(例如:exclude = httpd,mod_ssl)

Includepkgs –要包括的軟件包列表(例如:include = kernel)

所需的yum存儲庫配置文件選項為:

Repository ID

Name

Baseurl

Enabled

示例:

[customrepo]

name=CustomRepository

baseurl=file:///opt/rpms

enabled=1

gpgcheck=0

基于Debian的系統(tǒng)

Debian存儲庫是一組Debian二進(jìn)制或源代碼包,它們在一個特殊的目錄樹中,包含各種基礎(chǔ)結(jié)構(gòu)文件。

在大多數(shù)情況下,在基于debian的系統(tǒng)上,所有存儲庫都由“apt”實用程序管理(apt、apt-get、apt-cache等)。

要創(chuàng)建apt存儲庫,您需要執(zhí)行以下步驟:

1.安裝dpkg-dev軟件包

該軟件包用于解壓縮、構(gòu)建和上傳Debian源軟件包所需的開發(fā)工具。

您可以使用apt-get安裝它:

sudo apt-get install dpkg-dev

2.創(chuàng)建一個存儲庫目錄

您需要創(chuàng)建一個新目錄,該目錄將是您的deb存儲庫的位置,并將保存所需的deb軟件包文件。

您應(yīng)該確定此目錄的位置并創(chuàng)建它

mkdir <your_directory_name>

作為一個示例,我們使用/ opt / debs

mkdir /opt/debs

3.將deb文件放入存儲庫目錄

您應(yīng)該將rpm文件復(fù)制或下載到新目錄中

4.創(chuàng)建一個“ apt-get update”可以讀取的文件

為此,您應(yīng)該運行dpkg-scanpackages命令。

dpkg-scanpackages對Debian二進(jìn)制軟件包的樹進(jìn)行排序,并創(chuàng)建由apt、dselect等使用的包文件,以告訴用戶哪些軟件包可用于安裝。

cd /opt/debs

dpkg-scanpackages . /dev/null > Release

5.將信息添加到指向存儲庫的sources.list中

您需要通過以下方式在Sources.list中添加一行:

deb file:///<path_to_your_repo_dir> ./

示例:

deb file:///opt/debs ./

如果您構(gòu)建的程序包未使用gpg進(jìn)行簽名,或者尚未導(dǎo)入用于在倉庫中對程序包進(jìn)行簽名的gpg密鑰,并且您信任它們,則可以使用以下定義跳過簽名檢查。

[trusted=yes]

例如:

deb [trusted=yes] file:///opt/debs ./

自己構(gòu)建存儲庫有多種原因。您可能只想提供一些帶有本地修改的軟件包,您可能想運行帶有多個計算機(jī)使用的軟件包的本地鏡像以節(jié)省帶寬,或者您自己構(gòu)建了軟件包并希望在發(fā)布之前對其進(jìn)行測試。這些步驟可以為您提供解決方案。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論