通常来说,我是很少会主动升级MediaWiki的插件,大多数情况是随着MediaWiki的版本一起升级,直到最近玩页面表单(Page Forms)插件时,提到有bug需要升级到5.1版以上,而我的还停留在4.7版。
我的常规做法一般都是直接下载安装包然后解压上传到服务器,至于git的方法几乎很少用。
今天再次用git尝试了升级,果然好用!
既然git的方式这么方便,那么其他插件岂不也可以?既然其他插件也可以,能不能一键升级呢?
mediawiki-extension命令就是派这个用处的,它依赖Node.jsPHPGitComposer
注:自打升级到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需要知道phpgit以及composer的安装位置。
你可以使用以下方法进行设置:

mediawiki-extension setup

在安装过程中mediawiki-extension会寻找phpgit以及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

最后修改:2021 年 04 月 03 日
如果觉得我的文章对你有用,请随意赞赏