apt-build 0.8.4-1 bugfix

常言道:『飲水思源』,在 Open Source 的世界裡,我們常常需要別人的幫助,但是在您有所心得的時候請記得分享給大家,『幫助人是快樂的喔』。歡迎您在使用 debian 的過程中的任何心得分享給大家。

apt-build 0.8.4-1 bugfix

文章Jamesz » 週日 5月 18, 2003 1:03 am

這篇是小弟在使用 apt-build 時遇到的問題:

在 apt-build update-repository 時,apt-build 無法產生正確的 Package 檔案,
而是跑出一個大小為 21 byte 的 Package.gz,解壓縮後只有 1 byte 的空字元。
以下是編譯 zip 的 source code 時跑出來的錯誤訊息:
代碼: 選擇全部
workstation:/home/apt-build# apt-build -y --reinstall install zip
.
.
.
.
.
Hit http://marillat.free.fr unstable/main Release
Reading Package Lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/_home_apt-build_repository_dists_apt-build_main_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.
Reading Package Lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/_home_apt-build_repository_dists_apt-build_main_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.

workstation:/home/apt-build# apt-build update-repository
-----> Updating repository <-----
Using: -O3 -mcpu=pentium4 -march=pentium4
E: Unparsible control file
E: Errors apply to file './zip_2.30-5_i386.deb'


小弟在 Google 上找到「Unparsible control file」是 apt-ftparchive 的錯誤訊息,
便花了一點時間查了一下 /usr/bin/apt-build 的內容,
發現 apt-build 是使用 apt-ftparchive 來產生 Package,
再用 gzip 壓縮成 Package.gz。

代碼: 選擇全部
sub build_repository
{
        print "-----> Updating repository <-----\n";
        chdir($repository_dir) or die "Unable to chdir to $repository_dir\n";
        if(! -e "main" ) { system("ln -s . main"); }
        if(! -e "apt-build" ) { system("ln -s . apt-build"); }
        if(! -e "dists" ) { system("ln -s . dists"); }
        my $arch=qx[dpkg --print-architecture]; chomp($arch);
        if(! -e "binary-$arch" ) { system("ln -s . binary-$arch"); }
        if(! -e "Release" ) { &make_release_file(); }
  system("apt-ftparchive packages . | gzip -9 > Packages.gz");
        chdir($build_dir);
}


man 一下 apt-ftparchive,看到如下內容:
代碼: 選擇全部
       apt-ftparchive  is  a  superset  of  the  dpkg-scanpackages(8) program,
       incorporating it's entire functionality via the directory command.   It
       also  contains  a  contents  file generator, contents, and an elaborate
       means to 'script' the generation process for a complete archive.

搞不好可以用 dpkg-scanpackages 來取代 apt-ftparchive ……好,直接改了!
我直接將下以這行:
代碼: 選擇全部
system("apt-ftparchive packages . | gzip -9 > Packages.gz");

改成這樣:
代碼: 選擇全部
system("dpkg-scanpackages . /dev/null | gzip -9 > Packages.gz");


存檔,然後重新 update-repository:
代碼: 選擇全部
workstation:/home/apt-build# apt-build update-repository
-----> Updating repository <-----
Using: -O3 -mcpu=pentium4 -march=pentium4
 ** Packages in archive but missing from override file: **
  zip

 Wrote 1 entries to output Packages file.

看來是將問題解決了 :-)
如果有人遇到跟我一樣的問題,不妨試試看這個方法。

感想:
花了一整天,就只為了解決這個問題:-?
現在要面對 xserver-xfree86 4.3.0 跟 Mozilla 1.3 的 source :crying:
說實在話,apt-build 的 bug 真的很多,但在整個編譯原始碼的過程中,
發覺 Debian source 的 dependency 很亂,
很多東西都是 source 需要而實際上找不到版本與之符合的套件,
只好動手把 Build-Dependency 中一些套件直接拿掉,
如 xfree86 4.3.0(Danial Stone 版)的 kernel-headers-2.4,
Mozilla 1.3-5(in unstable)的 libjpeg-dev 才能開始整個編譯流程。
現在我的老 pentium2-300 正在跟 Mozilla 的 source code 搏鬥中,希望能順利編完……
Linux 尖端駭客的結晶 是一個多功能的作業系統
出現在這個無奇不有的網路世界中 病毒難入 無所不能
Linux 的喜祥物-Tux 充滿喜感 是網路世界的自由鬥士
他整合極度穩定的核心 過人的自由軟體
打擊封閉軟體 拯救被 M$ 壓迫 無辜善良的電腦使用者

My blog: http://blog.istudio.idv.tw
頭像
Jamesz
可愛的小學生
可愛的小學生
 
文章: 32
註冊時間: 週三 2月 05, 2003 11:39 pm
來自: 彰化

re:apt-build 0.8.4-1 bugfix

文章moto » 週日 5月 18, 2003 8:20 am

感謝 Jamesz 大的精彩分享, apt-build 問題確實還不少,希望以後能更進步.. ;-)
歡迎你來到MOTO學園一起討論Debian相關問題。
在post問題前可先別忘記了以下的步驟:
1:翻一下/usr/share/doc/中是否已經有解答了?
2:閱讀一下無痛起步是否已經提到了?
3:找一下google予以解答?
4:善用學園中的"搜尋"功能,往往答案就在裡面窩。
頭像
moto
摩托學園站長
摩托學園站長
 
文章: 2808
註冊時間: 週二 9月 03, 2002 3:37 am
來自: 台北

re:apt-build 0.8.4-1 bugfix

文章阿信 » 週日 5月 18, 2003 10:52 am

呵呵...我已經不想在追逐重新編譯的無窮迴圈了,電腦穩穩用,不會當就好了,快不快已經沒那麼重要了,重要的是我自己的速度跟不跟的上... :-(
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:apt-build 0.8.4-1 bugfix

文章moto » 週日 5月 18, 2003 8:03 pm

呵呵...是阿..穩定真的是最重要的...不過速度還是要在能忍受的範圍啦..我現在除了加入 ck patch 再打開 hdparm 就差不多囉...軟體已經很少重新編譯...這樣已經滿足我的需求嚕.. 8-)
歡迎你來到MOTO學園一起討論Debian相關問題。
在post問題前可先別忘記了以下的步驟:
1:翻一下/usr/share/doc/中是否已經有解答了?
2:閱讀一下無痛起步是否已經提到了?
3:找一下google予以解答?
4:善用學園中的"搜尋"功能,往往答案就在裡面窩。
頭像
moto
摩托學園站長
摩托學園站長
 
文章: 2808
註冊時間: 週二 9月 03, 2002 3:37 am
來自: 台北

文章flybird » 週四 12月 16, 2004 5:01 pm

沒辦法ㄚ , 我的 PIII-600 跑 KDE 都會 "extra extra ..."
友人推薦用Gentoo , 我還是覺得Debin比較穩 , 只是這一方面大概起步較晚吧! :-)
Ps. Gentoo真的讓他的鳥機起死回生喔! :mrgreen:

現在是 0.9.10版了 , 希望趕緊進入 1.0版 :)
注意 command 改成
apt-build build-repository 8-) APT操作才會正常 8-)
apt-build update
apt-build upgrade

祝大家順利 :)

Jamesz 寫:改成這樣:
system("dpkg-scanpackages . /dev/null | gzip -9 > Packages.gz");

我有跟 , 但0.9.10不知修正了沒? :ooops:
剛才試了一下 , 發現不用改就能跑了!
最後由 flybird 於 週二 12月 21, 2004 10:36 am 編輯,總共編輯了 2 次。
flybird
懵懂的國中生
懵懂的國中生
 
文章: 249
註冊時間: 週三 7月 07, 2004 4:40 pm
來自: ROT

Re: re:apt-build 0.8.4-1 bugfix

文章flybird » 週五 12月 17, 2004 11:30 am

阿信 寫:呵呵...我已經不想在追逐重新編譯的無窮迴圈了,電腦穩穩用,不會當就好了,快不快已經沒那麼重要了,重要的是我自己的速度跟不跟的上... :-(


重要的是我們自己的速度跟不跟的上...

共進共勉!

我們對 APT 還是知其然而不知其所以然ㄚ :-?
最後由 flybird 於 週二 12月 21, 2004 4:39 pm 編輯,總共編輯了 1 次。
flybird
懵懂的國中生
懵懂的國中生
 
文章: 249
註冊時間: 週三 7月 07, 2004 4:40 pm
來自: ROT

re:apt-build 0.8.4-1 bugfix

文章flybird » 週五 12月 17, 2004 11:37 am

<<使用報告>>
apt-build install kde
apt-build install kde-core
這兩個[整合/中介]套件 , 似乎沒辦法跑起來 , why? :crying:

apt-build install kdelibs 先做起來 , 就會OKㄛ!
flybird
懵懂的國中生
懵懂的國中生
 
文章: 249
註冊時間: 週三 7月 07, 2004 4:40 pm
來自: ROT


回到 share

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron