You are here

將Google Code Project 改造成APT更新用的伺服器

說到Debian最常用的更新是透過apt進行套件管理及升級, 而說到apt server的架設都會提到「鳥哥大大的APT/YUM的教學文

其實APT的來源可以有幾種 HTTP, FTP, CD-ROM, Local Filesystem 的存在, 在這不提到其它的方法而是使用「HTTP」的方式進行架設...因為Google Code Project上提供的「2GB 的空間」是以「HTTP的型式」或是「SVN」儲存的, 在看完鳥哥大大的大作和上網找尋Debian APT架設的資訊發現其實也不用特別安裝一台APT server, 主要的重點是它的套件清單資訊, 也就是「Packages.gz」

以Google Code Project來說它的網址都是類似以下這樣

http://code.google.com/p/[project-name]/

而如果我要用它來當作apt server的話,在apt的sources.list 要設定成以下這樣

deb http://[project-name].googlecode.com files/

以現在我已建立的專案「debian-bcm47xx」為例, 其網頁的瀏覽位址如下

http://code.google.com/p/debian-bcm47xx/

而上傳的檔案主要都是存放在「files」目錄之下, 也就是 http://debian-bcm47xx.googlecode.com/files/ 之下

所以接著我們要做的步驟如下:

1. 在Linux主機上先建立一個名為「files」的目錄

mkdir files

2. 將自己編譯好的deb檔放置在裡面 (請注意: 自行編譯的套件檔都要設定套件相依資訊, 可以看下面的註記說明)

3. 執行以下命令產生「Packages.gz」

dpkg-scanpackages files /dev/null |gzip > files/Packages.gz

4. 接著將Packages.gz 上傳到Google Code Project上, 接著開始測試

5. 修改/etc/apt/sources.list 加入下列這行, 存檔離開

deb http://debian-bcm47xx.googlecode.com files/

6. 接著進行套件資訊更新

apt-get update

7. 安裝一個自己編譯的套件「libdlna」試試...安裝能夠正常完成...如下的成功畫面 :D

apt-get install libdlna

Google Code to be APT server

從以上的範例可知從Google Code進行APT成功了, 之後如果要自行編譯的套件有更新時只要依Step 3再重新生成「Packages.gz」, 然後將原來在Project上的套件清單刪除再上傳新的「Packages.gz」就行了

[註記] 因為apt套件更新「非常強調」它的相依性, 所以如果你在套件中Depends為空白的話, 即使把它打包完成後製作成Packages.gz清單上傳到Google Code Project上, 使用「apt-get update」進行更新時也會出錯無法正常完成, 所以這點要特別的注意, 使用checkinstall或是dpkg-buildpackage進行套件打包時要記得輸入套件的相依資訊

[後記] 之前在「debian-bcm47xx」上打包的套件很多都沒有輸入套件相依資訊, 所以要重新打包上傳才可以使用apt功能了....殘念

[3/6] 趁著今天放無薪假的時間裡, 把大部份的套件再重新打包上傳了, 現在可以直接進行apt更新, 可以參考這篇

 

Comments

兄弟,照你的方法无法apt-get update 成功。

Fetched 102kB in 1m30s (1130B/s)
Failed to fetch http://code.google.com/p/debian-bcm47xx/files/Packages.gz 404 Not Found [IP: 209.85.175.100 80]
Reading package lists... Done
E: Some index files failed to download, they have been ignored, or old ones used instead.

网页上的下载地址是:http://debian-bcm47xx.googlecode.com/files/Packages.gz

apt却会在http://code.google.com/p/debian-bcm47xx/files/Packages.gz 地址去下载,是我个人系统的问题么?

我将/etc/apt/sources.list 里的

deb http://code.google.com/p/debian-bcm47xx files/

改成
deb http://debian-bcm47xx.googlecode.com files/

就可用了~:)

呵呵..寫太入神沒再檢查一次結果犯了這個大錯誤...雖然之後發的文章和google上的注釋都寫對...orz

下面才是正確的...已更新文章錯誤的地方, 謝謝指正 :)

deb http://debian-bcm47xx.googlecode.com files/