Subscribe to RSS Subscribe to Comments Blog of Roy Chan

Blog of Roy Chan

在 Ubuntu 10.04 LTS 中 Virtualbox 3.1.x 使用 USB 裝置

Virtualbox 過往是使用 HAL 或 usbfs 來連接 USB 裝置的。然而 usbfs 已退役了一段時間,而 HAL 亦已被 udisk 等取替。所以 Virtualbox 3.1.6 (或之前版本) 在 Ubuntu 10.04 LTS 中並未能使用 USB 裝置。暫時的解決方法是使用以下命令再執行 HAL:

sudo hald --daemon=no

當然,你可以試一試 Virtualbox 3.2.0 beta,據說不用 hald 了。

更新訊息: Virtualbox 3.20 已推出了,亦修正以上問題。你可以到 virtualbox.org 下載相關套件或在 sources.list 加上:

deb http://download.virtualbox.org/virtualbox/debian lucid non-free

和安裝 virtualbox.org 軟件庫金鑰,更新軟件列表後安裝 virtualbox-3.2:

sudo apt-key add oracle_vbox.asc
aptitude update
aptitude install dkms virtualbox-3.2

Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


Ubuntu 10.04 LTS 新功能

Ubuntu 10.04 LTS Ubuntu 第三個長期支援版 10.04 (Lucid Lynx) 即將出爐。這次亮點不算多,重頭戲似乎還是要侍在十月發佈使用 GNOME 3.0 的 10.10 (Maverick Meerkat),不過還是有些令人興奮的改變。

  • 新佈景主題 (theme) - 這次 Ubuntu 發佈最明顯和最惹人爭議是改變了整個介面色調,放棄了用了五年之多的啡橙調 Human 佈景主題,改為紫橙調。新的預設佈景主題為深調主題 Ambiance 和淺調 Radiance。面板圖示改為單色調,而視窗標題板的關閉、最大化、最小化按鈕移至視窗左方,加上背景改為紫調,新介面整體予人過度近似 Mac OS X 的感覺。當中以關閉等按鈕左移之舉最受爭議,不少人覺得比以後變得不方便 (包括筆者)。然而 Mark Shuttleworth 表示這次按鈕位置的改變是想空出右方位置在 Ubuntu 10.10 時放些新點子
  • 社交桌面 - 令人眼前一亮的是對社交網絡的支援,桌面右上方新增 Me Menu 和即時通訊程式 Empathy 和微博程式 Gwibber 整合,讓使用者可以在同一清單下直接切換或改變多個即通訊系統和多個微博 (包括 twitter 和 facebook) 的狀態。而支援多個社交網絡的微博程式 Gwibber 亦開始成熟,介面比上一版本進步很多,對一次過查看和在多個社交網絡廣播非方便。
  • Ubuntu 軟件中心 - Ubuntu 軟件中心 (Ubuntu Software Center) 亦有不少改進,追上舊日 GNOME Application Installer 的程度,不像上次升級至 9.10 由 GNOME Application Installer 改用 software center 時介面跌了級的感覺。
  • Ubuntu One - Canonical 自家雲端服務除了支援網上硬碟外,這次加入賣音樂。使用者可以透過 Rhythmbox 買無 DRM 的音樂、備份和同步。網上硬碟現在亦可以如 Dropbox 般透過公開特定檔案的 URL 分享檔案給朋友。
  • GNOME 2.30 - 一如以往 Ubuntu 採用了剛推出不久的 GNOME 2.30 作為預設桌面環境,然而 GNOME 現在主表著力於將在十月推出的 GNOME 3.0,這次 2.30 的改動不多。
    • iPod touch/iPhone 支援 - 可以透過 Rhythmbox/gtkpod 存取 iPod touch/iPhone 3GS 的音樂 (新 iPod touch/iPhone 要先和 iTune 同步一次取可以 存取)
    • Nautilus 的雙行顯示 - 檔案管理程式 Nautilus 這次新增近以 midnight commander 的雙行顯示模式,讓使用者可以按 F3 切換至把檔案管理視窗分成兩行,分別顯示不同的資料夾內容,放便在兩個資料夾間搬動檔案。這個無疑是很實用的功能,但似乎和上一個版本 2.28 新增的分頁顯示 (tab view) 重覆功能,有說未來版本可能會把二者之一取消。個人覺得兩者功能過度相依,實無必要同時出現。而在實用角度,雙行顯示會比較方便,但介面上很 old fashion,而一般使用者可能會較習慣分頁顯示。
    • 即時通訊程式 Empathy - 可以 drag & drop 檔案至聯絡人清單或聊天視窗來傳送檔案
    • 備忘貼 Tomboy - 同步功能自動化和可以剪貼格式化 HTML 至 OpenOffice.org 和 Evolution 等軟件中。
    • VNC 遠端桌面檢視器 Vinagre - 支援 SSH tunnelling、JPEG 壓縮和控制顏色深度等
    • 安裝字型 - 現在可以雙擊字型檔來安裝新字型
    • 面板程式位置 - 修正了每次進入桌面時,面板程式位置亂跳的問題。
  • Pitivi 和 GIMP - 留意 Ubuntu 這次把 GIMP 由預安軟件名單中除去,但加入了影片編輯器 Pitivi。

Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


Ubuntu 新 Look

Ubuntu New Light Theme

早幾天,Ubuntu 正式發佈了在四月將推出的 Ubuntu 10.04 LTS (Lucid Lynx) 將大改形象,揚棄一直以來啡橙色調 Human 佈景主題。預設桌面背景改為紫色,面板和視窗標題則提供銀/黑兩款。說實, 我覺得這個新主題佈景一般,Mac 感太重。喜見 status icon mono-tone 化,但連 main menu 個 logo 都 mono-tone 就似乎太單調。


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


修正 Intel 圖形晶片在 Ubuntu 9.04 (jaunty) 的表現

前提過 Ubuntu 9.04 的亮點,這次提提 9.04 的問題。如果你的電腦是使用 Intel 圖形晶片,你應該會發覺 9.04 在繪圖的表現比 8.10 差了不小,尤其在 Compiz 很明顯,很多特效都不流暢。這是因為 9.04 是值幾項重要圖形技術的轉接期,Linux 核心 2.6.28 開始轉用 Graphics Execution Manager (GEM) 以改進和簡化 X server 的記憶體管理。X.Org 亦引入了 UXA 和 Direct Rendering Infrastructure (DRI2) 取替 EXA/XXA 和 DRI,壐加上 kernel-based mode setting (KMS)。大量新玩意出現,問題臭蟲自然不少,互相兼容亦很多問題。

現時 9.04 開啟了 GEM,但亦使用 EXA,而 UXA 又未隱定。部份使用舊 Intel 圖形晶片在 9.04 甚至出現鎖機現像。Ubuntu 的 release note 建議有鎖機問題的朋友可以停用 DRI (會同時停用 3D 和桌面特效 compiz) ,方法是在 /etc/X11/xorg.conf 的 Device 章節 (Section) 加上 Option "DRI" "off"

如只是繪圖表現差或特效不流暢,可以啟用 “greedy” migration heuristic。我試了,果然 Compiz 回復 8.10 時的輰順。方法是 /etc/X11/xorg.conf 的 Device 章節 (Section) 加上 Option MigrationHeuristic" "greedy":

Section "Device"
    Identifier "Configured Video Device"
    Option "MigrationHeuristic" "greedy"
EndSection

參考資料:


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


Jaunty Jackalope

其實 Ubuntu 9.04 (Jaunty) release 前兩周已傳用了 Beta 版本的 9.04,不過一直懶於動筆寫寫。當然桌面Wubi 安裝手冊也算按是在 jaunty release 一日內出現。伺服器版的安裝手冊 則因為考慮到其實不應鼓勵安裝非 LTS 的伺服器,加上每次 update 大花功夫 (最辛苦是 cap 圖),決定以後只提供 LTS 版的伺服器安裝說明。

Jaunty 這個版本改動不算太大,事實上 GNOME 2.26 比 2.24 的改動也不太大,多了 Brasero 這個其實 Ubuntu 一早預裝的光碟燒錄程式,在 Ubuntu 底下顯得不起眼。當然 Brasero 的介面是改變了不少,個別軟件也有不少改動。但面對一個已啟動的 9.04,驚喜似乎久奉。誰不知重點是在開機的一剎。

如果說 9.04 最令我喜歡的,絕不是新的 OSD 通告系統 notifiy-osd,而是 9.04 的開機速度。我現在由開機到登入 GNOME 才花不到半分鐘的時間,而休眠和由休眠回復的時間也有很大改善。當然我安裝 9.04 beta 時也順道換了較快的硬碟,所以不能作準。但在其實沒有換硬碟的電腦安裝 9.04 , 似乎也確實快了不少。

此外,9.04 這次的壁紙似乎是比較像樣 (雖然很 OS X) 。另外 9.04 也正式收錄 Dust Theme,這個 theme 我在 8.04 時已開始使用,這次不用自改去下載,免了麻煩。黑色 panel 配橙色壁紙,感覺比美很多。在外觀上,我認為 Ubuntu 還只差 icon theme, 尤其是 Emblems (最醜的設計) 。過往 Fedora 的 theme 一直比 Ubuntu 專業萬部,但 Fedora 9 的視窗邊框確實醜得嚇人。


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


GNU/Linux HSDPA (3.5G) 上網!?

早一陣子,有人問我 GNU/Linux 可不可以 HSDRA (3.5G) 上網。現在香港 HSDPA 計畫都頗貴,我沒有錢使用,所以亦答不到。不過研究一下亦無況。

Google 搜索一下,Tuxmobil 有一專頁收集了有過 GNU/Linux 3G 上網的資料。似乎上 Smartone-Vodafone 最新那個 HSDPA USB stick 有 GNU/Linux 驅動器,有 Debian、Fedora 8 和 OpenSuSE 10.3 等 distro 的套件預備。但見討論區有不少人投訴驅動器有問題。

有機會要找個有 Smartone-Vodafone USB stick 的朋友備來試試。


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


Ubuntu 上的圖形介面 PPPoE 連接程式!? Gnome System Tools 2.22

慣性教人在 Ubuntu 或 Debian 連上 xDSL 都是使用文字模式的 PPPoE 設定程式 pppoeconf 。不過跟據多年教人使用 GNU/Linux 的經驗,很多人對就算遇然打一兩句命令或文字模式的程式都很抗拒的。號稱人性化的 Ubuntu 多年來仍只用文字模式的 pppoeconf 來設定 xDSL 連線,似乎有點說不過去。

不過令天倒留意到 GNOME System Tools 2.22 中的 network-admin 似乎有了 PPPoE 的支援。翻查 changelog ,PPPoE 和 GPRS/UMTS 是在 2.21.4 時加入。(去年 12 月推出)

只要選取 系統 -> 管理 -> 網路 執行 network-admin ,雙擊 “點對點連接” (Point-to-Point connection) 。

GNOME System Tools 的 network-admin

在 ppp0 的屬性中,勾選啟用這個連線 (Enable this connection),就在連線類型 (Connection Type) 中,選擇 序列數據機 (Serial Modem)、 PPPoE 或 GPRS/UMTS 。

PPPoE 設定

因為本人的寬頻供應商不使用 PPPoE ,所以未能測試這個新功能。如果有人可以幫手測試一下,並郵寄一兩個 screenshot 給我, 我會感激不盡。


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


堅強的鷺展翅! Ubuntu 第二個長期支援版 8.04 登場

Ubuntu 8.04 (Hardy Heron) 終於在最幾天正式進出。跑了幾天,似乎比 7.10 穩定很多。因為事前已把 OSWikiHK中的 Ubuntu 安裝手冊更新得七七八八,也在正式進出後幾個小時正式貼上 8.04 的桌面伺服器的安裝手冊。結果反應不錯,單計 8.04 桌面安裝手冊,兩天裡每天都有近 700 個 hits 。Mobile01 一個 post 就貢獻了百多個 hits。不過 server 就有點辛苦了。

留意這版本中 Edubuntu 不再有獨立的安裝光碟 ,反而變成 Ubuntu 的一個 extension 。而 Kubuntu 也分別有 KDE 3 和 KDE 4 兩個版本的光碟,KDE 4 版未能輸入中文。這個版本另一大賣點是收錄了著名 Wubi , Windows 使用者可以不分割硬碟安裝 Ubuntu。原理並不新鮮,只是在 Windows 上建立一個大的檔案作為 Ubuntu 的 virtual partition,Boot 入 Ubuntu 時, Ubuntu 自然會使用該檔案佔據的位置作為 / ,速度不會比平常安裝出來 Ubuntu 慢。更好的時,Windows 使用者可以像移除普通 Windows 軟件般在 Windows 上移除 Wubi 安裝出來的 Ubuntu。此舉加大了打破 Windows 使用者心理障礙的機會。找台 Windows 機來試,稍後再加上桌面安裝手冊中。

更新: 《使用 Wubi 在 Windows 安裝 Ubuntu/Kubuntu/Xubuntu》已完成了。


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


修正 Ubuntu 在安裝其他 Distribution 後不能休眠問題

這個問題解決了差不多半年,不過近日安裝 Fedora 8 在 Ubuntu 7.10 的電腦上,又要修正一次。所以順道寫下來記錄一下。

Ubuntu 預設使用 UUID 辯認不同的分割區。格式化 swap 分割區會重新產生一個新的 UUID ,令 Ubuntu 不能找不到 swap 分割區。由於系統休眠 (Hibernation) 要將系統狀態儲存入 swap 分割區。找不到會令 swap 分割區會令休眠和回復失敗。所以我們需要告訴 Ubuntu swap 分割區的新 UUID 才能修正休眠功能。

先用 blkid 找出 swap 分割區的新 UUID :

# blkid  
/dev/sda1: TYPE=”ntfs” 
/dev/sda2: UUID=”b8a89b69-f090-4012-94f6-a243014d1184″ SEC_TYPE=”ext2″ TYPE=”ext3″ 
/dev/sda5: LABEL=”SwapSpace” UUID=”62a19d18-5c43-4df8-9df0-70353bf7dc5d” TYPE=”swap” 
/dev/sda6: UUID=”6357e627-dea6-418f-8735-14ddc377ff66″ SEC_TYPE=”ext2″ TYPE=”ext3″ 
/dev/sda7: UUID=”02c44f5b-d41e-42d3-9dfa-9517be310d3f” SEC_TYPE=”ext2″ TYPE=”ext3″ 
/dev/sda8: UUID=”0a22b594-f2ce-4183-8aa3-ea3a7b9a371d” SEC_TYPE=”ext2″ TYPE=”ext3″ 
/dev/sda9: LABEL=”/” UUID=”bc101f56-e391-4022-b280-d29eb7cf76a5″ SEC_TYPE=”ext2″ TYPE=”ext3″ 

現在我們可以得知 Swap 分割區的 UUID 是「62a19d18-5c43-4df8-9df0-70353bf7dc5d」。先修正 /etc/fstab 中的 Swap 分割區位置:

# /dev/sda5
# UUID=e5113b30-3c4c-4ddc-9c14-e4ecd0374886 none          swap    sw              0       0
UUID=62a19d18-5c43-4df8-9df0-70353bf7dc5d none            swap    sw              0       0

接著要改變休眠回復的分割區 UUID 。先修正 /etc/initramfs-tools/conf.d/resume上的 UUID:

RESUME=UUID=62a19d18-5c43-4df8-9df0-70353bf7dc5d

然後打「update-initramfs -u」重建 initrd 檔。


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


Philips 220EW and Gutsy

Spent some time to configure the Gutsy (Ubuntu 7.10) to work with Philips’ 22-inch LCD monitor. Th mon suppose can display up to 1680×1050 pixels. However, it doesn’t work in Gutsy. The display shift to right and keep blinking. I try to configure the X Window with displayconfig-gtk and editing xorg.conf manually but no luck.

xvidtune doesn’t help and Google show that some people also suffer same situation on Gutsy but fixed in Fedora 8. I haven’t try to install Fedora 8. But at least, I found the mon work well in 1440×900@60Hz. Anyway, lazy to make a further study. 1440×900 is fine for me. p

Update: Hardy (Ubuntu 8.04) fixed it and able to display 1680×1050.


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


Ubuntu 7.10 和 Fedora 8

這大半年的時間都很懶寫 blog, 一來忙 MSc, 二來也多花時間去整理 OSWikiHK。順帶提一提 Ubuntu/Kubuntu/Edubuntu/Xubuntu 7.10 (Gusty Gibbon) 的安裝手冊 (桌面伺服器)早在個多月前已完成了。也有份教人由 Ubuntu 7.04 (Feisty)升級至 7.10 的文章Fedora 8 (Werewolf)才完成了幾個星期 (LiveCD 倒時未正式動手)


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


加快 Notebook 啟動 Ubuntu 速度: 取消開機自動啟動網絡

老方法,不過好像一直沒有記下來。

在 Notebook 啟動 Ubuntu 一般都會很慢。因為 Ubuntu 的圖像開機畫面令人看不到那裡出現問題。按 Alt-Ctrl-F8 就可以發現原兇。問題在於 Notebook 多會使用無線網絡,而開機時一般都還未連上無線網絡或插上網線。而和一般 GNU/Linux 一樣, Ubuntu 開機會自動啟動網絡。當 /etc/init.d/networking 未能找到網絡,自動需要等 timeout 才宣告啟動網絡失敗和繼續下一步。這一下 timeout 要浪廢十多二十秒的時間。

反正現時的網絡連接都交由 Network Manager 管理,我何大可以 rm /etc/rcS.d/S40networking 以取消開機自動啟動網絡,侍登入帳戶後, Network Manager 自動會動連幫我們連接網絡。


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


How gnome-codec-install in Ubuntu work?

Ok, I know that I can ask people to install all GStreamer plugin to solve the codecs problems. But some people keep asking which package they need exactly. One thing in Ubuntu 7.04 that help me a lot is that is that it can detect the codec you need when you try to play a multimedia file and help you to install the packages. However, I still need to told people which package they really need on other distros.

I try to look around the gnome-codec-install and dig out how it know which package we need. First, gnome-codec-install is only a symbolic link of gnome-app-install. gnome-app-install put information of all available desktop applications in .desktop file under /usr/share/app-install/desktop. Those codecs package got the field “X-AppInstall-Codecs’ in their .desktop file. update-app-install will collect the information of all .desktop and build index in /var/cache/app-install/. The index file is in GDBM. I’m lazy to decode it. Therefore, I wrote a one-line shell command to build an index table from the .desktop files. Run the following command under /usr/share/app-install/desktop


grep  -l 'X-AppInstall-Codecs' * | while read file;
    do
        pkg=`basename "$file" .desktop`;
        grep 'X-AppInstall-Codecs' $file | \
            sed -e 's/^X-AppInstall-Codecs//' \
                -e 's/[=;]0.10:/\n'$pkg':/g' \
                -e 's/\.desktop$//'
    done | awk -F: '{printf "%s:%s\n", $2, $1}' | sort | less

Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


Beryl 在北京的”Wah” 電腦新體驗

Ubuntu 7.04 Beryl Cube

上星期在南京北京走了一趟,到現在才有時間寫寫這次出差的經驗。

為北京分公司做宣傳,這次北京短短兩天半的時間走訪了幾間北京的大學和高等學院介紹GNU/Linux和Computer Forensics。由於事忙,一直未有準備演講的內容,加上北京同事設提的壓力,隨手找了最簡單的Beryl作演示,結果反應好得令我出奇。Beryl獨有的火燒視窗環形視窗切換器(Ring Window Switcher)等固然引來哄動的徊響。然而,傳統的cube和橡皮糖視窗招來”Wah! Wah!”的驚嘆!

微軟在宣傳Vista時就用一系列所謂”Wow”體驗的故事和所謂”Wow”電腦新體驗的口號。三月時,我就曾和YPWong討論過利用Beryl製造一些”Yeah”/”Yo”體驗的故事和Vista打對台,後來因時間問題不了了之。但這次北京之旅,我們確實真的利用Beryl打造了”Wah”電腦新體驗的故事。


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


606 和 610

看到這兩個數目字,我們想到的不是熊貓,而是野鴨和小蜥蜴 ;P。 那 704 和 710 會送到那裡?


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


Ubuntu群有多瘋狂!?

我來試試Ubuntu人有多瘋狂!? 由Ubuntu 6.10 (Edgy Eft) 升級的人請先參看 http://www.ubuntu.com/getubuntu/upgrading。 要Ubuntu 7.04 (Feisty Fawn) Desktop CD-ROM ISO的香港朋友可以試試我家的電腦:

另外還有未完成的Install Guide


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


Ubunt 7.04 - 活躍的小鹿(Feisty Fawn)出世了

結果 Ubuntu 7.04 還是準時推出。不知是否太多關注這次發佈,早上 Ubuntu 官方網站經常連不到。如果真的是這個原因,Mark Shuttleworth似乎要開大事慶祝了。以這幾天的情況,我勸大家還是使用BT下載Ubuntu ISO把。我已長期開了Desktop i386amd64的torrent,希望幫到大家。

相關連結


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


如何重新編譯dpkg套件

當你在使用Ubuntu/Debian的正式發行版本,但想使用在開發版本中的新加入的軟體或者想使用在開發版本中有關軟體的新版本,又或者想微調某些軟體的編譯設定。當然backport.org有不少由Debian開發版本backport回到正式發行版本的套件,而Ubuntu亦有提供edgy-backports軟體庫,但如果他們沒有提供你需要的軟體或不符合你的要求,那你就需要重新編譯dpkg套件。

注意本文都最完整和最新版本改放上OSWikiHK,請到那裡參考。

取得源碼

首先自然需要先取得有關dpkg套件的源碼包。和RPM不同的套件源碼一般都有三個檔案:

  • 源程式碼包 (*.orig.tar.gz) - 這是有關軟體原身的源程式碼包 (例如: mod-cband_0.9.7.5.orig.tar.gz) 。原則上是完全沒有被改動過(除了檔案名稱被改至符合dpkg的規格外),和在開發者網站取得的一模一樣。
  • 套件描述 (*.dsc) - 有對有關軟體的簡單描述 (例如: mod-cband_0.9.7.5-1.dsc) 。包括套件名稱、版本、維護者、可編譯平台、編譯時需要的套件和 orig.tar.gz 及 diff.gz 檔的 hash 值。為確保套件沒有被任何人更動過,所有由官方提供的dsc都已用維護者的數位簽名簽著過。
  • 補丁檔 (*.diff.gz) (非必有) - 維護者對改動 (例如: mod-cband_0.9.7.5-1.diff.gz) 。包括加入control、changelog等檔案。如果開發者一早已debian化整個源程式碼,可能不會有diff.gz檔的出現。

使用 apt-get source

取得目標dpkg套件源碼的三個檔案,最簡單自然是用apt-get source命令下載。首先你需要確定 /etc/apt/sources.list 有沒有「deb-src」一行:

deb http://ftp.hk.debian.org/debian/ sarge main contrib non-free
deb-src http://ftp.hk.debian.org/debian/ sid main contrib non-free

如果你是想由開發版本中backport一個套件回來,自然要使用開發版本的軟體庫,以Debian為例,自然是使用 sid。設定好後,在系統管理員身份下用「apt-get update」更新軟體庫資料。然後就可以用「apt-get source 套件名」取得目標dpkg套件源碼。這個指令會幫你幫別目標套件真正源碼名稱 (如套件 libapache2-mod-cband 的源碼包是 mod-cband ) ,下載套件源碼的三個檔案,並自動拆開源碼。為方便管理,建議建立目錄 ~/projects/dpkg並在裡面才進行apt-get source:

mkdir -p ~/projects/dpkg
cd ~/projects/dpkg
apt-get source libapache2-mod-cband

完成後,你會在當前目錄找到到套件源碼的三個檔案和以套件源碼名稱和版本編號組成的目錄 (例如mod-cband-0.9.7.5) ,目錄裡面就是套件的源碼。

$ ls
mod-cband-0.9.7.5
mod-cband_0.9.7.5-1.diff.gz
mod-cband_0.9.7.5-1.dsc
mod-cband_0.9.7.5.orig.tar.gz

自行下載

當然你亦可以自動下載orig.tar.gz、dsc和diff.gz三個檔案。下載後,可以用「dpkg-source -x dsc檔」把原始碼拆開:

$ dpkg-source -x mod-cband_0.9.7.5-1.dsc 
dpkg-source: extracting mod-cband in mod-cband-0.9.7.5

執行後,你會在當前目錄找到到套件源碼的三個檔案和以套件源碼名稱和版本編號組成的目錄 (例如mod-cband-0.9.7.5) ,目錄裡面就是套件的源碼。

整理編譯設定

設定版本編號

習慣上你首先要改動版本編號,記錄這次重編的目的。當然你可以略過這個步驟,但有機會做成往後升級的混亂,所以也建議花點時間做做這個簡單的工作。

版本編號和更動說明是記錄在套件源碼下 debian/changelog 中。你可以用文字編輯器直接修改這個檔案,但我們一般會先用命令「debchange -i 更動說明」加入版本更動的框架,例如:

debchange -i Backport to sarge

執行後用文字編輯器編輯debian/changelog,你會見到類似以下內容:

mod-cband (0.9.7.5-2) unstable; urgency=low

  * Backport to sarge

 – Fred Random <fred@example.org>  Tue,  3 Apr 2007 17:56:19 +0800

mod-cband (0.9.7.5-1) unstable; urgency=low

粗體為debchange新加的內容。這表示這個例子中原本你下載的套件版本編號是0.9.7.5-1,debchange會順勢把建立編號(build number)加一,變成 0.9.7.5-2 。為讓人一看就知重編後的套是backport,亦方便以後有更新時可以蓋過個版本,我們會把建立號減一,加上「.1sarge1」,令版本編號變成 0.9.7.5-0.1sarge1 。sarge後的 1 表示這個版本被重編的次數。如果在重編後發覺有問題,需要再新編,請將這個數目加一。改動後的debian/changelog 會變成如下:

mod-cband (0.9.7.5-0.1sarge1) unstable; urgency=low

  * Backport to sarge

 — Fred Random <fred@example.org>  Tue,  3 Apr 2007 17:56:19 +0800

mod-cband (0.9.7.5-1) unstable; urgency=low

安裝所需開發套件

接著你需要安裝編譯時所需開發套件,這些套件的名單在 debian/control 的的 Build-Depends 一行中:

$ egrep ‘^Build-Depends:’ debian/control
Build-Depends: debhelper (>= 4.0.0), autotools-dev, apache2-threaded-dev | apache2-prefork-dev, po-debconf

這顯示你需要安裝debhelper、autotools-dev、apache2-threaded-dev和po-debconf等四個套件才可以重編mod-cband,而debhelper必定要4.0.0或以上,apache2-threaded-dev可以用apache2-prefork-dev取替。

最簡單的方法是在系統管理員身份下打「apt-get build-deb 套件」,這命令自然會幫你下載並安裝有關套件所需開發套件。不過很多情況下不會那麼順利,在backport過程中,會遇到在正式發行本中未有所需開發套件,套件名稱改變了或版本不符合等問題,而apt-get build-deb遇到些情況會停下來。這時候你需要自行找出在正式發行本中對應的套件 (如 apache2.2-common 對應 apache2-common 或 apache-common) ,自行手動用 apt-get 下載並安裝,和更動debian/control 的需求。最差的情況下,你有機會需要重編幾個開發套件。

整理設定

接著你需要套件的相依性,即檔案 debian/control 中的 Depends 一行中:

$ egrep ‘^Depends:’ debian/control
Depends: ${misc: Depends}, ${shlibs: Depends}, apache2.2-common

這顯示你需要安裝apache2.2-common套件才可以安裝mod-cband。

你需要檢查一下你現時的發行版本是否有Depends列出的套件和版本是否符合。例如:

$ apt-cache show apache2.2-common
W: Unable to locate package apache2.2-common
E: No packages found

這表示你現時的發行版本並沒有apache2.2-common這個套件。這時候你需要自行找出在正式發行本中對應的套件 (如 apache2.2-common 對應 apache2-common 或 apache-common) ,例如:

$ apt-cache search apache common
apache - versatile, high-performance HTTP server
apache-common - support files for all Apache webservers
apache-perl - versatile, high-performance HTTP server with Perl support
apache-ssl - versatile, high-performance HTTP server with SSL support
apache2-common - next generation, scalable, extendable web server
axyl-lucene - The Axyl Luceneserver
cl-modlisp - Common Lisp interface to the Apache mod-lisp module

apache2.2-common可能對應apache2-common 或 apache-common。你需要更動debian/control 的需求,把Depend一行改成:

Depends: ${misc: Depends}, ${shlibs: Depends}, apache2-common

但最差的情況下,你有機會需要重編幾個相依的套件。

重建套件

現在你可以用debuild重編套件。因為包封套件時需要製做一個系統管理員的環境,我們需要fakeroot的協助。請打:

<

pre>debuild -rfakeroot

現在你的目錄一般會多了最少五個檔案:

$ ls
libapache2-mod-cband_0.9.7.5-0.1sarge1_i386.deb
mod-cband-0.9.7.5
mod-cband_0.9.7.5-0.1sarge1.diff.gz
mod-cband_0.9.7.5-0.1sarge1.dsc
mod-cband_0.9.7.5-0.1sarge1_i386.build
mod-cband_0.9.7.5-0.1sarge1_i386.changes
mod-cband_0.9.7.5-1.diff.gz
mod-cband_0.9.7.5-1.dsc
mod-cband_0.9.7.5.orig.tar.gz

libapache2-mod-cband_0.9.7.5-0.1sarge1_i386.deb 就是重編出來的套件。

安裝新套件

現在你可以安裝新套件了:

# dpkg -i *.deb

相關頁面


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


Beryl 升級0.2.0問題 (for Ubuntu)

Beryl: Ring Window Switcher

久沒有更新Ubuntu裡的Beryl,今天想試一試svn最新的Beryl環形視窗切換器(Ring Window Switcher), 就出了事。整個Beryl都crash了,出了:

libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libdbus.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libcrashhandler.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libdecoration.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libwobbly.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libanimation.so' plugin

apt-get --purge remove ......拆除Beryl再重新安裝都沒有。結果在Beryl Forum找到gourdin提無的解決方法,就是除了 purge 外,還要來個徹底大清洗。方法如下:

先拆除所舊版本Beryl的套件及其有關檔案:

apt-get remove --purge beryl beryl-core beryl-dev beryl-manager beryl-plugins beryl-plugins-data beryl-settings beryl-settings-bindings emerald libberyldecoration0 libberylsettings0 libemeraldengine0

找出所有殘餘的檔案 (除了在用戶home directory中個別用戶的設定檔外) 並放入檔案 /tmp/beryl.list

find / -iname '*bery*' | grep -v "^/home" > /tmp/beryl.list

你最好人手檢查一下 /tmp/beryl.list 有沒有你不想刪除的檔案,然後把裡面提給的檔案全部刪除:

xargs sudo rm -rf </tmp/beryl.list
sync

重新安裝beryl:

apt-get install beryl beryl-core beryl-manager beryl-plugins beryl-plugins-data beryl-settings beryl-settings-bindings emerald libberyldecoration0 libberylsettings0 libemeraldengine0

搞定後,你可以享受最新最酷的Beryl了!!! \(^O^)/


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


Ubuntu 及 Fedora 的美工

這幾個星期,除了工作外,另一忙著執拾OSWikiHK的文章。截取了大量熒幕截圖,大致搞好了《Ubuntu 6.10 (Edgy)安裝手冊》及《Fedora Core 6 安裝手冊》。

一直對 Ubuntu 的一碟設計十分欣賞,加快了下載和安裝的時間亦免了 Fedora/Redhat 等『一碟錯,滿盤皆落索』的問題。6.06 開始的 LiveCD 安裝更是方便,一來安裝選項少,二來更易鼓勵新手安裝。但在美工方面,Fedora 明顯佔優。

我雖然一向對啡橙的色調都頗喜歡,但對 Ubuntu 的佈桌主題始終有點保留,Icon 的設計總是有點醜,立體感不足。但大致對 6.06 的美工還算接受。不過這數月看住 Edgy 的開發,確實有點膽寒。桌面牆紙、起動畫面和登入畫面越來越醜。幸好 Edgy(6.10) 正式發布時用回 6.06 的美工,否然……. 。聽說Mark Shuttleworth為了抽起原本art team的古怪品味設計而受到不少批評。

Fedora Core 6 這次的 DNA 設計也算頗有特色,各畫面的色調和立體感都不俗。然而,總覺得安裝的的畫面有個很大的敗筆 - 就是DNA 的邊線伸向熒幕並斷了頭。感覺有點像恐怖片中的外星人觸髯,古古怪怪的。另一邊綁住a字也有點不自然。

相關連結


Share It: [del.icio.us] [Technorati] [Google Bookmark] [Yahoo MyWeb] [Furl]


Based on Fluidity© 1998-2007 Roy Hiu-yeung Chan