| トップ | Solaris | FreeBSD | Gentoo | CentOS | Fedora | Windows | Tips | 自宅サーバの動作確認 | サイト内検索(Namazu) | サイト内検索(HE) |
packageを簡単にインストールできるよう、「portupgrade」をインストールする。
なお、最新のデータを利用できるよう、まず「ports」のアップデートを行っておく。
「ports」のアップデートは5.3-RELEASEの場合は「CVSup」を利用し、
6.0-RELEASEの場合は「portsnap」を利用する。
FreeBSD# cd /usr/ports/ports-mgmt/portupgrade <= 作業ディレクトリへ移動 FreeBSD# make install clean <= 「portupgrade」のインストール 途中で以下のオプションを聞かれた場合、チェックする [X] BDB4 Use Berkeley DB >=2 as backend. (Use BDB 1.85 if off) FreeBSD# rehash <= パスを通す |
「portsdb」の実行
まず、portsdbコマンドでportsのINDEXファイルを更新したり、そのINDEXファイルを元にバイナリデータベースを作成・更新する。
なお、この作業は非常に時間がかかるので注意。
FreeBSD# portsdb -Uu -U <= INDEXファイルを作成する -u <= INDEXファイルを基にバイナリデータベースを作成・更新する |
依存関係の不整合を直す
FreeBSD# pkgdb -aF -F <= 順番に依存関係をチェックする -a <= -Fが指定されている場合、自動修復を行う |
「portversion」の確認
インストールしてあるpackageと最新のportsのバージョンを比較する。
FreeBSD# portversion -v 「=」 同じ 「<」 古い(アップデート対象) 「>」 新しい(通常は出ない) |
「portupgrade」の設定
ここでは、例としてサーバには余り必要のないX Window関連を導入しない設定を記述する。
また、IPv6も無効にする。
FreeBSD# vi /usr/local/etc/pkgtools.conf <= 設定ファイルの編集
MAKE_ARGS = {
}
↓
MAKE_ARGS = {
以下を追加
'*' => [
'WITHOUT_X11=yes',
'WITHOUT_IPV6=yes',
],
ここまで
}
|
「portupgrade」の実行
portupgradeコマンドでアプリケーションのアップグレード等を行う。
主なオプションは以下の通り。
| オプション | 説明 |
|---|---|
| -a | 全てのパッケージのアップデート |
| --backup-packages | 古いパッケージのバックアップを取る |
| --batch | デフォルトの設定でmakeを行う。 その為、途中でオプションを指定する為に止まることがなくなる |
| -f | 強制的にインストールする |
| -i | アップグレードの実行前に確認を行う |
| -L | ログファイルを指定すると、ファイルに保存する。 -vLとすると詳細なログを出力する |
| -m | makeのオプションを指定する |
| -n | アップグレードは行わず、必要があるかの確認を行う |
| -N | パッケージがインストールされていない場合、ダウンロードしてインストールする |
| -o | バージョンアップ等により、portsのパス等が変わった場合に、基となっているportsを指定する 例:FreeBSD# portupgrade -o www/apache22 apache |
| -p | パッケージも作成する |
| -P | 可能な場合、パッケージを利用する |
| -PP | 強制的にパッケージを利用する |
| -r | 対象のportsが依存しているportsも更新する |
| -R | 対象のportsに依存しているportsも更新する |
| -x | -r、-Rオプションと同時に指定し、対象から外すパッケージを指定する |
portsを使ってインストールしたときに消し忘れたゴミを削除するためのツール。
portscleanコマンドの主なオプションは以下の通り。
| オプション | 説明 |
|---|---|
| -C | portsのmake時に使われる作業ディレクトリ(/usr/ports/*/*/work/)を全て削除する |
| -D | 古いバージョンのportsのソースコード等を消す |
| -P | /usr/ports/packages/ にある旧バージョンのpackageを削除する |
まず「ports」を最新にしてから、packageを更新する。
流れとしては以下のような感じになる。
FreeBSD5.3-RELEASEの場合(「CVSup」の利用)
FreeBSD# cvsup -g -L 2 /etc/ports-supfile <= portsの更新 FreeBSD# portsdb -Uu <= INDEXファイル・データベースの作成・更新 FreeBSD# pkgdb -aF <= 依存関係の不一致を直す |
FreeBSD6.0-RELEASEの場合(「portsnap」の利用)
FreeBSD# portsnap fetch <= スナップショットのダウンロード FreeBSD# portsnap update <= 「ports」のアップデート FreeBSD# portsdb -Uu <= INDEXファイル・データベースの作成・更新 FreeBSD# pkgdb -aF <= 依存関係の不一致を直す |
上記の作業はスクリプトにしてcronに登録すると良い。
ただし、その場合、「portsnap」を利用するのであれば引数を fetch では無く、 cron にする。
この作業が終われば「portversion」でアップデートが必要なpackageを調べ、
「portupgrade」で必要なpackageをアップデートする。
「ports」のアップデート(「CVSup」の利用)へ
「ports」のアップデート(「portsnap」の利用)へ