cvsup なんぞで日夜 portsの最新版をわっしわっし取り寄せている人は
使うと幸せになれます(笑い
/usr/ports/sysutils/portupgrade
make install 一発です。
portversion | grep "<"
portupgrade -rf gnome とか
-rf オプションを付けて実行すると 依存関係等を自動的に調べながら関連する全てのファイルを更新します。
gnome 等はやたらでかくて 依存関係に注意しながら更新するのにうんざりしますので
非常に重宝します。 但しすべての関連するファイルを強制的に再インストールすることになりますので
巨大なモノはそれなりの時間を要する事を覚悟しておきましょう(w
portupgrade -r \* しますと 自分のインストール済のportsでUPの必要の無いものはそのままで
必要なモノだけ依存関係の若い順に更新します。
ちなみに portupgrade -ir \* としますと 更新する前に Yes/No 選択できます。
pkgdb -F しろ!
てでる時があります。 こういう場合は 実際に pkgdb -F してみると 問題のある部分でyes no all の
プロンプトがでてきます。 no 選択後 ctrl+D で 解消できます。
場合によっては Yes だけで良い事も多いです。いずれにしろ依存関係で矛盾を生じている訳ですから
該当するモノを再構築すべきでしょう。
該当するものを再構築するには、、、
例えば
portverison|more とやって
Stale dependency: gnome-1.4.1b2_2 --> librsvg-1.0.3 -- manually run 'pkgdb -F' to fix, or specify -O to force.
こんなのが出た場合は
ここで 問題なさそうならば pkgdb -F で殺してもいいのですが
portupgrade -r librsvg もしくは portupgrade -rf librsvg すべきでしょう。
これをwarnが無くなるまで繰り返せばなんとかなるです。(笑
最新版をいれたはずなのに portversion を実行すると 何故か "<"表示のままであったり 反対に ">" (現在の portsより新しいぞ)
などと矛盾した表示をする場合があります。
そういう場合は porttree を最構築するといいでしょう。 ていうかしてください(w
portsdb -Uu
を実行してしばらく放置しておいてください
結構長い時間HDDをごりごり言わせて矛盾が修正されるはずです
/usr/ports 以下の make clean わすれた いらん workを
消すスクリプト(w
え? これくらい いちいち perl なんかで書くなって?(汗
#!/usr/bin/perl
$| = 1;
print "now checking.....\n";
@res = `find /usr/ports -type d -name work`;
foreach $rd(@res) {
@nul = `rm -rf $rd`;
chomp($rd);
print "$rd was deleted.\n";
}
exit;
portsclean -C
消し忘れた work/ を消してくれます
portsclean -D
/usr/ports/distfiles/ をしらべて
現在の最新portsでつかわんソースだけ探してだけ削除してくれます。
通常は
cd /usr/ports/ftp/proftpd
make install
make clean
portinstall つかえば どこのディレクトリにいてもOKで
portinstall proftpd
です。
pkg_delete より高機能です。
これも -i オプションを付けるとプロンプトでますので
-r や -R と併用して単純に依存関係を見てみたい時なんかも使えますね
プロンプトが出た時に全部 n ならアンインストールしませんので
-r -Rオプション付けて実行しますと 上位/下位 依存関係のモノをざっくりと削除できますので
必要な場合には重宝します。
詳細は 単純にpkg_deinstallとすれば help でますので参考に。