SynoCommunity这个社群能早点更新支持 DSM7.0 的 Transmission 版本,但到目前为止这个第三方社群没有一点要更新的迹象。最后通过万能的 Google 查询到已经有人放出支持 DSM7.0 的 Transmission 套件,https://seby.io/download/synology-7.0,下载相应的版本后手动安装即可。
因为是套件的关系,所以安装十分傻瓜式,无脑下一步,然后输入一个用户名和密码(以后登陆 Web 端时使用)就行了,下面主要说下升级中文界面这个坑。
这个项目的作者超级用心,提供了多种升级方法,DSM6 时跟着项目作者提供的图文教程一步一步来很简单的就能完成安装。可现在不知是不是因为 DSM7 的关系,我将所有方法都试了一遍都未能升级成功。
我首先是通过计划任务脚本来安装的,毕竟这个方法是最简单直接的,但结果就是尝试了很多次都出现这个报错,
Couldn't find Transmission's web interface files!
我确认自己全程都跟着项目作者的教程走的,也没有输错输漏。既然这条路走不通,那就尝试另一种方法去安装咯,这次选择通过 SSH 来安装,因为项目作者已经写了完整的教程,所以我在这里就不过多的叙述了,详情教程请参考:Linux Installation CN · ronggang/transmission-web-control Wiki (github.com)。如果 Nas 访问不了 Github 的话,可以使用国内的镜像,但执行安装脚本时记得修改脚本命令,这里很容易一不小心就发现不了,使用国内镜像的正确脚本命令应该是bash install-tr-control-gitee.sh
。当然在 DSM7.0 下,正确执行了安装脚本还是不能升级成功,如果真这么容易,我也不会专门做这个记录了。没错,命令执行过程中又报错了。
cannot stat '/tmp/tr-web-control/transmission-web-control/src/.': No such file or directory
至于最后尝试的通过 WinSCP 进行升级,我一直卡在权限问题上不能成功,后来网上查看教程时发现居然要先在 SSH 上设置这设置那个,这时我就想,WinSCP 这个方法其实就是将项目上 src 里的文件复制到 web 目录里,既然我都登陆 SSH 并切换到 root 权限,那为什么我还切换到 WinSCP 上操作呢?我直接在终端上把文件拷贝到 web 目录里不就行了吗?
拉取项目/直接下载:
git clone git@github.com:ronggang/transmission-web-control.git
最新版 1.6.1 的下载地址:https://github.com/ronggang/transmission-web-control/archive/refs/tags/v1.6.1.zip
将项目里的 src 目录复制到 Nas 上:
举个例子,我将 src 目录复制到了存储池 1(volume1)里的/download/Transmission/上,等下使用 SSH 时我们要进入这个路径的。
连接终端并完成文件复制:
一、控制面板——终端机和 SNMP——勾选启动 SSH 功能——应用保存;
二、在终端上通过 SSH 连接到 Nas 上;
ssh 用户名@群晖内网IP
如果端口不是默认的22
,需在命令行添加-p 新端口
;例:ssh admin@192.168.1.88 -p 16822
切换到 root 权限
sudo -i
三、寻找 Transmission 所在目录;
find / -name transmission
这时候我们会找到几个目录,因为我们安装的 Transmission 是套件,所以这里我们应该关注 packages 这个字眼。
// 进入带有packages字眼的目录
cd /var/packages/transmission
// 输入 ll 查看当前目录
这里我们可以看到其实目录都是进行了绑定,因为我的 Transmission 是安装在存储池 1 里,所以目标路径就是target -> /volume1/@appstore/transmission
,因为我们只是复制文件到 web 这个目录里,所以我们要寻找的路径就是/volume1/@appstore/transmission/share/transmission/web/
,但因为 Transmission 是可以安装到其他存储池上的,所以这个路径不一定是正确的。又因为存在目录绑定关系,最终我们可以得出一个正确的路径。
/var/packages/transmission/target/share/transmission/web/
四、将之前下载的 src 文件夹更改文件拥有者并复制文件到目标 web 目录里;
// 切换到src文件夹所在的目录
cd /volume1/download/Transmission
// 更改文件夹的拥有者
chown -R root:root src
// 将src目录下的全部文件复制到目标web目录里
cp -fR src/. /var/packages/transmission/target/share/transmission/web/
完成。
“控制面板”
,新建一个共享文件夹,如 mountDrive
;mountDrive
文件夹下新建一个 transmission
子文件夹,用于链接真实的 transmission
;依次打开 DSM 的 “控制面板”
-> “任务计划”
;
选择 “新增”
-> “触发的任务”
-> “用户定义的脚本”
;
任务名称用英文,如:linkTrFolder
,事件选择 “开机”
,选中 已启动
;
在 “任务设置”
的 “运行命令”
-> “用户定义的脚本”
中输入:
mount -B /volume1/@appstore/transmission/ /volume1/mountDrive/transmission
备: 取消挂载可执行此命令umount /volume1/@appstore/transmission/ /volume1/mountDrive/transmission
如图:
点击 “确定” 保存计划;
如果没有错误,应该会在任务列表中出现一条名称为 linkTrFolder
的任务;
选中该任务,点击 “运行”,系统将创建一个“软链接”;
打开 File Station
,找到 mountDrive -> transmission
文件夹
将在这个目录下看到一些子文件夹,如下图:
/mountDrive/transmission/share/transmission/web
即为 webUI 所在目录;
为方便管理,请确认 /mountDrive/transmission/share/transmission/
目录是否已开启所有用户可以修改操作;
File Station
上传到 /mountDrive/transmission/share/transmission/
目录下;File Station
解压这个文件;/mountDrive/transmission/share/transmission/web/
下原来的 index.html
文件改为 index.original.html
;src
目录下的所有文件复制到 /mountDrive/transmission/share/transmission/web/
目录;