一般透過 APT 所安裝的套件,大多都有經過 Debian 開發者的維護與修補(patch),多多少少會與原本套件的原始碼不同,所以下載其他來源(如官方網站)的套件原始碼進行編譯時,有可能會遇到一些光怪陸離、不知如何解決的問題,例如你可能會遇到你所下載的套件原始碼並沒有針對 Debian 環境的修補,而導致無法順利安裝。
累了嗎?也許你可以有更好的選擇!
如果你所需要的套件是能夠透過 apt-get 就能夠安裝的話,同樣地,你也能夠透過 apt-get source 取得這些已經經過 Debian 維護與修補的套件原始碼!這樣有甚麽好處呢?
- 不用再辛苦的除錯、修補 (可減少重複前人作過的事)
- 確保一定能夠在 Debian 上運作
- 節省時間、保留精力
重新編譯套件之前,需要三個基本的套件 build-essential, devscripts, fakeroot ,可使用以下指令進行安裝:
apt-get install build-essential devscripts fakeroot
接著使用 apt-get source (套件名稱) 指令下載 vim 的套件原始碼(建議使用一個新的資料夾存放原始碼):
mkdir myvim cd myvim apt-get source vim
下載完之後,一般會有三個檔案(*.debian.tar.gz, *.dsc, *.orig.tar.gz)及一個資料夾出現,以 .orig.tar.gz 結尾的壓縮檔案是未經任何更動的套件原始碼,以 .debian.tar.gz 結尾的壓縮檔案則內含 Debian 的修補檔、編譯指令等等, .dsc 結尾的檔案則是記載要編譯此套件需滿足的相依性,而最後的資料夾則是含有 Debian 修補檔的套件原始碼。以 vim 為例就是以下三個檔案及一個資料夾:
vim-7.3.547 vim_7.3.547-7.debian.tar.gz vim_7.3.547-7.dsc vim_7.3.547.orig.tar.gz
接著可以進入含有修補檔的資料夾中一探究竟:
cd vim-7.3.547
這個資料夾中經過 Debian 維護的修補檔,會存放在 debian 資料夾下的 patches 資料夾內 (debian/patches),修補檔進行修補的順序則是依照 debian/patches/series 檔案內的順序,編譯的指令則是放在 debian 資料夾下的 rules 檔案裡,而原始程式碼則另外存放在 src 資料夾中,整體資料夾結構會如下所示:
vim-7.3.547/ debian/ patches/ series rules src/
如果只是想修改編譯時的參數,只要依照需求修改 debian/rules 即可。
若有更動到 src 資料夾下的檔案就還需使用以下指令提交修補檔(因為這些程式碼都有經過版本控制)!
提交時,會詢問修補檔要用甚麽檔名,此處可依需求輸入,例如 hellomyvim.patch 。
Enter the desired patch name: hellomyvim.patch
提交成功後會出現如下的訊息:
dpkg-source: info: local changes have been recorded in a new patch: ...(略)
編譯之前,需先滿足編譯套件時的相依性,可使用 apt-get build-dep (套件名稱),將需要的套件一併安裝起來。
再來使用執行以下指令進行編譯即可:
若無任何錯誤訊息,編譯之後,在上一層的資料夾中會出現一個 .deb 檔,使用 dpkg -i 進行安裝即可!
參考資料
http://wiki.debian.org/BuildingTutorial
若有更動到 src 資料夾下的檔案就還需使用以下指令提交修補檔(因為這些程式碼都有經過版本控制)!
dpkg-source --commit
提交時,會詢問修補檔要用甚麽檔名,此處可依需求輸入,例如 hellomyvim.patch 。
Enter the desired patch name: hellomyvim.patch
提交成功後會出現如下的訊息:
dpkg-source: info: local changes have been recorded in a new patch: ...(略)
編譯之前,需先滿足編譯套件時的相依性,可使用 apt-get build-dep (套件名稱),將需要的套件一併安裝起來。
apt-get build-dep vim
再來使用執行以下指令進行編譯即可:
fakeroot debian/rules clean fakeroot debian/rules binary
若無任何錯誤訊息,編譯之後,在上一層的資料夾中會出現一個 .deb 檔,使用 dpkg -i 進行安裝即可!
cd .. dpkg -i vim-7.3.547_.deb
參考資料
http://wiki.debian.org/BuildingTutorial
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.