2011-07-19 26 views
9

我有一個項目,我創建一個.deb文件,它應該由一個Linux客戶端安裝。爲此,我想使用apt-get install mypackage簡單的方法來承載debian更新存儲庫

作爲這個領域的新手,我現在正在尋找託管我自己的debian更新存儲庫的最簡單的方法,它只需包含mypackage.deb。

我很快看着mini-dinstall,看起來很有希望,但他們似乎與.changes,而不是.deb包。所以我不確定這是否是我需要的。

所以總結工作流程應該是這個樣子:

  1. 我創建Debian軟件包mypackage.deb
  2. 我講一些後臺程序來更新更新存儲庫:fancy-update-daemon add mypackage.deb
  3. 客戶端是無法安裝或使用標準的apt命令更新:apt-get install mypackage

感謝您的幫助

+0

askubuntu.com是最好的地方這個問題 – Charbel

回答

13

創建存儲庫的一個非常簡單的方法是創建一個「平凡」存儲庫,而不是「自動」存儲庫。您可以使用dpkg-dev軟件包中的「dpkg-scanpackages」命令執行此操作。

$ mkdir repository 
$ cp foo.deb repository 
$ dpkg-scanpackages repository /dev/null | gzip -9c > repository/Packages.gz 

然後在你的sources.list,而不必像:

deb http://wherever/repository suite component 

你離開過套件和組件,只是有:

deb http://wherever/repository 

欲瞭解更多信息(如簡單和自動存儲庫之間的區別)請參閱The repository HOWTO(對於這種簡單的事情,您可以忽略此文檔自稱爲「過時」的事實)

+0

非常感謝。這看起來有希望。我想我也可以用這種機制來管理同一個軟件包的不同版本。 我一定會嘗試一下。 – Besi

+3

dpkg-scanpackage不會將相同軟件包的多個版本放入同一個軟件包文件,如果這就是您的意思。如果您爲同一個軟件包的多個版本提供一個目錄,那麼最終版本中的最新版本只能是Packages.gz – stew

+2

@stew,您可以給dpkg-scanpackage添加'-m'開關以添加多個與軟件包相同的軟件包版本。 –

0

.changes構建debian軟件包時會生成文件。 A .changes文件本身不是包:它包含有關構建的信息(including .debs that were generated)。

雖然我沒有使用mini-dinstall,但它似乎是正確的路要走。它應該使用在生成過程中生成的.deb文件並正確地上傳它們。

2

創建Packages.gz文件:

@server> cd debian-repo 
@server> dpkg-scanpackages ./ /dev/null | gzip > Packages.gz 

創建新文件/etc/apt/sources.list.d/my-server.list(在客戶端)

deb http://my-server/debian-repo ./ 

現在得到的名單的可用軟件包並安裝foo

@client> apt-get update 
@client> apt-get install foo 
相關問題