オリジナルパッケージの作成
- はじめに
- FreeBSD, NetBSD, OpenBSD のパッケージの作成方法について解説します。
今回は例として、/usr/local/proftpd にインストール済みの
ProFTPD(MySQL認証対応)をパッケージ化してみます。
- パッケージ材料の準備
# cd /tmp (作成場所はどこでも構いません)
# vi COMMENT
「% pkg_info」でパッケージ一覧が表示されますが、その際の右辺に表示されるメッセージを記入します。(Comment:)
A ftp daemon with authentication over MySQL
# vi DESC
「% pkg_info パッケージ名」で表示される詳細コメントを記入します。(Description:)
This Software is a ftp daemon 'ProFTPD'.
>> NOTICE <<
This package needs MySQL libraryes.
So, when you run 'pkg_add', mysql-server package will be added together.
About build for Database and Table, Please check the below
URL. It is ProFTPD Official Site.
http://www.proftpd.org/
# find /usr/local/proftpd ! -type d | sed 's/^\/usr\/local\///' > PLIST
上記コマンドでインストール済みのディレクトリからファイルの一覧を抽出します。
# vi PLIST
いよいよ具体的なパッケージ内容の情報を作成します。
下記のフォーマットを参考にして下さい。
@name proftpd
@cwd /usr/local
@exec mkdir -p %D/proftpd/var/proftpd
@pkgdep mysql-server-4.0.20
proftpd/bin/ftpcount
proftpd/bin/ftpwho
proftpd/sbin/ftpshut
proftpd/sbin/proftpd
proftpd/etc/proftpd.conf
man/man1/ftpcount.1
man/man1/ftpwho.1
man/man5/xferlog.5
man/man8/ftpshut.8
man/man8/proftpd.8
@unexec rm -r %D/proftpd
@cwd .
@ignore
+COMMENT
@ignore
+DESC
@exec 本パッケージのインストール時(pkg_add)に別途実行したい
コマンド(ディレクトリの作成など)がある場合に記述します。
@pkgdep 依存関係のパッケージがある場合は、必要なパッケージを記述します。
ここで記載することで、本パッケージのpkg_add時に依存パッケージも
合わせて自動的にpkg_addされます。
@unexec 本パッケージのアンインストール時(pkg_delete)に別途実行したい
コマンド(ディレクトリの削除など)がある場合に記述します。
最後にパッケージ情報を元にデータをアーカイブ化し、
そのアーカイブを圧縮すれば、オリジナルパッケージの完成です。
# pkg_create -f PLIST -c COMMENT -d DESC proftpd-1.2.10-mysql.tar
# cat proftpd-1.2.10.tar | gzip >> proftpd-1.2.10-mysql.tgz