FreeBSD/portupgrade の変更点


*&SIZE(15){''portupgrade''}; [#u54b6e02]

Portsを自動で最新にしてくれるportupgradeの紹介。~
portupgradeを実行する前に、まずはCVSupで最新のPortsを入手しておきます。~
CVSupは⇒[[FreeBSD/CVSup]]~
Ruby言語で書かれたプログラムで、portupgradeをPortsからインストールすると自動で、Rubyもインストールされます。~

+[[''環境''>#A]]
+[[''インストール''>#B]]
+[[''シェルを作成''>#C]]
+[[''起動''>#D]]
+[[''オプション''>#F]]

**''環境''&aname(A); [#pce2b3be]
FreeBSD 6.0~
ruby 1.8.4~
CVSup SNAP_16_1h~
~
*''インストール''&aname(B); [#bed265e3]
■Rubyは1.8で使いたいので、/etc/make.confに記述しておきます。
 # vi /etc/make.conf
 ----------------追加-------------------
 RUBY_DEFAULT_VER=1.8
 ----------------追加-------------------
■portupgrade,Portsからインストール
 # cd /usr/ports/sysutils/portupgrade
 # make install clean ;rehash

-2008/01/21確認
-フォルダが変更になったらしい。/usr/ports/ports-mgmt/portupgrade

~
■portauditをインストール、セキュリティの脆弱性などを指摘してくれるそうです。
 #cd /usr/ports/security/portaudit
 #make clean install clean
 #rehash 
 #/usr/local/sbin/portsdb -Fu
 #portaudit -F -a
 
**''シェルを作成''&aname(C); [#x4b82df2]
 #!/bin/csh
 #setenv PORTS_DBDRIVER bdb_hash
 /usr/local/bin/cvsup -g -r 5 -h cvsup2.jp.FreeBSD.org \
  -L 2 //usr/share/examples/cvsup/ports-supfile >& /var/log/portupgrade_dayly.log
 /usr/local/sbin/portaudit  -F -a >>& /var/log/portupgrade_dayly.log
 /usr/local/sbin/portsdb -Fu >>& /var/log/portupgrade_dayly.log
 /usr/local/sbin/portversion -v -L '=' | grep -v 'held'

**''起動''&aname(D); [#n3414335]
■crontbに設定しておく。
 20      6       *       *       *       root    /usr/local/etc/portupgrade.csh

※手動で起動する場合は
 #csh /usr/local/etc/portupgrade.csh

参考にしたページ(([[F.kimura's HomePage>http://www.fkimura.com/portupgrade3.html]]こちらのページの方がより詳しく説明されています))

参考にしたページ(([[SYONテクニカル>http://www.syon.co.jp/syontech/tech006.html]]))

**最新のportsが現在のportsよりバージョンがあがっているか確認 [#ic268f22]
 # pkg_version -v|perl

**最新のportsへアップグレード [#y6af9f12]
 # portupgrade perl

**Perlに依存するportsが入っている場合 [#h9c7e1e5]
+perl本体の置き換え
 # portupgrade -o lang/perl5.8 -f perl-5.8.6_3
+インストールしたperlを/etc/make.confに登録
どのサイトでもuse.perl portを実行すると書いてあったけど、use.perlを実行しても無いって言われる。~
探してみたら、こんな所にありました。/usr/ports/lang/perl5.8/files/use.perl
 # locate use.perl
 /usr/ports/lang/perl5/files/use.perl
 /usr/ports/lang/perl5.8/files/use.perl
 # cd /usr/ports/lang/perl5.8/files
 # use.perl port
+perlに依存しているportsを更新
 # portupgrade -f p5-\*

**オプション&aname(F); [#d00130ee]
 -r そのportsが依存しているportsも更新する
 -R そのportsに依存しているportsも更新する.
 -N パッケージが無い場合は,ダウンロードしてインストールする
 -n アップグレードはせずに、その必要があるかだけを教えてくれる。
 -f 強制的にインストール。
 -m makeのオプションを指定する
    例:porupgrade -m 'BATCH=yes' x11/gnome 
 -o パッケージの基となっているports名(?)を指定する.このオプションはバージョンがあがってports名が変わってしまった場合などに使える.
    例:portupgrade -o www/apache22 apache
        www/apache20からwww/apache22にアップデートする場合