1. 由於 libqt3 的下載位址在 http://download.uk.kde.org/pub/kde/stab ... ian/woody/,所以我們必須在 /etc/apt/sources.list 裡面加入下面這一行,才能夠由這個網址下載製作 deb 的原始檔:
- 代碼: 選擇全部
deb-src http://download.uk.kde.org/pub/kde/stable/3.0.5a/Debian/woody ./
2. 接下來就是下載原始檔囉:
- 代碼: 選擇全部
apt-get source libqt3
系統會自動下載 qt-x11-free_3.0.5-4.diff.gz、qt-x11-free_3.0.5-4.dsc、qt-x11-free_3.0.5-4.orig.tar.gz 這三個檔案,然後自動將 qt-x11-free_3.0.5-4.orig.tar.gz 這個檔案給解壓縮到 /tmp/qt-x11-free-3.0.5 這個子目錄底下。
3. 編譯原始檔的過程常常會用到一些我們沒有安裝在系統裡的套件,而編譯 libqt3 所需要用到的套件,其實我們可以在 qt-x11-free_3.0.5-4.dsc 這個檔案裡面找到。不過 apt-get 提供了一個很簡便的方法幫助我們補齊相關的套件,我們就不必一個一個自己裝了:
- 代碼: 選擇全部
apt-get build-dep libqt3
接著系統就會自動幫我們補齊編譯 libqt3 將會使用到的套件,例如 unixodbc-dev、ibmysqlclient10-dev、postgresql-dev...等套件。
4. 接著請進入 /tmp/qt-x11-free-3.0.5 這個目錄裡:
- 代碼: 選擇全部
cd /tmp/qt-x11-free-3.0.5
5. 接下來請執行 dch -i,將我們所要編譯的 deb 套件增加一個版次。如果我們不做這個動作的話,我們在安裝好我們自己編譯好的 deb 檔案以後,又執行 apt-get upgrade 的話,系統會自動以 apt repository 的 deb 套件覆蓋過去,也就是系統將會以 http://download.uk.kde.org/pub/kde/stab ... bian/woody 下載回來的 libqt3_3.0.5-4.deb,覆蓋掉我們辛苦編譯好的 libqt3_3.0.5-4.deb。所以請執行:
- 代碼: 選擇全部
dch -i
其實執行這個指令等於是進入 vi 裡面去修改 /tmp/qt-x11-free-3.0.5/debian/changelog 這個檔案,在裡面增加一個版次。所以您會發現執行了這個指令以後,您已經在 vi 裡面、正在修改 debian/changelog 這個檔案。接下來請按 i 鍵進入 vi 的 insert-mode,在星號的後面加入一些簡單的說明,接著按 ESC 退出到 command-mode,再按 : 鍵,接著輸入 wq,就會儲存檔案並退出 vi 了:
- 代碼: 選擇全部
qt-x11-free (2:3.0.5-5) unstable; urgency=low
* Qt-3.0.5 with xft support (recompiled by oct 2003/01/03)
-- root <root@debian> Fri, 3 Jan 2003 22:14:04 +0800
qt-x11-free (2:3.0.5-4) unstable; urgency=low
* Qt-3.0.5 backport to Debian GNU/Linux 3.0 (Woody)
-- Ralf Nolden <nolden@kde.org> Sun, 6 Oct 2002 12:50:00 +0200
qt-x11-free (2:3.0.5-3) unstable; urgency=low
* Sometimes our buildds do strange things (Closes: #155258)
* debian/rules: added shlibdeps-path for libqt3-mt.
* debian/rules: libqt3-mysql, libqt3-odbc and libqt3-psql contain the
unthreaded plugins now (Closes: #152022)
-- Martin Loschwitz <madkiss@madkiss.org> Thu, 9 Aug 2002 22:18:00 +0200
...................................
執行完 dch -i 以後,您就會發現 changelog 已經增加了一個版次為 3.0.5-5 了,這樣我們編譯完成的 libqt3 將會是 3.0.5-5 版。
6. 接下來就是打開 libqt3 的 xft 選項了。請用文字編輯器打開 debian/rules (其實是 /tmp/qt-x11-free-3.0.5/debian/rules,底下我們都以 debian/rules 稱之) 這個檔案,以搜尋的功能找到 -no-xft 這個地方,然後將 -no-xft 給刪掉,然後將檔案儲存起來。
7. 接下來就是編譯我們的 libqt3 套件囉,請執行:
- 代碼: 選擇全部
debian/rules binary
編譯過程大概要一個小時吧 (cpu 為 AMD Atholon XP 1700+)...
8. 編譯完成以後,會在 /tmp 底下產生下面幾個檔案:
- 代碼: 選擇全部
libqt3_3.0.5-5_i386.deb
libqt3-dev_3.0.5-5_i386.deb
libqt3-mt_3.0.5-5_i386.deb
libqt3-mt-dev_3.0.5-5_i386.deb
libqt3-mt-mysql_3.0.5-5_i386.deb
libqt3-mt-odbc_3.0.5-5_i386.deb
libqt3-mt-psql_3.0.5-5_i386.deb
libqt3-mysql_3.0.5-5_i386.deb
libqt3-odbc_3.0.5-5_i386.deb
libqt3-psql_3.0.5-5_i386.deb
libqxt0_3.0.5-5_i386.deb
qt3-doc_3.0.5-5_all.deb
qt3-tools_3.0.5-5_i386.deb
平常我們使用 KDE 3.0.5a 的話,只需要安裝 libqt3、libqt3-mt、libqxt0 和 qt3-tools 就可以了,如果您有在編譯 qt3 的應用程式的話,您必須加裝 libqt3-dev 和 libqt3-mt-dev 這兩個套件:
- 代碼: 選擇全部
dpkg -i libqt3_3.0.5-5_i386.deb libqt3-dev_3.0.5-5_i386.deb libqt3-mt_3.0.5-5_i386.deb libqt3-mt-dev_3.0.5-5_i386.deb libqxt0_3.0.5-5_i386.deb qt3-tools_3.0.5-5_i386.deb
libqt3_3.0.5-5_i386.deb 和 libqt3-mt_3.0.5-5_i386.deb 必須在同一個 dpkg -i 指令裡安裝,才不會出現相依性的問題而不能安裝。
OK,這就完成了所有的步驟,您可以再執行一次 apt-get upgrade,就會發現系統不再以系統內定的 deb 來取代我們自己編譯的 deb 了
後記:大家在安裝好自己編譯的 deb 套件以後,可能想要將之前經由 apt-get build-deb libqt3 所安裝的一些不常用的套件給移除掉,可惜的是弟找不到比較簡便的方法來移除掉這些套件,所以只好依據 qt-x11-free-3.0.5-4.dsc 這個檔案的內容,自己一個一個移除了