Last Update: "2010/04/15 21:05:10 makoto"
pkgsrc
NetBSD は sysinst を使って設置するのが普通です。
これに含まれているアプリケーションは大変少ないです。
一つ例を挙げます。/usr/bin/less というのがありますが、これは
日本語が読めません。そこで日本語が読める less はどうするか、という場合を考えます。
その時には、pkgsrc に ja-less というものが用意されています。これは
(準備がしてあればですが)、
% cd /usr/pkgsrc/misc/ja-less
% make install
と入力するだけで、使えるようになります(csh/tcsh を使っている場合には rehash が必要です。
(以前はこれは misc/ja-less ではなくて /usr/pkgsrc/japanese/less にありました)。
実際には、上のように入力した後に、全て自動で、
less-358-iso254.patch.tar.gz
less-358.tar.gz
をインターネットから探し出します(版は随時更新されます)。
そうして、それらを
/usr/pkgsrc/distfiles
の下に置き、/usr/pkgsrc/misc/ja-less/work の下に展開して (もしあれば) 必要な修正
を施して make; make install します。make install する時には管理者(root) のパスワード
を聞いて来ます。設置先は /usr/pkg/bin/jless です。何が入るかは、
/usr/pkgsrc/misc/ja-less/PLIST を見ると分ります。
もしインターネットに直接接続していない場合でも、/usr/pkgsrc/distfiles に予め先の二
つを置いておけばそれを使います。また ftp の接続が、直接でなく代理サーバ越の時には環
境変数に必要な設定をしておけば、全く同じように作業が出来ます。
良くある設定例としては次のものです。
(環境変数) ftp_proxy (値) http://proxysever.company.co.jp/
さて、以上のように説明したのですが、実は cd /usr/pkgsrc しても空で、設置したばかりの
時には実は何も入っていません。ではどうするのでしょうか。
依存関係
先に説明した 日本語 less は簡単な例でしたが、実際には「何々を動かすには」「何々が
必要」という依存関係があります。pkgsrc を使うと、それらは、全て自動的に解決してくれ
ます。
この時に、この pkgsrc からの make は、管理者権限で作業していれば、本当に全て自動で
やってくれます。(*2) そうでないと make install する毎に root password を聞いてくるの
で、見守っている必要があります。筆者の場合は、そういう依存するものが多そうなものは初
めから root で作業してしまいます。
(*2)通常なら 管理者(root)権限で作業というのは、必要最少限にするべきです。
README.html
説明は英語ですが、README.html に書いてあります。例えば
/usr/pkgsrc/japanese/less/README.html です。これを見るには lynx や w3m
(/usr/pkgsrc/www/lynx,w3m) が便利です。
w3m /usr/pkgsrc/README.html
cd /usr/pkgsrc/japanese/less
w3m README.html
のようにして読みます。
探す方法
自分が欲しいアプリケーションが /usr/pkgsrc の内のどこにあるのかを探す方法として
いろいろ工夫されているのですが、一番覚え易いのは例えばもし lynx はどこかな、と
いうのでしたら
ls -ld /usr/pkgsrc/*/lynx
のようにするのがいいかと思います。
情報 - pkg_info
pkg_info netatalk-asun
のようにすると、設置済の場合は版数、依存関係、簡単な説明等を表示します。
展開位置
以上説明は /usr/pkgsrc で行って来ましたが、位置は実は自由です。筆者の場合には
/export/pkgsrc で作業をしています。/usr の区画は最少限にしたいというだけの理由です。
bootstrap-pkgsrc
NetBSD 以外の OS で利用するために bootstrap-pkgsrc が用意されています。
Mac OS X の場合の設定作業などは、
別にまとめて
あります。
http://www.ki.nu/software/macosx/pkgsrc.html
target of make
target とは make の各段階です
pkgsrc/mk/bsd.pkg.mk の最初を見ると、次のような字が書いてあります。
# bootstrap-depends
# fetch
# checksum
# depends
# tools
# wrapper
# extract
# patch
# configure
# build
これは make あるいは make all とした時に、この target が次々に実行される
という意味です。逆に言うと、手で、これらを順に実行することが可能です。
例えば、次のようにすると distfiles に持って来ることまで実行します。
make fetch
また、この後に
install
package
clean
等をします。便利な方法の一つは
sudo make package clean
とすることです。これで make install/ make package を実行した後に
make clean をしてくれるので、disk を無駄使いしませんし、
次に cvs 等で更新した時に make するにも都合が良いです。
(いもづる式に全てやってくれるとうれしいのですが、子供側には伝播しないような
気もしています)
各論
pkgsrc で make した後の話は別に用意しています。
pkgsrc 各論
を見て下さい。
|