DSM7安装Transmission与升级中文界面

大概一个月前我头脑一热更新了群晖的系统——DSM7.0。这是一个大版本的升级,其实升级前我有考虑过是否要升级的,当在哔哩哔哩上看到一些相关视频信息后决定先等等,直到后来在烧麦兄那里看了后又开始关注了,最终没能忍住,升级了。然而这个升级最终到现在都还在后悔,主要原因是不知为什么我的后台界面经常卡顿,网上查了一大堆信息都解决不了。现在我都已经放弃治疗了,毕竟回退版本实在是太麻烦了,而且还得冒着数据丢失的风险。加上自己平时都不怎么登陆后台界面的,它卡让它卡吧!

让我后悔的另一个原因就是很多套件在 DSM7.0 都有了限制,更离谱的就是有些我常用的套件直接在套件中心下架了,区域对待让人很反感,当然这不能完全怪在 Synology 身上,懂的都懂。

好像又扯远了,哈哈哈,说回套件 Transmission。升级 DSM7.0 后,原来安装好的 Transmission 就直接不能用了,无奈之下的我只能选择在 Docker 上安装,得益于容器化的便利性使安装显得十分简单,而且 Docker 上安装还自带了 Web 的中文 UI,通过套件安装的话还得自己升级中文界面。但使用了两、三周后我发现通过 Docker 安装的 Transmission 对于我来说很是不便,一、下载的文件只能放在最开始挂载的目录上,不能切换下载目录(应该可以在安装时挂载多个目录到/downloads上来实现下载时切换下载目录);二、我打开 Docker 界面时发现启动的 Transmission 容器一直占用 2 个 G 的内存,虽然没有深究为什么会这样,也不知道会不会对宿主机造成什么性能上的影响。但我就是看着不舒服,心里一直盘算着SynoCommunity这个社群能早点更新支持 DSM7.0 的 Transmission 版本,但到目前为止这个第三方社群没有一点要更新的迹象。最后通过万能的 Google 查询到已经有人放出支持 DSM7.0 的 Transmission 套件,https://seby.io/download/synology-7.0,下载相应的版本后手动安装即可。

因为是套件的关系,所以安装十分傻瓜式,无脑下一步,然后输入一个用户名和密码(以后登陆 Web 端时使用)就行了,下面主要说下升级中文界面这个坑。

项目地址为:ronggang/transmission-web-control: 一个 Transmission 浏览器管理界面。Transmission Web Control is a custom web UI. (github.com)

这个项目的作者超级用心,提供了多种升级方法,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 目录里不就行了吗?

通过 SSH 连接进行操作

拉取项目/直接下载:

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 时我们要进入这个路径的。

2021-08-18-000212

连接终端并完成文件复制:

一、控制面板——终端机和 SNMP——勾选启动 SSH 功能——应用保存;

2021-08-18-172801

二、在终端上通过 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 查看当前目录

2021-08-18-180839

这里我们可以看到其实目录都是进行了绑定,因为我的 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/

完成。

通过任务计划挂载目录(推荐)

第一步 创建“共享文件夹”

  • 打开 DSM 的 “控制面板”,新建一个共享文件夹,如 mountDrive
  • mountDrive 文件夹下新建一个 transmission 子文件夹,用于链接真实的 transmission

第二步 创建“任务计划”

  • 依次打开 DSM 的 “控制面板” -> “任务计划”

  • 选择 “新增” -> “触发的任务” -> “用户定义的脚本”

  • 任务名称用英文,如:linkTrFolder,事件选择 “开机” ,选中 已启动

  • “任务设置”“运行命令” -> “用户定义的脚本” 中输入:

mount -B /volume1/@appstore/transmission/ /volume1/mountDrive/transmission

备: 取消挂载可执行此命令umount /volume1/@appstore/transmission/ /volume1/mountDrive/transmission

  • 如图:

  • 点击 “确定” 保存计划;

  • 如果没有错误,应该会在任务列表中出现一条名称为 linkTrFolder 的任务;

  • 选中该任务,点击 “运行”,系统将创建一个“软链接”;

第三步 在 File Station 中管理 Tr Web Contorl 内容

  • 打开 File Station,找到 mountDrive -> transmission 文件夹

  • 将在这个目录下看到一些子文件夹,如下图:

  • /mountDrive/transmission/share/transmission/web 即为 webUI 所在目录;

  • 为方便管理,请确认 /mountDrive/transmission/share/transmission/ 目录是否已开启所有用户可以修改操作;

第四步 下载最新的 zip 包

  • 前往发布页面 https://github.com/ronggang/transmission-web-control/releases 下载最新的 zip 文件;
  • 将已下载的 zip 通过 File Station 上传到 /mountDrive/transmission/share/transmission/ 目录下;
  • 通过 File Station 解压这个文件;
  • 如果是第一次安装,请将 /mountDrive/transmission/share/transmission/web/ 下原来的 index.html 文件改为 index.original.html
  • src 目录下的所有文件复制到 /mountDrive/transmission/share/transmission/web/ 目录;
  • 完成;

以后如果有版本更新,执行第四步即可。