##language:zh ''' 如何完好的升级到 MoinMoin1.3.1 ?! ''' -- Zoom.Quiet [<>] <> = 为什么? = == 怎么办? == ''有最新稳定版本了!但是!'' * MoinMoin 的安装方式没有变化! * 但是!!目录结构完全变化了!! * 原先的升级后,也是原有看页面全部不能自动识别,是人工一一恢复的!! * 这次一定要摸索出正确的方式来! * 到现在没有头绪!请大家帮忙是也乎!……………… == 凉办! == === 升级脚本 === * 果然有专门的脚本进行处理! * 台湾 [[http://ljm.idv.tw/mywiki/%e9%a6%96%e9%a0%81|林哲民]] 指点了一下子: * {{{ 我想你之前的文件應該都是用 GB2312 碼存儲的吧? 首先要把 data/ 製作一份備份,移除所有歐洲語系 (latin-1) 的頁面 (如 Hje_e4... 這種) 然後執行 moin-1.3.2 裡面 附的 12_to_13_mig?.py 程式。 一定要看 README 說明,升級全部順利的話 20 分鐘左右 可以做好,但如果沒看說明、或是沒有移掉 latin-1 網頁, 可以搞上幾個小時。 正確轉換的話,連變更記錄和附件都會留下來。 -- 泰山崩兮!禮樂壞兮! }}} === mig 处理流程 === * 呜乎矣哉!按照移植说明,要一一进行转换! * {{{首先要把 data/ 製作一份備份,移除所有歐洲語系 (latin-1) 的頁面 (如 Hje_e4... 這種) text: _d* ##language:sv Aide_* ##language:fr Aiuto* ##language:it H_* ##language:sv Aktuelle_c4nderungen ##language:de ZufallsSeite ##language:de text.default 中多有: Hi* 是德文的 Hj* 是挪威的 (干脆杀光!反正新版本中是使用underlay 目录专门管理帮助页面了!) """ * 然后,按照原始的: [http://moinmoin.wikiwikiweb.de/MoinMoinRelease1.3/README%2emigration 如何移植] 文档进行: {{{ 具体脚本在 MoinMoin/scripts/migration/12_to_13_migN.py (在你MoinMoin安装到的目录, /usr[/local]/lib/python2.x/site-packages/MoinMoin). 有几个脚本问以将你的数据转换到当前版本 你必须,在 停止 旧版Wiki 后,运行 新版Wiki 前进行转换 确定有足够的空间(每次转换都会产生新的复制) 在升级时,先确认你的版本,作为转换入口的依据 你运行的版本 使用的移植(mig)脚本 --------------------------------------------- before 1.2 first upgrade to 1.2.4 and test for a while 1.2.x mig1 - check from_encoding in script! 1.3 data/pages/huanian(2f)MoinEditorBackup/text Traceback (most recent call last): File "12_to_13_mig4.py", line 148, in ? convert_eventlog(opj(origdir, 'event.log'), opj('data', 'event-log')) File "12_to_13_mig4.py", line 63, in convert_eventlog data[0] = str(convert_ts(float(data[0]))) # we want usecs ValueError: empty string for float() }}} * 幸好,都是Python ,调试一下子,就确定了有问题的 event-log 记录行, * vi 进去,修改好!这次是在行首有非常的二进制“ ”空格!! * 12_to_13_mig6.py 时,则是没有办法将 UTF-8 以外的欧洲字符,转换为Uincode的, * 还是 vi 进去逐一清除! * 到了12_to_13_mig8.py 是死活不行了, * 返回去 干脆 {{{#touch data/event-log}}} 放空 log 记录! * 接着就好了!哈哈哈! * 除了在 RecentChanges 中,报告有些修改动作丢失………………可以忍受!! === 1.2.xto 1.3.3 === * 正式升级 啄木鸟的 Wiki ,这次是升级到 1.3.3 最新版本的MoinMoin.... * 小心再小心的按步就班的升级,还是没有躲了中文的麻烦!! ---- * step but step 按照以上的介绍升级前使用 FreeBSD 的Ports 先升级Python 系统: * {{{ #cd /usr/ports/ #升级Ports 树 #cvsup -sgL2 /usr/share/examples/cvsup/ports-supfile -h tarsier.delphij.net #直接下载最新的Ports 索引..否则你要等候很长时间来重建! #make fetchindex #make searc name=python #询问出最新的Python 包在哪? .. Port: python-2.4_1 Path: /usr/ports/lang/python ... #cd /usr/ports/lang/python #make clean && make install #OK 就可以自动安装完一切!!! }}} * 不过发布的MoinMoin 还是 1.3.1 在 FreeBSD 的Ports 中, * 只好自个儿下载最新的 然后简单的 {{{ #python setup.py install }}} * 完事儿!!MoinMoin 的安装! * 可是!升级就没有如此简单了! * 要求一步步调整原有的内容页面 * 这次我一直顺利的运行到12_to_13_mig6.py 才有问题: * {{{Traceback (most recent call last): File "12_to_13_mig6.py", line 100, in ? convert_eventlog(opj(origdir, 'event-log'), opj('data', 'event-log'), from_encoding, to_encoding) File "12_to_13_mig6.py", line 77, in convert_eventlog val = convert_string(val, enc_from, enc_to) File "12_to_13_mig6.py", line 58, in convert_string return str.decode(enc_from).encode(enc_to) File "/usr/local/lib/python2.4/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0xe5 in position 8: unexpected end of data }}} * 中文!!或是其它欧洲语言的页面访问信息行, event-log 中的不能简单的处理,所以崩溃! * 老办法,修改 12_to_13_mig6.py 先不进行转换,而是报告哪里有问题,然后手工删除有问题的行就好! * '''可是!'''怎么也难以清除,手工枯燥的使用 vi 不断的根据崩溃点的信息来搜索,删除,搜索,删除...怎么也不能完全修正?! * 问了高手,知道一个技巧: {{{ # grep -v OpenGNS%E7 event-log > event-log-fixE7 }}} * 可以将所有包含模式 '''OpenGNS%E7''' 的行忽略,整理出新的文件 * 哈哈哈!!加快了清理工作,要知道啄木鸟Wiki 的 访问事件日志文件已经有 63Mb 之巨!! Vi 效率再高也是痛苦的! ----- * 呜乎哀哉!!可是清除了5个模式,还在不断的崩溃!! * 火大!直接修改脚本,自动跳过有问题的记录行--- 反正一定是文字编码问题,不用理会的! * [[/12_to_13_mig6.py]] -- 修改后的升级脚本 * 世界为之清静!! * 最后报告说{{{ mig6 finished but maybe there is 4424 lines log not transition for some unicode ERROR!! }}} 天!!! * 不过接下来就好了,顺畅的完成!!简单设定一下子 Apache 就重新开启了 啄木鸟的 MoinMoin!!! ==== 惊奇与遗憾 ==== * 最大的感受是: * '''MoinMoin 全部Pythonic 了!!''' * 包括配置文件,等等,一切都是标准的 Python 脚本,没有以前的CGI Perl 的味道了... * {{{ }}} * 解析出来的页面居然已经有 '''nofollow''' 这个''避孕套'' 了!!哈哈哈!! * [[http://www.chedong.com/blog/archives/000045.html|+1 rel="nofollow" = 互联网为超链戴上的安全套?! ;-)]] * [[http://blog.cnblog.org/archives/2005/01/wikiaeenofollow.html|wiki也要nofollow - CNBlog: Blog on Blog]] * [[http://heterotopias.org/node/504?PHPSESSID=360790edeeed10347bd3a4b3bf49eb8a|為blog加套套:rel="nofollow" | Heterotopias]] * [[http://www.technorati.com/cosmos/search.html?rank=&url=nofollow|更多....]] ---- * 可惜,{{{[[Include(PageName)]]}}}的嵌入页面,没有了原来快速修改的入口链接.... = 反馈 = * 如果你也面临升级 MoinMoin 有什么问题和经验请分享...