ipkgファイル作成 Edit

ipkg-buildを使ったipkgファイルの作成をしてみる。

まずはjless。
ipkg-buildは実際のインストールイメージを適当なディレクトリに展開してCONTROLディレクトリ(と、controlファイル、必要に応じてシェルスクリプト)を追加すればいいだけのようなので、とりあえず /hdd3/Documents/work/ipkg/less 以下に作ってみる。

インストール済みのbinaryを持ってきてディレクトリ構成を再現してもいいんだけど、ファイルの選択が面倒なので make に任せることにする。

# make prefix=/hdd3/Documents/work/ipkg/less/usr/local/ install

これで /hdd3/Documents/work/ipkg/less 以下にインストールイメージが作られた。

# cd /hdd3/Documents/work/ipkg/less
# find
.
./usr
./usr/local
./usr/local/bin
./usr/local/bin/less
./usr/local/bin/lesskey
./usr/local/bin/lessecho
./usr/local/man
./usr/local/man/man1
./usr/local/man/man1/less.1
./usr/local/man/man1/lesskey.1
# 

次に CONTROL ディレクトリと control ファイルを作成 内容はこんな感じ

CONTROL/control:

Package: jless
Priority: optional
Section: misc
Version: 358-iso254-1
Architecture: arm
Maintainer: Keishi Makiyama
Description: Zaurus ported 'jless'
  install to /usr/local/
#

ついでに、インストール後に環境変数LANGを設定するスクリプトも書いてみる。

CONTROL/postinst:

#!/bin/sh
# jless Install Script
#  postinst
#
if [ -e /etc/profile ]; then
  if [ `grep -c -e "export\>.*\<LANG\>" /etc/profile` -eq 0 ]; then
    cp -p /etc/profile /etc/profile.less.changed
    echo "LANG=ja_JP"  >> /etc/profile
    echo "export LANG" >> /etc/profile
  fi
fi

/etcにprofileがあった場合で、LANGをexportしていなければ、現在の設定を保存し、LANG=ja_JPとexport LANGの2行を追加するという簡単な奴。
/etc/profileが無ければ何もしませんし、既に何らかの設定がされている場合はその内容を変更することはありません。
本当は postrm スクリプトも作ってバックアップを戻すべきなのかもしれないが、LANGの設定自体はless以外でも有効なのでとりあえず放置しておく。 というか、lessのインストールでLANGの設定を入れる事自体不要で、使用者に任せるべきなのかもしれないが、とりあえずipkg作成の練習ということで(笑)

それでは、いよいよ作成。

# cd ..
# ipkg-build less
Packaged contents of less into ./jless_358-iso254-1_arm.ipk
# 

ふむ、あっさりできた(笑) 実機でインストール/アンインストールして問題ないことを確認。ちゃんと /etc/profile の書き換えも正しく行えていたので、これにて終了。

続いてtarもipkg化して見る。

# make DESTDIR=/hdd3/Documents/work/ipkg/tar/ install

パラメータの書式が less の時と微妙に違うが、概ねどちらかのパターンになるようだ。
念のため Makefile の内容を調べて見るのがいいだろう。 で、CONTROL/controlの内容はこんな感じ

Package: tar
Priority: optional
Section: misc
Version: 1.14-1
Architecture: arm
Maintainer: Keishi Makiyama
Description: Zaurus ported 'GNU tar'
  install to /usr/local/

lessとほとんど変わらない。
こちらは設定ファイルも何もないのでスクリプトは不要。

準備ができたら作成

# ./ipkg-build tar
Packaged contents of tar into ./tar_1.14-1_arm.ipk
# 

うむ。簡単だね(笑)

...という感じで patch と diffutils のipkgも作ってしまった。


カテゴリ:日記:Zaurus:Software


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-11-19 Mon 17:45:59 JST (4347d)