FreeBSD7.1Rでports INDEXアップデート

FreeBSDのアプリケーションは、ports/packages というもので管理されている。

たとえば、apache をインストールしたいと思ったら、/usr/ports/www/apache22 というディレクトリをカレントディレクトリに変更して、make install コマンドを実行するだけでインストールできる(実際にはオプションを選択したりするが)。

↓ここでは動かさないが、メモとして残しておく。

%su
Password:
# cd /usr/ports/www/apache22
# make install

package は、あらかじめ port をコンパイルしてあるもので、pkg_add コマンドでインストールできる。インストール時間的には短縮できるが、アプリケーションによって packages が使えるかどうかの状態は異なるようで、基本的に本サイトでは ports からのインストールを行うようにする。

なお、最新の ports は古いリリースの FreeBSDには対応していない(うまくすれば動くかもしれない)ようだ。

参考:http://www.freebsd.org/ja/ports/

ports INDEXを更新する準備

/etc/portsnap.conf を確認し、ファイル末尾の次の部分のコメントを取る。ただし、Japanese は消す。

%su
Password:
# vi /etc/portsnap.conf

内容は次のとおり。

REFUSE arabic chinese french german hebrew hungarian
REFUSE korean polish portuguese russian ukrainian vietnamese

最新のports INDEXに更新する前に

現在インストールされているバージョンと 最新のports の違いが無いか、次のコマンドで確認できる。

# pkg_version -v | grep '<'

結果、なにも表示されない。

最新のports INDEXに更新してみる (extractは最初だけでよい)

# portsnap fetch
# portsnap extract

↓詳細

# portsnap fetch
 
Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
Fetching public key from portsnap2.FreeBSD.org... done.
Fetching snapshot tag from portsnap2.FreeBSD.org... done.
Fetching snapshot metadata... done.
Fetching snapshot generated at Sat Nov 1 09:29:39 JST 2008:
570eXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX of 54MB 418 kBps 00M00s
Extracting snapshot... done.
Verifying snapshot integrity...
 
Fetching snapshot tag from portsnap2.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Sat Nov 1 09:29:39 JST 2008 to Sat Nov 1 17:50:37 JST 2008.
Fetching 3 metadata patches.. done.
Applying meradata patches... done.
Fetching 0 metadata files ... done.
Fetching 2 patches.. done.
Applying patches... done.
Fetching 0 new ports or files... done.
 
(ここまで約10分)
 
# portsnap extract
・
・
・
Building new INDEX files... done.
 
(ここまで約15分)

別の日にports INDEXを更新してみる (通常は更新差分を取得)

# portsnap fetch
# portsnap update

最新のports INDEXに更新した後に

現在インストールされているバージョンと 最新のports の違いがないか、次のコマンドで確認してみる。

# pkg_version -v | grep '<'
cdrtools-2.01_6  < needs updating ( port has 2.01_7)
cvsup-16.1h_3    < needs updating ( port has 16.1h_4)
・
・
・

< needs updating ( port has XXX ) と表示される行には現在のものよりも新しいportがあるというだ。

試しに、cvsup-16.1h_3 -> cvsup-16.1h_4 へとアップデートしてみる(あくまでもお試し)

# cd /usr/ports
# find . -name cvsup -print
/usr/ports/net/cvsup
# cd /usr/ports/net/cvsup
# make install

で、しかられた。

cvsup-16.1h_3 がインストールされてるから、make deinstall して、make reinstall しなさいと書かれている(っぽい)ので、やってみる。

# make deinstall
===> Deinstalling for net/cvsup
===>  Deinstalling cvsup-16.1h_3
# make reinstall

インストールされたっぽい。

# rehash
# cvsup -v

リビジョン番号までは見えないので、次のコマンドで確認してみる。

# pkg_version -v | grep '<'
cdrtools-2.01_6  < needs updating ( port has 2.01_7)
dbus-1.0.2_2     < needs updating ( port has 1.2.1)
・
・
・

ports INDEX の差異を確認するとcvsup-16.1h_4が消えているのでインストールされたと判断する。

cron 用? ports INDEXの更新

portsnap --help を見ると、こんなのもある。0~3600秒の間でランダムにSleepして、fetchする(らしい)。

# portsnap cron

/uer/ports ディレクトリ配下を全て消してしまったトラブル

下記のコマンドを実行すると、取得しなおしができる。

# pkg_add -r cvsup-without-gui
# rehash
# cvsup -L 2 -h cvsup?.jp.FreeBSD.org /usr/share/examples/cvsup/ports-supfile

詳細は:http://www.freebsd.org/doc/ja/books/handbook/ports-using.html

freebsd7.1r/ports_update.txt · 最終更新: 2009/02/20 16:31 by vdobv
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0