前回、
メタパッケージの簡単な作り方を紹介しました。テンプレートファイル(前回の例だと
mypack)を修正すればいろんなパッケージを作成できますが、今回は実際に作成されたメタパッケージを雛形にして、いろいろと修正してみます。
とりあえず、前回と同様にメタパッケージを作成します。
equivs-control mypack
(mypackファイルの修正)
equivs-build -f mypack
equivsはパッケージ作成時点で署名をしようとするので、その方法(
gpgとか
pgpとか)を用意しておかないとエラー終了しますが、この時点では問題ありません。
ソースパッケージの雛形を展開します。
tar xzvf mypack_1.0.tar.gz
mv equivs.2bbriY/ mypack-1.0
cd mypack-1.0
ここの"
1.0"はバージョン番号です。また、展開されたソースディレクトリ名の"
2bbriY"はランダムな文字列になります。2行目でソースディレクトリの名前を、「
パッケージ名-バージョン番号」という形にしています。
mypack-1.0ディレクトリの中身は、通常ならいろんなファイルが存在します。ただ、今回は依存関係を解決するだけのメタパッケージなので、パッケージを制御するための
debianディレクトリと、
changelogファイルなどをインストールするための
docディレクトリだけです。
パッケージの修正はこの
mypack-1.0ディレクトリの中身をいじることになります。修正を加えたら
changelogを修正します。
debianディレクトリの中で
dch -i
を実行すればテキストエディタ(Ubuntuの標準だと
nano)が起動しますので、
changelogの他の部分を見ながら手を加えます。
-iというオプションは自動的にバージョン番号を一個あげることを意味します。Ubuntuだと、一個バージョンがあがると、"
1.0ubuntu1"になります。
UbuntuやDebianにはバージョン番号の付け方にルールがあります。詳しいことはパッケージングガイドとかを読んでください(まだよくわかってないんです。
1.0ubuntu1じゃなくて
1.0-0ubuntu1なんじゃないのか、とか)。テキストエディタを終了すると自動的に現在のディレクトリ名が
mypack-1.0から
mypack-1.0ubuntu1に変わります。
修正が終われば、次のコマンドでパッケージを作成します。
debuild -us -uc
これは
mypack-1.0ubuntu1ディレクトリの下、
debianディレクトリの上で実行します。
-us -ucは作成されるパッケージと
.changesに署名をしないというオプションです。
上記のコマンドによって、
mypack-1.0ubuntu1ディレクトリの
上に、パッケージファイルが作成されます。具体的には
mypack_1.0ubuntu1.dsc
mypack_1.0ubuntu1.tar.gz
mypack_1.0ubuntu1_all.deb
mypack_1.0ubuntu1_i386.build
mypack_1.0ubuntu1_i386.changes
が作成されます。
あとはこの流れを繰り返していくことになります。