Debianパッケージを自作してみる

ふとDebianパッケージを自作してみたくなったので、パッケージビルドをやってみた話。

今回はpng2aaのソースをビルドしてDebianパッケージにしてみる。

github.com

 

開発環境構築

いつもの。

$ sudo apt-get install build-essential

これでgccとかmakeとかのDebianパッケージ関係なくプログラミングで使う開発環境をインストールできる。このパッケージは配布したいパッケージの依存関係に含めなくてよい。

$ sudo apt-get install devscripts

これはDebianパッケージの作成に必要なツールをインストールできる。debuildとかそのへん。

$ sudo apt-get install dh_make

dh_makeは普通のソースをDebianパッケージ用のフォーマットに変形してくれる。

 

ソースをダウンロード

$ mkdir ~/png2aa
$ cd ~/png2aa

適当にワークディレクトリを作って、移動する。

$ wget https://github.com/shumon84/png2aa/archive/v1.2.tar.gz

パッケージをビルドしたいプログラムのソースを自分のリポジトリからダウンロードしておく。

もし、Debianパッケージを作ってみたいけど、特に配布したい自作プログラムもない場合は、適当に公式パッケージのソースをダウンロードしてきてパッケージビルドまでやってみると良いかもしれない。

$ apt-get source unzip

例として、unzipのソースをダウンロードするにはこうする。

もしsourceができない場合は、deb-srcがコメントアウトされていると思うので、/etc/apt/source.listを編集。

最近のDebian系のディストリビューションは初期設定でsourceができないようになっていることが多いみたい。

ビルドにはunzipの関連パッケージも必要なので、それもダウンロードする。

$ sudo apt-get build-dep unzip

 

パッケージをビルドする

まずはダウンロードしてきたソースコードを<package_name>_<upstream_version>.orig.tar.gzの形式になるように名前を変更する。

$ mv v1.2.tar.gz png2aa_1.2.orig.tar.gz

例えば今回は配布したいパッケージ名が"png2aa"でバージョンが"1.2"なので、"png2aa_1.2.orig.tar.gz"となるように変更した。

$ tar zxvf png2aa_1.2.orig.tar.gz

ソースをワークディレクトリ上に展開する。 

$ ls -F
png2aa-1.2/  png2aa_1.2.orig.tar.gz

となっていればOK。

展開したディレクトリ上でdh_makeを実行します。

$ cd png2aa_1.2/
$ dh_make

パッケージの種類を聞かれるますが、png2aaはsingleアプリケーションなので、sをタイプします。ライブラリの場合はlをタイプしてください。

これでpng2aa-1.2/debian/が生成されます。

makeが通るか試してみます。

$ debian/rules build

もしmakeがこけるなら、debian/rulesを編集してみてください(中身はただのMakefileなので簡単に編集できます)

 次は、いよいよDebianパッケージをビルドします

$ sudo dpkg-buildpackage -us -uc

 これでパッケージができあがります。簡単だね。

一つ上の階層に.debファイルがあるはずなので確認してみてください。

これをローカルにインストールしたい場合は

$ sudo debi

これでパッケージを追加できるので、

$ sudo apt-get install png2aa

でインストールできるようになります。

 

ここからさらにDebianにパッケージをアップロードしたい場合は、dputとかをする必要がありますが、色々さらに設定しないといけないみたいです。

 

この記事は、以下の情報を元に書かれています。

Ubuntu 16.04: apt sourceでソースコードをダウンロードする - Narrow Escape

debパッケージ作成方法をステップバイステップでまとめました

独学Linux : シンプルなソースコードからdebパッケージを作成する方法

Debian パッケージの作り方

Debian 新メンテナーガイド

Debianパッケージングチュートリアル

debianパッケージの作り方 - ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き -

Ubuntu|負けない子犬のブログ -7ページ目

Debian Package

15.3. APT 用のパッケージリポジトリの作成

 

Debian 新メンテナーガイドDebianパッケージングチュートリアルを読むとDebianパッケージについて大体理解できると思う。