MENU

Unraid 插件安装失败“终极”解决办法!

August 11, 2021 • Nas

前言:本文适用于 Unraid 网络没有全球漫游模式或者因为某些原因不能使用全球漫游模式(比如挂PT),而改Hosts又时常抽风的用户。

Unraid 插件安装

插件安装是在应用商店内搜索,然后点击下载就开始下载安装的。但是应用商店也是一个插件,最开始也是通过插件安装的。

应用商店安装

所以安装插件的根本方法是通过 plg 文件(plugin)安装,通过插件链接或者插件文件,在安装插件页面,将链接输入或者选择文件,点击安装即可。插件安装建议使用 Unraid 论坛官方的插件地址,第三方的可能会有后门。

链接安装

而官方的插件安装地址,域名一般都是 raw.githubusercontent.com 或者 raw.github.com,该地址没有全球漫游模式很难访问,即使改了 Hosts 也是时常抽风。结果就是点了安装之后一直显示在下载 plg 文件中,或者 plg 文件下载成功,但是又卡在下载其他文件的步骤,过一会儿显示网络连接失败(Network Failure)。

安装失败

但是除了通过 plg 文件链接访问,还可以通过本地 plg 文件安装,那把 plg 文件和其他文件下载下来不就得了。

plg 文件

在曲线救国之前,我们先来了解一下插件安装地址中的 plg 文件到底为何物。
首先获取 plg 文件——访问 plg 链接,全部复制(因为浏览器不会下载而是直接显示该文件的内容),新建文本文档,重命名为 “插件名.plg” ;或者直接复制链接,通过下载器下载 plg 文件。前提是这个设备已经修改了 Hosts,或者有全球漫游模式,可以访问 raw.githubusercontent.com,不然还是访问失败,一般修改了 Hosts 就可以访问了。

plg访问不了

plg可以访问

然后打开 plg 文件,可以看到 plg 文件的内容包含了插件的名称、版本、作者、设置入口路径、下载路径、安装路径、更新日志、要下载的文件包以及安装脚本等等,本质上是一个脚本文件。插件的下载路径、安装路径、下载链接、安装的流程、安装的命令都是在这个文件中获取的。

plg头部

plg脚本

txz 文件

plg 文件下载之后,将该文件上传到 /boot/config/plugins 目录内,理论上放在 boot 文件夹内就可以,因为插件安装页面选择文件的根目录就是 boot 文件夹,但是最好放在 plg 文件内定义的 plg 路径。

plg路径

plg 文件上传之后,在插件安装页面选择,点击安装,这时候会发现,下载 plg 文件那个步骤是完成了,但是又卡在下载 txz 文件这个步骤了。txz 文件是一个压缩包,里面的内容就是插件本体内容了。

可以看到 plg 文件里下载 txz 文件时是会判断本地是否已经有该文件,如果有,是不会再去下载的,那解决办法就是直接手动下载 txz 文件喽。

在 plg 文件里找到 file 标签,file 标签内的 url 子标签就是 txz 文件地址了,注意该地址并不是真实地址,要将链接内的几个变量替换成变量真实值,变量真实值就在 plg 文件的最前面,要替换的变量是 “&xxx;”,如 “&name;”,注意只是双引号里面的。

plg文件地址

txz替换后地址

把 file 标签内的所有文件(不只是 txz ,还有 md5 等)通过链接下载下来,然后上传。这里需要注意的是要上传到哪里,如果上传路径不对,plg 文件里的脚本识别不到 txz 文件,那还是会去下载。查看 plg 文件里 file 标签的 name 值,name 值包含了 txz 文件下载的本地路径,该路径也是包含了变量值,需要替换,路径一般是 plugins 文件夹里以插件命名的子文件夹,没有就手动新建。

plg文件路径

上传完成之后,再次选择plg文件安装,或者输入链接安装,抑或者在应用商店内点击安装,都可以无需下载,直接进行安装了。

直接安装

总结

从应用商店或者 Unraid 论坛找到 plg 链接,下载 plg 文件并上传到 /boot/config/plugins 文件夹;
从 plg 文件中找到插件所需文件的链接,替换变量值得到真实链接,下载插件所需的文件;
从 plg 文件中找到插件所需文件的本地下载路径,替换变量值得到真实路径,上传文件到该路径;
直接安装。