Doris232 发表于 2023-1-10 15:41

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

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

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


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


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


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

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




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




txz 文件

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


plg 文件上传之后,在插件安装页面选择,点击安装,这时候会发现,下载 plg 文件那个步骤是完成了,但是又卡在下载 txz 文件这个步骤了。txz 文件是一个压缩包,里面的内容就是插件本体内容了。
可以看到 plg 文件里下载 txz 文件时是会判断本地是否已经有该文件,如果有,是不会再去下载的,那解决办法就是直接手动下载 txz 文件喽。
在 plg 文件里找到 file 标签,file 标签内的 url 子标签就是 txz 文件地址了,注意该地址并不是真实地址,要将链接内的几个变量替换成变量真实值,变量真实值就在 plg 文件的最前面,要替换的变量是 “&xxx;”,如 “&name;”,注意只是双引号里面的。




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


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


总结

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

RhinoFreak 发表于 2023-1-10 15:49

感谢分享,尝试成功了。
我也分享一下我的发现:
unraid-plugins - Gitee.com
这个里头有一些常用插件,plg文件一般在plugins里,点开就能看,然而下载以及安装插件贴url的时候要把直接点开的地址里的“blob”改成“raw”。
txz文件一般在archive里,打开plg看好精确的文件版本下载即可,不用解压,到/boot/config/plugins手动新建插件名文件夹,然后放进去就行了。
页: [1]
查看完整版本: Unraid 插件安装失败“终极”解决办法!