對于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)行測試。這些步驟可以為您提供解決方案。