お手軽 deb パッケージ作成方法

ファイルツリーがあれば,Debian パッケージは簡単に作れるようだ.

作成法

ファイルツリーの構築

まず適当なディレクトリを作成して,その下に''/''(ファイルシステムのルート)からのインストールイメージを構成する.

% mkdir hogehoge
% cd hogehoge
% mkdir -p ./usr/local/hogehoge
% echo "HOGEHOGE" > ./usr/local/hogehoge/README
DEBIANディレクトリの作成

DEBIAN ディレクトリに4つのファイルを設置する必要があります.

  • compat

Version を指定するらしい.ここは "2.0" で.

2.0
  • control

パッケージ情報が書かれたファイル.依存関係とかバージョンなど.ひとまず下記のようにしてみる.

Package: hogehoge-package
Version: 1.0.0-01
Section: interpreters
Priority: optional
Architecture: i386
Essential: no
Suggests: 
Maintainer: Shin-ichiro OGAWA <rust.stnard@gmail.com>
Conflicts: 
Replaces: 
Provides: 
Description: Hogehoge Package.
  • postinst

インストール後に実行する実行可能なシェルスクリプト.何もしなければ下記のように.

#!/bin/sh
  • prerm

インストール前に実行する実行可能なシェルスクリプト.何もしなければ下記のように.

#!/bin/sh
パッケージの作成

下記のコマンドで作成します.

% cd ../
% ls
hogehoge
% dpkg-deb -b hogehoge 
dpkg-deb: `hogehoge.deb' にパッケージ `hogehoge-package' を構築しています。
% sudo dpkg -i hogehoge.deb 
[sudo] password for ogawa: 
未選択パッケージ hogehoge-package を選択しています。
(データベースを読み込んでいます ... 現在 XXXXXX 個のファイルとディレクトリがインストールされています。)
(hogehoge.deb から) hogehoge-package を展開しています...
hogehoge-package (1.0.0-01) を設定しています ...

% cat /usr/local/hogehoge/README 
HOGEHOGE
% sudo dpkg -r hogehoge-package
(データベースを読み込んでいます ... 現在 XXXXXX 個のファイルとディレクトリがインストールされています。)
hogehoge-package を削除しています ...
dpkg - 警告: hogehoge-package の削除中、ディレクトリ `/usr/local' が空でないため削除できませんでした。

まとめ

と言う感じに簡単に作れました.これで Rails とか rubygems とか fakeroot 使えばパッケージ作れそうです.