2010年6月14日 星期一

Debian Package (3) - 製作一個簡單但是有點用處的 Debian Package

Taiwan Radio Tuner 為例
現在要製作一個利用 Google Chrome 的 App Mode 來收聽網路廣播的程式
另外還要利用 Alltray 讓這個網頁應用程式可以隱藏在系統狀態列裡面
所以只要製作一個 taiwan-radio-tuner.desktop 安裝到 /usr/share/applications/ 底下就可以了
[Desktop Entry]
Name=Taiwan Radio Tuner
Exec=alltray google-chrome --app=http://fd.idv.tw/radio/
Icon=google-chrome
Type=Application
Categories=GTK;Application;AudioVideo;Audio;Player;
不過因為這個廣播程式會需要安裝一些額外的 codecs 才能夠正常地播放音樂
所以要額外安裝 gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg 這幾個套件

但是這些步驟也許對一般的使用者來說太過複雜了,所以製作一個 Debian Package
首先準備好 taiwan-radio-tuner 的目錄
$ mkdir taiwan-radio-tuner-0.1
把上面的 taiwan-radio-tuner.desktop 放進去
$ mv taiwan-radio-tuner.desktop taiwan-radio-tuner-0.1
然後在 taiwan-radio-tuner-0.1 底下產生 debian 這個目錄
$ cd taiwan-radio-tuner-0.1
$ mkdir debian
接下來開始準備 debian/control
Source: taiwan-radio-tuner
Maintainer: Shih-Yuan Lee (FourDollars) <fourdollars@gmail.com>
Section: contrib/web
Priority: extra
Standards-Version: 3.8.4
Homepage: https://chrome.google.com/extensions/detail/hacebidkncpkfenhpapdbkcefalehepa

Package: taiwan-radio-tuner
Architecture: all
Depends: google-chrome, alltray, gstreamer0.10-plugins-bad, gstreamer0.10-plugins-ugly, gstreamer0.10-ffmpeg
Description: Listen to the radio of Taiwan.
 The easiest way to listen to Internet Radio of Taiwan.
這邊要注意到 Section 這欄寫的是 contrib/web 寫成 contrib 是因為這個套件相依到 google-chrome 這個 non-free 的套件

規則如下:
  • 如果本身是 free 的套件卻相依到 non-free 的套件就應該放在 contrib 底下。
  • 如果本身是 non-free 的套件當然就是直接放在 non-free 底下,這種情況會是 non-free/web
  • 如果本身是 free 的套件也沒有相依到 non-free 的套件,那麼寫成 web 就可以了。
這是參考 Debian Policy Manual - 2.4 Sections 來分類的,如果在 Ubuntu 上可能會有另外的分類方式。

還有準備 debian/compat
$ echo 7 > debian/compat
準備 debian/rules
$ cp /usr/share/doc/debhelper/examples/rules.tiny debian/rules
最後使用 dch --create 來產生一個 debian/changelog
taiwan-radio-tuner (0.1) experimental; urgency=low                                            

  * Initial release.

 -- Shih-Yuan Lee (FourDollars) <fourdollars@gmail.com>  Mon, 14 Jun 2010 12:47:29 +0800
不過還有一個很重要的檔案要準備 debian/install 內容如下
taiwan-radio-tuner.desktop /usr/share/applications/
也就是要把 taiwan-radio-tuner.desktop 安裝到 /usr/share/applications/ 底下的意思
如果沒有這個 debian/install 來指定安裝的地方,dpkg 就不會知道這個 taiwan-radio-tuner.desktop 要安裝到哪裡
所以也就不會把 taiwan-radio-tuner.desktop 包裝在 Debian Package 裡面

以上都準備好,最後就可以執行 dpkg-buildpackage -rfakeroot -uc -us -tc 來產生 Debian Package 了~

把產生出來的 Debian Package 安裝進系統後就應該可以在 GNOME 系統選單裡面看到一個 Taiwan Radio Tuner 的 Icon 可以點選了~
張貼留言