群晖套件重装过程中提示端口被占用的解决方案
写作说明
的一些套件,比如emby、plex、transmission 等,在套件中心卸载后,再一次重新安装时可能会提示“此套件所需的XX端口已用于另一个服务,或是已被系统保留。请停用或修改冲突的服务,或是联系开发者来修改套件设置”,导致我们无法重新安装套件。
Port 8096 configured for this package is either used by another service or reserved for system use. Please disable or modify the conflicting service
下面我将以EMBY为例,记录问题的解决过程
原因分析
既然提示端口被占用,肯定在卸载套件后,系统依然有卸载残留,而且经过尝试,重启后重新安装套件依然会提示端口被占用。
所以可以推测,应该是有某项端口注册的服务跟随系统启动生效。
通过防火墙查看端口占用情况
我们可以通过群晖的防火墙查看端口是否依然被已经卸载的套件所占用。
打开群晖控制面板--安全性
点击启用防火墙,然后点击应用按钮。
然后点击编辑规则
单击新增,选择端口分类里面的从内置服务的列表选择端口,然后点击右侧的选择按钮,可以查找到端口的占用情况。
至此我们已经知道套件的卸载并不完全。此时,不需要防火墙的可以将其关闭。
通过SSH查看群晖开机启动的服务
请打开群晖的ssh访问,并准备ssh工具(比如putty),ssh登录等相关操作请自行搜索
1、使用ssh工具登录群晖
2、使用sudo -i 切换到 root 账户 (会提示你输入密码)
3、切换到目标路径 cd /usr/local/etc/services.d/
4、通过 ls 命令查看当前目录下的文件
通过上图我们发现,存在残余文件 EmbyServer.sc
我们可以通过vi 命令查看一下文件的内容,发现基本上就是端口注册的声明。
所以我们只需要通过命令行删除文件 EmbyServers.sc ,
删除后重启即可重新安装套件此时将不再提示端口占用
。
下面以Emby为例,说明一下群晖如何完整卸载此类套件
第一步:套件中心卸载套件
第二步:控制面板删除emby用户
控制面板--用户账号--找到emby--右键删除
第三步:删除emby创建的共享文件夹
控制面板--共享文件夹--找到emby--右键删除(按提示输入密码)
第四步:打开群晖的ssh,ssh登录后切换root账号,然后删掉/usr/local/etc/services.d/目录下的文件
第五步:重启群晖
重启后应该可以重新安装套件了,如果希望保存以前的文件仅仅重装的话,仅删除/usr/local/etc/services.d/目录下的文件即可,无需删除共享文件夹和emby账户。