我正在嘗試使用 reprepro 創建 apt 儲存庫,這在很大程度上非常簡單。我一直使用這篇文章作為參考,因為我喜歡暫存樹的結構。
http://vincent.bernat.im/en/blog/2014-local-apt-repositories.html
然而,我似乎無法理解可能非常簡單的事情。使用下面文章中的範例conf/distributions,我對以下事實感到困惑:當我導入套件時,它總是只轉到main。沒有名為 Precision-staging 和 Precision-prod 的目錄嗎?我想做的是有一個單獨的地方來放置未經測試的包和另一個用於生產的包在同一個存儲庫中。 (/opt/packages/pool/trusty-prod,/opt/packages/pool/trusty-stage)
我可以根據需要透過 /etc/apt/sources.list.d/ 使用 puppet 將客戶指向其中任何一個。
我是否完全不知道如何完成此操作或理解本文?
Dailymotion Precise packages (staging)
Origin: Dailymotion
Label: dm-staging
Suite: precise-staging
Codename: precise-staging
Architectures: i386 amd64 source
Components: main role/dns role/database role/web # ➊
Description: Dailymotion Precise staging repository
Contents: .gz .bz2
Tracking: keep
SignWith: yes
NotAutomatic: yes # ➋
Log: packages.dm-precise-staging.log
--type=dsc email-changes
Dailymotion Precise packages (prod)
Origin: Dailymotion # ➌
Label: dm-prod # ➌
Suite: precise-prod
Codename: precise-prod
Architectures: i386 amd64 source
Components: main role/dns role/database role/web # ➊
Description: Dailymotion Precise prod repository
Contents: .gz .bz2
Tracking: keep
SignWith: yes
Log: packages.dm-precise-prod.log
答案1
為自己設定一個簡單的儲存庫只需 4 個步驟
1.安裝 dpkg-dev
2.將軟體包放入目錄中
3.建立一個腳本來掃描軟體包並建立一個 apt-get update 可以讀取的檔案
4. 在您的sources.list中新增一行,指向您的儲存庫
安裝 dpkg-dev
在終端機中輸入
sudo apt-get install dpkg-dev
目錄
建立一個用於保存包的目錄。對於這個例子,我們將使用
/usr/local/mydebs.
sudo mkdir -p /usr/local/mydebs
現在將您的包移至您剛剛建立的目錄中。
先前下載的軟體包通常儲存在系統上的 /var/cache/apt/archives 目錄中。如果您已經安裝了 apt-cacher,您將在其 /packages 目錄中儲存其他軟體包。
腳本 update-mydebs
這是一個簡單的三行:
#! /bin/bash
cd /usr/local/mydebs
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
將以上內容剪下並貼上到 gedit 中,並將其另存為 ~/bin 中的 update-mydebs。 (波浪號「~」表示你的主目錄。如果 ~/bin 不存在,請建立它:Ubuntu 會將該目錄放入你的 PATH 中。這是放置個人腳本的好地方)。接下來,讓腳本可執行:
chmod u+x ~/bin/update-mydebs
腳本如何運作: dpkg-scanpackages 查看 mydebs 中的所有套件,輸出被壓縮並寫入 apt-get update 可以讀取的檔案 (Packages.gz)(請參閱下面的參考資料,詳細解釋了這一點)。 /dev/null 是一個空檔;它是覆蓋文件的替代品,其中包含有關包的一些附加信息,在本例中實際上並不需要這些信息。如果您想了解它,請參閱 deb-override(5)。
來源.list
新增行
deb file:/usr/local/mydebs ./
到你的 /etc/apt/sources.list ,你就完成了。
光碟選項
您可以將包含 deb 的目錄刻錄到 CD 上,並將其用作儲存庫(適合在電腦之間共用)。要將 CD 用作儲存庫,只需執行
sudo apt-cdrom add
使用儲存庫
每當您將新的 deb 放入 mydebs 目錄時,請執行
sudo update-mydebs
sudo apt-get update
現在,您的本機軟體包可以使用Synaptic、aptitude 和apt 命令進行操作:apt-get、apt-cache 等。關係。
製作糟糕的軟體包可能會失敗,但您不會忍受 dpkg 地獄。