pkg だけでは要件を満たせなければ使います。
# portsnap fetch extract
# portsnap fetch update
# pkg install portupgrade
ports ツリーと乖離しないように。
# mkdir -p /usr/local/etc/pkg/repos # echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf
latest: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", mirror_type: "srv", signature_type: "fingerprints", fingerprints: "/usr/share/keys/pkg", enabled: yes }
# portinstall [package name]
# portupgrade [package name]
緊急セキュリティフィックスでパッケージをアップデートしたくても、 ports の更新が追い付いていない場合があります。 その場合は、ports のインストールバージョンを適宜変更してアップデー トします。
# cd /usr/ports/www/tomcat8 # cp -p Makefile Makefile.orig # cp -p distinfo distinfo.orig # cat Makefile.orig | sed 's/8.0.36/8.0.37/' > Makefile # cat distinfo.orig | sed 's/8.0.36/8.0.37/' > distinfo # make DISABLE_SIZE=yes fetch # portupgrade -m NO_CHECKSUM=yes tomcat8
アップデートが必要なパッケージをチェックするため、 以下のスクリプトを実行します。
#!/bin/sh pkg version -l '<' | awk 'BEGIN { printf("#!/bin/sh\n\n"); }{ printf("portupgrade %s\n", $1); }' > portupgrade.sh chmod 700 portupgrade.sh
一括でアップデートします。
# ./portupgrade.sh
FreeBSDでは通常のpkgとは異なるオプションでインストールしたportsは
pkg upgradeで不用意に置き換えられないようにロックしておきますが、
それを手動でロックを外してportupgradeするのは面倒なのでスクリプト
で一括アップグレードします。
いま稼働していてアップグレードしたくないパッケージはEXCLUDESに書い
て除外します。
#!/bin/sh EXCLUDES="ja-wordpress-4.9.4" PKGS=`pkg lock -l | grep -v 'Currently locked packages:'` for pkg in $PKGS do for excl in $EXCLUDES do if [ "$pkg" = "$excl" ]; then echo "$pkg excluded" else echo "pkg unlock -y $pkg" pkg unlock -y $pkg echo "portupgrade $pkg" portupgrade $pkg echo "pkg lock -y $pkg" pkg lock -y $pkg fi done done
Copyright ©2000-2018 T.Hiraga <hiraga@next-hop.net> All Rights Reserved. Last modified: $Date: 2018/03/07 20:22:46 $ |