Linux 的套件管理系統 Linux for PowerPC on iBook 的一些心得整理

Ubuntu 後續的心得筆記

這篇主要是記錄一些跟開發相關的心得,如編譯、打包 deb 套件,建立 APT Repository 等等

如何編譯及打包 deb 套件

參考:
http://wiki.ubuntu.org.tw/index.php/DebPackaging

在我還沒學會 dpkg-buildpackage 之前,我是利用 checkinstall 這個最簡單的方式來產生 deb 檔
舉個實例來說:

cd /tmp
tar zxvf wp_tray-0.5.1.tar.gz
cd wp_tray-0.5.1
./configure
make
# 在這裡,改用 checkinstall 來取代 make install
sudo checkinstall

這樣就會產生 wp-tray 的 deb 套件了,用 checkinstall 是不是很簡單呢?

同樣一個例子,現在,我改用 dpkg-buildpackage 的方式來打包套件

cd /tmp
tar zxvf wp_tray-0.5.1.tar.gz
cd wp_tray-0.5.1
# 使用 dh-make 來產生 debian/* 的相關檔案 (當然,高手都是直接編寫而不靠 dh-make 的)
dh_make --single --email candyz0416@mac.com --copyright GPL -p wp-tray
# 接下來就視需要來修改 debian/changelog debian/control debian/rules 等檔案了
# 最後,再下 dpkg-buildpackage 來編譯及打包套件即可
dpkg-buildpackage -rfakeroot -k0x476A8659
# 若有 gpg key 時加 -k[keyid] 最後就會做 sign 的動作

其他一些相關的指令:
透過 apt-get build-dep 指令可以幫我們安裝要編譯某套件所需的相關套件
如我要編譯 mplayer,先執行

sudo apt-get build-dep mplayer

這樣就會安裝編譯 mplayer 所需的相關套件

dpkg-checkbuilddeps 指令則是跟 apt-get build-dep 功能類似的指令
能幫我們找出編譯某套件時,還需要安裝哪些相關套件

要重新編譯打包某個套件時,可以先用 apt-get source 來取得 source code

apt-get source mplayer
# 下載完還會自動幫我們解開
cd mplayer-0.99+1.0pre7try2+cvs20060117
# 打包套件
dpkg-buildpackage -rfakeroot -k0x476A8659

若我不是透過 apt-get source 去取得 source code 的話,而是直接下載 source code 及 .dsc 檔
那可以利用 dpkg-source -x 來解開

dpkg-source -x mplayer_0.99+1.0pre7try2+cvs20060117-0ubuntu8.dsc
# 然後進去目錄打包套件
cd mplayer-0.99+1.0pre7try2+cvs20060117
dpkg-buildpackage -rfakeroot -k0x476A8659

dpkg-sig 指令可以用來對 deb 套件做 sign 的動作

dpkg-sig --sign candyz wp-tray_0.5.1-2_i386.deb
# 然後可以用 gpg --verify 來驗證
gpg --verify wp-tray_0.5.1-2_i386.deb

dpkg-repack 用來對已經安裝的套件重包,再產生 deb 檔

dpkg-repack wp-tray

建立自己的 APT Repository

參考:
http://www.debian.org/doc/manuals/repository-howto/repository-howto.en.html

這裡我以 Trivial Repository 為主來介紹
假設我是使用 ftp 的方式,因此,我架了一個 ftp server,ftp root 位於 /var/ftp

cd /var/ftp
# 我建了一個 ubuntu 的目錄來放 ubuntu 相關的檔案
mkdir ubuntu
cd ubuntu
# 我分別建了 i386 ppc source 三個子目錄來放 i386 binary、powerpc binary 及 source
mkdir i386 ppc source

接下來,把所有打包好的 deb 檔分別放到 i386 或 ppc 目錄中,把 source 相關的 dsc or tarball 等,放到 source 目錄中

接下來要產生 Packages、Sources 及 Release 等相關檔案

cd /var/ftp/ubuntu
# 產生 Packages 及 Packages.gz
# for i386
apt-ftparchive packages i386 > i386/Packages
apt-ftparchive packages i386 |gzip -9c > i386/Packages.gz
# for powerpc
apt-ftparchive packages ppc > ppc/Packages
apt-ftparchive packages ppc |gzip -9c > ppc/Packages.gz

# 產生 Sources 及 Sources.gz
# for source
apt-ftparchive sources source > source/Sources
apt-ftparchive sources source |gzip -9c > source/Sources.gz

# 產生 Release
apt-ftparchive release i386 > i386/Release
apt-ftparchive release ppc > ppc/Release
apt-ftparchive release source > source/Release

但目前產生的 Release 檔只有 MD5Sum 及 SHA1 的值,還缺少一些相關的標頭資訊

Date: Wed, 19 Jul 2006 01:46:11 UTC
MD5Sum:
 cac43f889883a750d5710ca046cd6b16            13197 Packages
 0d65b1fe38374275626f98ce2a7d48bb             3687 Packages.gz
SHA1:
 617df84dbc9c6b90c0fbd3a8cba556807cf9d301            13197 Packages
 d56cd3ea7cd16fe1a26887577950434c58b36982             3687 Packages.gz

因此,我們必須加入一些相關的 Origin Label Suite Version Architectures Codename Components 等資訊
最後修改完的 Release 檔看起來如下:

Origin: Ubuntu
Label: Ubuntu
Suite: dapper
Version: 6.06
Architectures: i386
Codename: i386
Components: ./
Description: Candyz's Packages for Ubuntu Dapper
Date: Wed, 19 Jul 2006 01:46:11 UTC
MD5Sum:
 cac43f889883a750d5710ca046cd6b16            13197 Packages
 0d65b1fe38374275626f98ce2a7d48bb             3687 Packages.gz
SHA1:
 617df84dbc9c6b90c0fbd3a8cba556807cf9d301            13197 Packages
 d56cd3ea7cd16fe1a26887577950434c58b36982             3687 Packages.gz

最後一個步驟,再產生 Release.gpg 簽名檔即可

gpg -a -b -o i386/Release.gpg i386/Release
gpg -a -b -o ppc/Release.gpg ppc/Release
gpg -a -b -o source/Release.gpg source/Release

如何把建好的 APT Repository 加到 /etc/apt/sources.list 中
在 /etc/apt/sources.list 中加上:

# for i386
deb ftp://my.ftp.site/ubuntu i386/

# for powerpc
deb ftp://my.ftp.site/ubuntu ppc/

# for source
deb ftp://my.ftp.site/ubuntu source/

MultiMedia for PowerPC

目前,在我的 iBook 上使用 Ubuntu 已經都可以播放 mov avi wmv 及 rmvb 等格式的檔案了
我是使用 mplayer + 然後加上 jserv 的 patch file - wmv3-support-via-vc1.diff.gz
另外,下載及安裝 https://helixcommunity.org/download.php/1346/realplay-10.0.5.756-linux-2.2-libc6-gcc32-powerpc.bin
把 [RealPlayer]/codecs/ 下的檔案複製一份到 /usr/lib/win32 底下
這樣就可以用 mplayer 來播放 rmvb 的檔案了

我打包好的 mplayer 等相關套件,可以到 這裡 把我的 APT Repository 加進去 sources.list 中,然後利用 apt 來下載

另外,我也打包好了 Gnash 套件,有一些 flash 的網頁在裝了 gnash-plugin 後,就可以看了
不過,到目前為主,YouTube 及 Google Video 還是無法看的

Comments are closed.

FireStats icon Powered by FireStats