LANDISK HACKING DIARY
Since2005/8/17
TOPへ戻る

 


   SH4用のdebパッケージの作成

 

 


※最後まで成功はしていないので「こうやって作るんだよ」ぐらいの参考程度に。

 基本的にdebian.dodes.org にあるパッケージのバージョンは古いものが多いので新しいパッケージを使いたい場合は、ソースからダウンロードしてきてdeb 化する。まずは、apt-get source でソースをダウンロードし、展開(解凍)する際に必要となるdpkg-sourceコマンドをインストールする。dpkg-sourceは、dpkg-devに含まれている。他にも、root 権限を使わずに build するためのfakeroot もインストールしておく。

landisk:~# apt-get install dpkg-dev
landisk:~# apt-get install fakeroot


apt-line に以下の行を追加する。stable か、sid にするかは好みで。

deb-src http://ring.asahi-net.or.jp/pub/linux/debian/debian stable main contrib non-free
deb-src http://ring.asahi-net.or.jp/pub/linux/debian/debian-jp stable-jp main contrib non-free

deb 化したいソースをダウンロードしてくる。ここでは、squid をdeb 化してみることにする。依存関係のエラーがでなければ、1階層上のディレクトリにdeb パッケージが作成される。だが、SH4では依存関係のエラーがでることが多いと思うので、依存しているパッケージから先にインストールしていく。deb 化するパッケージによっては、インストールしてもきりがないぐらいに依存関係エラーが発生し、際限なく続くこともあるので大物?をdeb 化しようとする際は要注意。

landisk:~# cd /usr/local/src
landisk:~# mkdir squid
landisk:~# cd squid

landisk:~# apt-get source squid
landisk:~# cd squid-2.5.9/
landisk:~# dpkg-buildpackage -rfakeroot


以下のようなエラーが発生する。gcc,libldap2-dev,libpam0g-dev,sharutils,dpatch,po-debconf がないと言われている。debian.dodes.org にバージョンに適したバイナリパッケージが存在すれば apt-get で、ない場合は、上記と同じような手順を踏んでdeb 化していき、依存関係のエラーをひとつづつ潰していく。

landisk:~# dpkg-buildpackage -rfakeroot
dpkg-buildpackage: source package is squid
dpkg-buildpackage: source version is 2.5.9-10
dpkg-buildpackage: source maintainer is Luigi Gangitano <luigi@debian.org>
sh: line 1: gcc: command not found
dpkg-architecture: warning: Couldn't determine gcc system type, falling back to default (native compilation)
sh: line 1: gcc: command not found
dpkg-architecture: warning: Couldn't determine gcc system type, falling back to default (native compilation)
dpkg-buildpackage: host architecture is sh4
sh: line 1: gcc: command not found
dpkg-architecture: warning: Couldn't determine gcc system type, falling back to default (native compilation)
dpkg-checkbuilddeps: Unmet build dependencies: libldap2-dev libpam0g-dev sharutils dpatch (>= 2.0.9) po-debconf
dpkg-buildpackage: Build dependencies/conflicts unsatisfied; aborting.
dpkg-buildpackage: (Use -d flag to override.)


apt-get でインストールできるものはインストールする。

landisk:~# apt-get install gcc
landisk:~# apt-get install libldap2-dev
landisk:~# apt-get install libpam0g-dev
landisk:~# apt-get install sharutils


dpatch,po-debconf は、debian.dodes.org にないのでソースからダウンロードしてきて、deb化する。依存関係がでなくなるまで同様の作業を繰り返す。地道な作業だが、debパッケージが溜まってくるとなかなか楽しい。でも、できるならやりたくないのでapt-get でインストールできるものはそうしている。

なお、squid のdeb 化が終了すると、以下の4つのdeb パッケージができあがる。必要に応じてインストールすると良い。

squid_2.5.9-10_sh4.deb
squid-common_2.5.9-10_all.deb
squidclient_2.5.9-10_sh4.deb
squid-cgi_2.5.9-10_sh4.deb


ここまで作成しておいてなんだが、deb パッケージのインストール時にまた依存関係でこけて、python やdebconf 、libqt-perl などを求められたので深追いはしないことにします(笑)。





TOPへ戻る
 
Copyright © KORO All Rights Reserved.