FreeBSD/portupgrade
portupgrade †
Portsを自動で最新にしてくれるportupgradeの紹介。
portupgradeを実行する前に、まずはCVSupで最新のPortsを入手しておきます。
CVSupは⇒FreeBSD/CVSup
Ruby言語で書かれたプログラムで、portupgradeをPortsからインストールすると自動で、Rubyもインストールされます。
環境 †
FreeBSD 6.0
ruby 1.8.4
CVSup SNAP_16_1h
インストール †
■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
シェルを作成 †
#!/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'
起動 †
■crontbに設定しておく。
20 6 * * * root /usr/local/etc/portupgrade.csh
※手動で起動する場合は
#csh /usr/local/etc/portupgrade.csh
参考にしたページ*1
参考にしたページ*2
最新のportsが現在のportsよりバージョンがあがっているか確認 †
# pkg_version -v|perl
最新のportsへアップグレード †
# portupgrade perl
Perlに依存するportsが入っている場合 †
- 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-\*
オプション †
-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にアップデートする場合
*1 F.kimura's HomePageこちらのページの方がより詳しく説明されています
*2 SYONテクニカル