之前在 大神 那边看到一篇 升级 PHP 5.2.8 的一些小细节,就来把我的机器升级一下,发现 php 5.2.7 之后已经把 pcre extension 纳入在裡面,参考 /usr/ports/UPDATING 裡面的 20081211 这个项目,可以利用 portupgrade 或者是 portmaster 来升级,之前都是利用 ruby 写的 portupgrade 来升级系统或者是更新安全性,现在利用 portmaster 这一套也是不错用,portmaster 是用 sh 写出来的,在 gslin 大神这一篇:portupgrade、portmaster、portconf 说到速度方面比 portupgrade 还要好,这我没有实际测试过,自己在实际用了一下,还蛮方便的。

安装 portmaster 跟 portconf 搭配:

cd /usr/ports/ports-mgmt/portconf
make install clean
cd /usr/ports/ports-mgmt/portmaster
make install clean

先找出需要升级的套件:

pkg_version -v 在利用 portmaster 升级 php5

pkg_delete -f php5-pcre\*
portmaster pecl\*
portmaster php5\*

如果是利用 portupgrade:

pkg_delete -f php5-pcre-*
pkgdb -F
portupgrade -f php5*
portupgrade -f pecl*

之前还没升级的时候,利用 portaudit 检查套件的安全性,发现 php5-gd 在 5.2.6 版有安全性的问题,所以就顺便一起升级到 5.2.8_1

安装 portaudit:

cd /usr/ports/ports-mgmt/portaudit/
make install clean
升级 php5-gd:





#
# -C:升级之前先清除套件 make clean
# -G:升级之前先检查 make config
# -i:升级安装套件之前,先询问使用者
# -d:安装之后清除套件
portmaster -CGid php5-gd-5.2.6

原文 http://blog.wu-boy.com/2009/02/23/829/