FreeBSD におけるパッケージのインストール方法や管理方法の一例.
主にFreeBSD ハンドブック第4章を参考します.
主にFreeBSD ハンドブック第4章を参考します.
FreeBSD のパッケージ管理
FreeBSD では、主に2つのパッケージ管理の方法があって
- packages
- ports
という2つの方法があります。
packages は、すでにコンパイルされたパッケージをインストールする形なのであまり時間がかからない反面、最新のバージョンを得られない可能性があります。
ports は、ソースをダウンロードしてコンパイルする形になるので時間はかかりますが、最新のバージョンを得られて高度な編集ができます(ソースに手を加えることができる)。あと、アップデートが比較的簡単に思えます。
今回は、ports で管理する方法を掲載していきます。
ports ツリーの作成
もっとも正確で信頼できる情報はFreeBSD ハンドブックに記載されています。
URL: http://www.jp.freebsd.org/www.FreeBSD.org/doc/ja_JP.eucJP/books/handbook/ports-using.html
URL: http://www.jp.freebsd.org/www.FreeBSD.org/doc/ja_JP.eucJP/books/handbook/ports-using.html
最初にやるべきことで、結構時間がかかるのが ports ツリーの作成です。
portsnap がすでに存在すれば以下の3行で ports ツリーが構成されます。
portsnap がすでに存在すれば以下の3行で ports ツリーが構成されます。
# portsnap fetch # portsnap extract # portsnap update
あるかないか分らないときは、以下のコマンドで存在するか確認してみる。
$ which portsnap /usr/sbin/portsnap # 存在するとこのような返答がくる
存在しない場合は、
# pkg_add -r portsnap
あたりでportsnap をインストールしましょう。
最初は、ツリーが存在しないためpackages からインストールする必要があります。
最初は、ツリーが存在しないためpackages からインストールする必要があります。
また、FreeBSD そのものを更新したい、いわゆる make world を行いたいんだという人は
CVSup(csup) で FreeBSD のソースもダウンロードしましょう。
CVSupは、
CVSup(csup) で FreeBSD のソースもダウンロードしましょう。
CVSupは、
# pkg_add -r cvsup-without-gui
からインストールすることができます。
実際に ports から適当な物をインストールしてみる
インストール方法もまた、make を使う滂滂と portinstall を使う方法があるのですが、
今回は、portinstall の方を掲載します。実際には、
今回は、portinstall の方を掲載します。実際には、
# portinstall <ほしいパッケージのパス>
でインストールできます。
まずは、参考になるページ
東風記録帳: http://d.hatena.ne.jp/ton-boo/20060414
AirKnights: http://iris.homeunix.net/yayoi/freebsd/inst/portupgrade.asp
恐らく上記ページの方が参考になるでしょう。
AirKnights: http://iris.homeunix.net/yayoi/freebsd/inst/portupgrade.asp
恐らく上記ページの方が参考になるでしょう。
ツリーの更新
portsnap では以下の3つの手順で ports ツリーを作りました。
# portsnap fetch # portsnap extract # portsnap update
portsnap は、最初の一回は上記の3つの作業が必要ですが、
2回目以降(ツリー作成後)は、extract オプションを省いた以下2つの命令でツリーの更新が行えます。
2回目以降(ツリー作成後)は、extract オプションを省いた以下2つの命令でツリーの更新が行えます。
# portsnap fetch # portsnap update
適当な物をインストールする前に必ずツリーの更新を行いましょう。
この手順は、portsnap を用いても必要だと思っていましたが、
必要ないみたいです。ports のバージョンやらがおかしくなったときは
portsdb を使って正しいデータベースを作成すると解決します。
必要ないみたいです。ports のバージョンやらがおかしくなったときは
portsdb を使って正しいデータベースを作成すると解決します。
目的のパッケージを探す
ツリーの更新を行った後、適当な物をインストールするには、ports ツリーの根に行ってどのパッケージが存在するか確認する必要があります。
デフォルトでは、/usr/ports/ がports ツリーのルートかと思います。
デフォルトでは、/usr/ports/ がports ツリーのルートかと思います。
$ cd /usr/ports/
これで移動できたところで
$ pwd /usr/ports # 現在地 $ make search key=<キーワード>
とコマンドすると全力でキーワードに従ったパッケージを検索してくれます。
また、パッケージ名が分っているときは、
また、パッケージ名が分っているときは、
$ find . | grep <パッケージ名>
と言う方法もあります。実感としては、 make search の方が速いと感じました。
では、実際にエディタのVim を探すときは以下のようにします
では、実際にエディタのVim を探すときは以下のようにします
$ make search key=vim Port: agide-0.124_2 Path: /usr/ports/devel/agide ... 以下略
結果は、上記のようにかなり長い返答が帰ってきます。そのため、
$ make search key=vim | less -X
とページャーを介して見る方がよいでしょう。
目的のVim の情報はこのように出力されるでしょう。
目的のVim の情報はこのように出力されるでしょう。
Port: vim-7.2.166_1 Path: /usr/ports/editors/vim Info: Vi "workalike", with many additional features Maint: obrien@FreeBSD.org ...以下略
これでVim の場所が/usr/ports/editors/vim と分りました。
さて、もう1つの方法では、
さて、もう1つの方法では、
$ find . | grep vim ./devel/agide/files/check_vim ./editors/vim ./editors/vim6+ruby ./editors/vim5 ./editors/vim6 ./japanese/jvim3 ... 以下略
とこのような返答が帰ってきてこれも、目的の場所が判明します。
Vim の場所は、/usr/ports/editors/vim でした。
パスのから分るように、/usr/ports 以下のディレクトリは各パッケージの種類とパッケージ名を表しています。
パスのから分るように、/usr/ports 以下のディレクトリは各パッケージの種類とパッケージ名を表しています。
実際にインストール
何はともあれ vim の格納場所は、/usr/ports/editors/vim です。
というわけで、いよいよインストールするときは、
というわけで、いよいよインストールするときは、
# portinstall editors/vim
とすれば全行程を自動でVim をインストールしてくれます。非常に簡単です。
pkgdb が壊れる
ときたま、パッケージデータベースが壊れることがある。
そんなときは、
そんなときは、
# pkgdb -F
で解決を試みるとよい。