通常来说,我是很少会主动升级MediaWiki的插件,大多数情况是随着MediaWiki的版本一起升级,直到最近玩页面表单(Page Forms)插件时,提到有bug需要升级到5.1版以上,而我的还停留在4.7版。
我的常规做法一般都是直接下载安装包然后解压上传到服务器,至于git的方法几乎很少用。
今天再次用git尝试了升级,果然好用!
既然git的方式这么方便,那么其他插件岂不也可以?既然其他插件也可以,能不能一键升级呢?
mediawiki-extension命令就是派这个用处的,它依赖Node.js
、PHP
、Git
和Composer
。
注:自打升级到1.35之后,内置可视化编辑器而不再需要parsoid服务,我竟然都没有安装Node.js。
一、安装npm
首先,使用curl命令将NodeSource的yum仓库添加到系统中(因为内置的源版本相当低,应该是6.x。本着用新不用旧的原则,在截至发稿时最高版本为15.x):
curl -fsSL https://rpm.nodesource.com/setup_15.x | bash -
启用NodeSource库后,输入以下命令安装Node.js和npm:
sudo yum install nodejs
最后,要检查安装是否成功,请运行以下命令:
node --version
npm --version
二、安装mediawiki-extension
安装
安装mediawiki-extension
就简单多了,一条命名就可以了
sudo npm install -g mediawiki-extension
设置
mediawiki-extension
需要知道php
、git
以及composer
的安装位置。
你可以使用以下方法进行设置:
mediawiki-extension setup
在安装过程中mediawiki-extension
会寻找php
、git
以及composer
所在的位置。如果找不到任何命令,它将为你提供指定命令确切路径的选项。另外,如果尚未安装composer
,则mediawiki-extension
可以自己下载composer
。
三、使用mediawiki-extension
帮助
要获取完整的命令和参数列表,请运行
mediawiki-extension --help
mediawiki-extension <command> --help
注意:mediawiki-extension命令(除了help、info -r、和config)应放在MediaWiki的插件安装目录中运行。
获取插件的有关信息
mediawiki-extension info
可以提供插件的相关信息。
mediawiki-extension info ParserFunctions
mediawiki-extension download
从最佳可用来源(composer、git tags、git master等)下载插件,如:
mediawiki-extension download ParserFunctions
mediawiki-extension download Cargo PageForms
mediawiki-extension
仅根据插件名下载并将其放入extensions
目录中,但不会安装(启用)它们,所以你还是需要在配置文件LocalSettings.php中用require_once()或wfLoadExtension()的方式添加插件。
要删除手动安装的旧插件并将其替换为mediawiki-extension
可以管理的插件,请使用-f/--force
选项。
mediawiki-extension download -f ParserFunctions
更新插件
mediawiki-extension update
能将一个或多个MediaWiki插件更新为最新版本。
显示具有可用更新的插件列表:
mediawiki-extension outdated
从交互式列表中选择要更新的扩展:
mediawiki-extension update
更新一组特定的扩展名:
mediawiki-extension update <Extension>...
mediawiki-extension update Cargo
mediawiki-extension update ParserFunctions CheckUser
更新所有可用的扩展名:
mediawiki-extension update --all
列出本地安装的插件
你可以列出extensions
目录中可用的插件名:
mediawiki-extension list
注意:如果你之前都是手动安装的,那么在插件名后面的括号中显示unkown
。
在git master和release分支之间切换
如果插件的最新git-master
不适合你,则可以切换到git-rel
以获取最新分支的MediaWiki代码。
mediawiki-extension switch <Extension> git-rel
升级MediaWiki后,你可以切换回git-master
并查看它们是否兼容。
mediawiki-extension switch <Extension> git-master
参考文章
https://www.npmjs.com/package/mediawiki-extension
https://github.com/nodesource/distributions