Monday, September 05, 2011

在 FreeBSD 使用 portmaster 更新已安裝的 ports

在 bash 下完整跑完所有已安裝的 ports
for i in $(ls /var/db/pkg/); do portmaster -D $i; done
或
for i in `ls /var/db/pkg/`; do portmaster -D $i; done

在 bash 下針對需要更新版本的 ports
pkg_version -v > /PATH/TO/pkg_version_`date +"%Y%m%d"`.txt
grep "needs updating" /PATH/TO/pkg_version_`date +"%Y%m%d"`.txt > /PATH/TO/pkg_version_needs-updating_`date +"%Y%m%d"`.txt
for i in $(awk '{ print $1 }' /PATH/TO/pkg_version_needs-updating_`date +"%Y%m%d"`.txt); do portmaster -D $i; done
較簡易版
portversion -l '<' > /root/pkg_list/pkgversion_`date +"%Y%m%d"`.txt
for i in $(awk '{ print $1 }' /root/pkg_list/pkgversion_`date +"%Y%m%d"`.txt); do portmaster -D $i; done
也可以將 portmaster -D 改用 pkg_upgrade 取代.

No comments: