原文:http://blog.sina.com.cn/s/blog_6ab6c71e0101bo33.html

刚刚开始试用 dokuwiki 就遇到了升级问题。月初下载了 dokuwiki 2012-01-25b 版本,但是直到前天才安装试用,刚装上就提示有新版本更新。dokuwiki 更新是直接覆盖方式,但由于对 dokuwiki 结构不熟悉,不知道用户数据都保存在什么地方,所以不敢直接进行全覆盖,于是采用差异安装方式,过程如下:

系统环境: 操作系统:Ubuntu JeOS 8.04.3
dokuwiki 安装路径:/opt/lampp/htdocs/www/dokuwiki
原码包保存路径:/tmp

下载源码包:

cd /tmp
wget http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2012-01-25b.tgz
wget http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2012-09-10.tgz

生成版本差异文件:

tar zxf dokuwiki-2012-01-25b.tgz
tar zxf dokuwiki-2012-09-10.tgz
diff -Naur dokuwiki-2012-01-25b dokuwiki-2012-09-10 > dokuwiki.diff

备份:

cd /opt/lampp/htdocs/www
tar -cf dokuwiki.tar dokuwiki/
gzip dokuwiki.tar

升级:

cd /opt/lampp/htdocs/www/dokuwiki
patch -p1 </tmp/dokuwiki.diff

由于使用的系统是最简系统(JeOS 即 Just enough OS),所以没有 patch 命令,只好自己安装:sudo apt-get install patch
之前安装 dokuwiki 完成后将 install.php 改名为 install,因此更新时提示找不到 install.php,询问覆盖哪个文件,输入 install。
为避免升级时出现意外,可以先测试升级一下(其实并没有真正升级):patch -p1 </tmp/dokuwiki.diff –dry-run
清除版本更新提示信息:
cd /opt/lampp/htdocs/www/dokuwiki
echo “” > messages.txt

参考:http://www.ichiayi.com/wiki/tech/dokupgrade