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 端时使用)就行了,下面主要说下升级中文界面这个坑。
这个项目的作者超级用心,提供了多种升级方法,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 时我们要进入这个路径的。
连接终端并完成文件复制:
一、控制面板——终端机和 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/
完成。
通过任务计划挂载目录(推荐)
第一步 创建“共享文件夹”
- 打开 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/
目录; - 完成;