pkgsrc Guide

目次

pksrcをインストールする

Getting pkgsrc for the first time

NetBSD以外のシステムでpkgsrcを使う

Chapter 3. Using pkgsrc on systems other than NetBSD
README.linux

bootstrapスクリプトはprefixやデータベースのパスを変更できるので, /usr/pkg以下ですべて完結させたい場合は

# ./bootstrap --prefix=/usr/pkg \
--pkgdbdir=/usr/pkg/.db \
--sysconfdir=/usr/pkg/etc

とします.オプションの詳細については

$ ./bootstrap --help

を参照してください.

いつもの使い方

ソフトウェアをインストールする

日本語用の入力メソッドibus-mozcをインストールする場合は

# cd /usr/pkgsrc/inputmethod/ibus-mozc
# make install clean clean-depends

とします.

ソフトウェアをアンインストールする

makeのdeinstallターゲットを実行します.

# cd /usr/pkgsrc/inputmethod/ibus-mozc
# make deinstall

pkg_deleteコマンドを使うのもよいです.

# pkg_delete ibus-mozc

ソフトウェアをなんとなく探す

おおよそのソフトウェアにはそれなりに分かりやすい名前がつけられているものです. たとえばRuby系のソフトウェアを探したいという大雑把な気持ちを解決するには

# cd /usr/pkgsrc
# ls ./* | grep ruby | less

のようにpkgsrcに収録されている全パッケージ名から「ruby」という文字列が含まれているものを 抜き出すと,それなりに絞り込めたりします.

あるいは

# cd /usr/pkgsrc
# grep -r "ruby" ./*/*/DESCR | less

のように,各ディレクトリ内にある,パッケージについての説明が書かれたファイルに対して grepを使って絞り込んだりもします.

検索用のソフトウェアもあるのでしょうが僕は使ったことがありません. pkgsrcはすべてテキストファイルで構成されているので, テキスト処理に強いUnixコマンド群で完結してしまうためです.

/etc/mk.confの例

実際に使っているmk.confです.

MAKE_JOBS= 4 # make(1)のジョブ数を指定する.
ACCEPTABLE_LICENSES= vim-license # Vimのライセンスへ同意. 
ACCEPTABLE_LICENSES+= ruby-license # Rubyのライセンスへ同意.

pkgsrcではmakeの-jオプションに直接数字を渡すのを許さないので /etc/mk.confに書く必要があります.

なぜソースコードからビルドしインストールするのか

DebianやCentOSのようなLinuxディストリビューションではコンパイル済みのパッケージを インストールするので,もしかするとなぜソースコードからビルドしパッケージを 作らなければならないのか疑問に思う方がいるかもしれません.

どう考えてもコンパイル済みのパッケージをそのままインストールしてしまったほうが早いです. インストール対象のソフトウェアにこだわりがない限りはそうした方が幸せでしょう. pkgsrcではコンパイル済みのパッケージをそのままインストールするためのターゲットがあります.

# cd /usr/pkgsrc/lang/python
# make bin-install

bin-installターゲットはコンパイル済みのパッケージがあればそれを直接インストールし, なければソースコードを持って来てビルド,インストールします.

それでもなぜソースコードからビルドしなければならないのか?その理由は3つあると考えます.

理由のひとつは,オプションを任意で付け加えられるからです. たとえばFirefoxはソースコードからビルドするのにかなりの時間を要します. しかしbin-installターゲットでインストールされるコンパイル済みのFirefoxパッケージは pulseaudioを使っているのか,ossを使っているのか,alsaを使っているのか不明です. 自分で/etc/mk.confやMakefileを編集してからpkgsrcでビルドすることで, ソフトウェアをきめ細かに設定できます.

ふたつは,ライセンスによるものです. fonts/rictyパッケージはライセンスの都合から,バイナリ形式の頒布が禁止されています. このようにライセンスの都合でバイナリ形式の頒布が不可能なソフトウェアは ソースコードからビルドしなければなりません.

最後に,必ずしもコンパイル済みのパッケージがすべて用意されているわけではないからです. 多くはコンパイル済みのパッケージは用意されていますが,用意されていないものについては pkgsrcでビルドするしかありません.