Debianでのオリジナルパッケージの作成方法です。
debパッケージは、公開用では無く、個人で使用するレベルの物であれば結構手軽に作成できます。
なお、公開(配布)用パッケージを作成するためには、ここで説明する手順では不足ですのでご注意ください。
Debianパッケージを作成するための情報は以下のマニュアルが参考になります。
http://www.debian.org/doc/maint-guide/
|
| 1.まずはパッケージを作成するために必要なものをインストールします。 |
| autoconf | dpkg-dev | libc6-dev | automake | fakeroot |
| libtool | binutils | file | lintian | debhelper |
| gpc | make | dh_make | g77 | patch |
| devscripts | g++ | perl |
|
|
|
*公開用(配布用)パッケージを作成するなら、"gnupg"が必要ですが、今回は使用しません。
その他、作成するソフトに依存するライブラリパッケージやdevパッケージも必要になります。
あまり参考にならないでしょうが、私の環境(sarge,gnome)では、以下の物を追加でインストールしています。(RedHatなどのGnome開発パッケージ一式相当です。)
libacl1-dev libatk1.0-dev libart-2.0-dev libbonobo2-dev libbonoboui2-dev libeel2-dev libfreetype6-dev libghttp-dev libglib1.2-dev libglib2.0-dev libgtk1.2-dev libgtk2.0-dev libgtk1.2-dev libgtk2.0-dev libgsf-1-dev libgnome-desktop-dev libgimpprint1-dev libgnomeprint2.2-dev libgnomeprintui2.2-dev libgtkhtml2-dev libimlib2-dev libkrb5-dev libmikmod2-dev libogg-dev libpng2-dev libpopt-dev librsvg2-dev libreadline4-dev libssl-dev libtiff3g-dev libxslt1-dev libxml2-dev imlib1-dev python2.3-dev python-gnome2-dev python-dev xaw3dg-dev libpng3
*実際は依存関係などで、さらに多くのパッケージがインストールされます。
|
| 2.作業場所の作成と、オリジナルソースでのコンパイル、動作テスト |
まず、作業場所を作成します。
%mkdir ~/deb
次に、ソースを展開しきちんとコンパイルできるか試しましょう。
コンパイルできたら、実際にインストールして動作に支障が無いか、他に影響が無いか試しましょう。
プログラムが正常に動作したなら、一旦削除しまます。
%tar zxvf gimp-2.0pre3.tar.gz -C ~/deb
%cd ~/deb/gimp-2.0pre3
%./configure
%make
%su
#make install
*削除は、make uninstallが可能な物もありますが、make install時にログを取っておかないと、削除する時大変です。
|
| 3.パッケージを作成するためのソースを展開する |
テストでコンパイルしたソースディレクトリは削除し、新たにソースを展開しましょう。
%rm -R ~/deb/gimp-2.0pre3
%tar zxvf gimp-2.0pre3.tar.gz -C ~/deb
|
| 4.パッケージ作成のための基本情報ファイルを作成します |
展開したソースのディレクトリに移動し以下のコマンドを発行してください。
%cd ~/deb/gimp-2.0pre3
%dh_make -e [MailAddress] -f ../gimp-2.0pre3
パッケージの種類を聞いて来ます。
single binary = 単一のパッケージで利用するアプリケーション
multiple binary = 複数のパッケージで構成されるアプリケーション
library = 共通ライブラリパッケージ
kernel modules = Kernelモジュールのパッケージ
今回は single binaryの"s"を選択。
作業が終了すると、~/deb/gimp-2.0pre3/debian/というディレクトリが作成され、その中にdebパッケージの作成に必要なファイルがいくつか作成されます。
|
| 5.パッケージの基本情報ファイルの編集 |
| [control] ファイルの編集。(gimp-2.0pre3/debian/control) |
|
controlファイルは雛型が作成されているので、それを使用します。
今回の例では、こんな感じ。
(上半分はsource用の情報、下半分がバイナリ用の情報です。)
|
Source: gimp
Section: unknown
Priority: optional
Maintainer: Tomoya Sakurai <tomoya_sakurai@**.******.com>
Build-Depends: debhelper (>= 4.0.0)
Standards-Version: 3.6.0
Package: gimp
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>
|
|
この雛型のcontrolファイルを編集していきます。
今回は個人利用を想定しているので、最低限の修正のみ行います。
ちなみに、各項目の説明は以下の通りです。
|
| Section: |
Debianでのパッケージの種類を以下から指定します。
main-----完全にフリー(省略時のデフォルト)
non-free-実際の所フリーであるとはいえないソフトウェア
contrib--それ自身はフリーだが、non-free なソフトウェアが無ければ使えないもの
また、SubSectionとしていくつかを指定できます。
(admin,base,deval,x11,doc,libs,mail,net,graphics) など
|
| Priority: |
優先度をしていします。通常は、"optional"でいいでしょう。 |
| Maintainer: |
パッケージを作成した人の情報を記述します。 |
| Build-Depends: |
このソフトをBuildするのに必要な、他のパッケージを記述します。
複数必要な場合は、カンマで区切ります。 |
| Depends: |
依存するソフトを記載します。
${shlibs:Depends}, ${misc:Depends}を指定し自動で検出することもできます。
|
| Description: |
アプリケーションの概要を記載します。 |
以下が、出来上がったcontrolファイルです。
|
Source: gimp
Section: graphics
Priority: optional
Maintainer: Tomoya Sakurai <tomoya_sakurai@**.******.com>
Build-Depends: debhelper (>= 4.0.0)
Standards-Version: 3.6.0
Package: gimp
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Description: The GNU Image Manipulation Program,This is a pre-release of GIMP version 2.0. Actually it still is GIMP-1.3,the developers version of The GIMP.
|
|
| [copyright]ファイルの編集。(gimp-2.0pre3/debian/copyright) |
|
本来gimpのCopyright全文を含める必要がありますが、GnuGPL,LGPL、BSDライセンス準拠し、Debianの/usr/share/common-licenses/に含まれる適切なファイルを参照することで問題無ければ以下のようになります。
ライセンスがDebianの/usr/share/common-licenses/内に該当しない場合は、ソースに付いているCopyrightを記述すればいいでしょう。
今回は、こんな感じで。
|
This package was debianized by Tomoya Sakurai <tomoya_sakurai@**.*****.com> on
Tue, 10 Feb 2004 22:32:30 +0900.
It was downloaded from http://www.gimp.org/
Upstream Author(s): Email Brink <>
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
You are free to distribute this software under the terms of the GNU General Public License.
On Debian systems, the complete text of the GNU General Public License can be found in the file `/usr/share/common-licenses/GPL'.
|
|
| [changelog] ファイルの編集。(gimp-2.0pre3/debian/changelog) |
|
今回は自動で作成されたものをそのまま使用します。
参考までに中身は、
|
gimp (2.0pre3-1) unstable; urgency=low
* Initial Release.
--Tomoya Sakurai <tomoya_sakurai@*.***.com> Tue,10 Feb 2004 22:32:54 +0900
|
|
| [rules] ファイルの編集。(gimp-2.0pre3/debian/rules) |
|
ここで、CFLAGSやConfigureオプションを編集します。
中見て適時変更してください。
|
| 6.パッケージの作成とインストール |
%cd ~/deb/gimp-2.0pre3
%dpkg-buildpackage -rfakeroot
正常にbuildできれば、パッケージの作成は成功です。
作成されたファイル
gimp_2.0pre3.orig.tar.gz
これは単にDebian標準に合わせるために名前を変更しただけで、中身はオリジナルなソースコードのtarアーカイブです。
これはdh_makeを最初に実行した際、「-f」オプションを指定した時点で作成されています。
gimp_2.0pre3-1.dsc
ソースコードの内容の概要です。このファイルはあなたの「control」ファイルから生成されます。
GnuPGを利用した場合は、このファイルはGPGで署名されます。
gimp_2.0pre3-1.diff.gz
この圧縮されたファイルには、あなたがオリジナルのソースコードに行なったすべての変更や追加などの情報が「unified diff」の形式で含まれています。
gimp_2.0pre3-1_i386.changes
メンテナンス記録です。
GnuPGを利用した場合は、このファイルはGPGで署名されます。
gimp_2.0pre3-1_i386.deb
作成されたバイナリパッケージです。
最後に、出来上がったパッケージをインストールします。
#dpkg -i gimp_2.0pre3-1_i386.deb
実際に配布するパッケージを作成するには、まだまだ必要な作業や、覚えなければいけないルールが多くあります。
あくまで個人利用を目的としていれば、この程度の手順でも実用になるでしょう。
もっと詳しく調べたい場合は、http://www.debian.org/doc/maint-guide/を参考にしてください。
このページは、http://www.debian.org/doc/maint-guide/を参考に、そして最低限必要な部分を抜き取り作成してあります。
|