如何在 Debian 上為軟件包創建自己的存儲庫

您想要構建自己的本地存儲庫的原因有多種。 這是創建本地鏡像存儲庫以緩存許多計算機使用的常用包以節省帶寬使用量的好方法,或者您可能希望將一些修改過的包提供給開發團隊內部使用。

在本教程中,我們將向您展示如何輕鬆 創建本地 Debian 軟件包存儲庫, 兼容 Debian 和 Ubuntu 版本。

步驟 1:安裝所需的軟件包

在基於 Debian 的系統上,所有存儲庫都由 APT 實用程序(apt、apt-get、apt-cache 等)管理。 創建與 APT 兼容的本地存儲庫需要 dpkg-dev 包。

首先使用以下命令更新系統包:

$ sudo apt update && sudo apt upgrade

接下來安裝 dpkg-dev 通過鍵入以下內容打包:

$ sudo apt-get install dpkg-dev

軟件包安裝完成後,繼續為您的軟件包文件創建目錄。

步驟 2:為本地存儲庫創建目錄

創建一個目錄來保存二進制包。 為了這 example,我們將使用 /opt/local/debs,但您可以使用任何您喜歡的目錄。

$ sudo mkdir -p /opt/local/debs

接下來,更改目錄:

$ cd /opt/local/debs

第 3 步:將包添加到本地存儲庫目錄

出於本教程的目的,我們將下載 chrome-browser 包到我們的本地存儲庫,因為它在默認的 Ubuntu 存儲庫中找不到:

$ sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

您可以在此步驟中復製或下載任意數量的軟件包。

步驟 4:為 APT 創建所需的存儲庫包元

為此,我們必須運行幾個 dpkg-scanpackages 命令。 我將切換到 root 用戶帳戶,因為我正在使用 /opt/local 目錄來跳過使用 sudo.

$ sudo su

首先,我們將通過運行以下命令來創建一個 Release 文件:

# dpkg-scanpackages . /dev/null > Release

您應該獲得類似的輸出,具體取決於您添加到本地存儲庫的軟件包數量:

dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: google-chrome-stable
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.

接下來,掃描目錄中的所有 deb 文件並創建相應的 Packages.gz 文件

# dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

輸出:

dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: google-chrome-stable
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.

請注意,每次將新的 deb 包添加到本地存儲庫目錄時,您都必須運行這些命令。 你也可以創建一個簡單的 bash 腳本並在添加新包時運行它。

要列出本地 repo 目錄結構,請運行 ls 命令:

$ ls -l

輸出:

-rw-r--r-- 1 root root 83325072 May 8 02:29 google-chrome-stable_current_amd64.deb
-rw-r--r-- 1 root root 761 May 17 20:44 Packages.gz
-rw-r--r-- 1 root root 1321 May 17 20:39 Release

第 5 步:將我們的本地存儲庫添加到 Sources.list

最後一步是編輯sources.list 文件。 使用您選擇的編輯器編輯文件:

$ sudo nano /etc/apt/sources.list

將以下行添加到您的 /etc/apt/sources.list:

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

現在我們將測試我們的本地存儲庫。

第 6 步:驗證

我們可以通過從本地存儲庫中安裝或刪除軟件包來進行驗證。

首先,我們必須更新軟件包:

$ sudo apt-get update

現在我們像往常一樣使用 apt-get 安裝我們的包:

$ sudo apt-get install google-chrome-stable

現在可以使用 Synaptic、aptitude 和 apt 命令安裝、更新和刪除您的本地軟件包:apt-get、apt-cache 等。當您運行 apt-get install 時,任何依賴項都會為您解析和安裝,只要因為他們可以見面。

我們可以像刪除系統上任何已安裝的軟件包一樣輕鬆地刪除已安裝的軟件包:

$ sudo apt-get remove google-chrome-stable

結論

在本教程中,我們學習瞭如何創建我們自己的本地 Debian 存儲庫以及如何在本地添加/刪除軟件包。 這些步驟適用於大多數基於 Debian 的發行版。