说明
Sonarr下载指南中Linux没有提供CentOS的下载教程,而网上检索centos+sonarr结果不尽人意(万恶的SonarQube)。索性就自己来写教程好了
导入密钥
根据官方文档,可用如下命令
yum install epel-release yum-utils -y yum config-manager --set-enabled powertools rpm --import 'http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x3fa7e0328081bff6a14da29aa6a19b38d3d831ef'
但是在实际运行中,后面两条命令会报错
报错1:No matching repo to modify: powertools
为了 CentOS Linux 迁移到 CentOS Stream 的过程更加容易,官方自 CentOS Linux 8.3.2011 起,对 /etc/yum.repos.d
中的一些文件名称已经被修改。
我运行时的系统是centos8.2,此时名称并未更改。所以应该将powertools改成PowerTools
yum config-manager --set-enabled PowerTools
报错2:curl :Could not resolve host: pool. sks-keyservers.net
原因:pool. sks-keyservers.net找个站点已不可用,将其更换成https://keyserver.ubuntu.com/的源即可,用如下命令替换
rpm --import 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3fa7e0328081bff6a14da29aa6a19b38d3d831ef'
安装依赖
导入源
dnf config-manager --add-repo https://download.mono-project.com/repo/centos8-stable.repo
安装软件包
yum -y install wget git par2cmdline p7zip unrar unzip tar gcc python-feedparser python-configobj python-cheetah python-dbus python-devel libxslt-devel mediainfo libzen libmediainfo curl gettext mono-core mono-devel sqlite.x86_64
在安装依赖时,依然会报错,报错1:No match for argument:python-feedparser
原因:Centos 8已经换成python3,将包名从python改为python3即可,改为如下命令
yum -y install wget git par2cmdline p7zip unrar unzip tar gcc python3-feedparser python3-configobj python3-cheetah python3-dbus python3-devel libxslt-devel mediainfo libzen libmediainfo curl gettext mono-core mono-devel sqlite.x86_64
报错2:下载mono依赖时速度太慢超时或没有可用镜像源,运行停止
这个问题很抽象,建议直接手动下载,然后导入对应路径,而不是让服务器下载。首先卸载mono,设置缓存后,重新安装mono
yum remove mono #卸载mono vim /etc/yum.conf#编辑yum配置文件
配置文件中加入下面两行
cachedir=/var/cache/yum/ keepcache=1
安装mono
# centos8 rpmkeys --import "http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x3fa7e0328081bff6a14da29aa6a19b38d3d831ef" su -c 'curl https://download.mono-project.com/repo/centos8-stable.repo | tee /etc/yum.repos.d/mono-centos8-stable.repo' # centos7 rpmkeys --import "http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x3fa7e0328081bff6a14da29aa6a19b38d3d831ef" su -c 'curl https://download.mono-project.com/repo/centos7-stable.repo | tee /etc/yum.repos.d/mono-centos7-stable.repo' # 安装 yum -y install wget git par2cmdline p7zip unrar unzip tar gcc python3-feedparser python3-configobj python3-cheetah python3-dbus python3-devel libxslt-devel mediainfo libzen libmediainfo curl gettext mono-core mono-devel sqlite.x86_64
此时没有手动导入,报错依旧,但已修改了缓存路径,缓存文件会在/var/cache/yum
路径
接下来只需要手动下载mono包,然后解压放到/var/cache/yum
替换其中的包即可
链接:https://pan.baidu.com/s/1rkix1Qyr8IxUwdpwZG2TFQ
提取码:csdn
替换后再次运行命令即可
yum -y install wget git par2cmdline p7zip unrar unzip tar gcc python3-feedparser python3-configobj python3-cheetah python3-dbus python3-devel libxslt-devel mediainfo libzen libmediainfo curl gettext mono-core mono-devel sqlite.x86_64
这是替换后运行命令的样子
以上内容参考文章:CentOS8离线安装mono
下载并运行Sonarr
首先在sonarr官方下载linux的包,并传到服务器。然后进入该压缩包的路径执行命令。本文以Sonarr.main.3.0.9.1549.linux.tar.gz为例
tar -xvf ~/Sonarr.main.3.0.9.1549.linux.tar.gz -C /opt/ #解压并放到/opt目录下,此时解压出来的文件在/opt/Sonarr中 rm -f Sonarr.main.3.0.9.1549.linux.tar.gz #删除压缩包 mkdir /opt/sonarr #在/opt创建sonarr文件夹 mkdir /opt/sonarr/bin #创建bin文件夹 mv /opt/Sonarr/* /opt/sonarr/bin #移动/opt/Sonarr中的文件到/opt/sonarr/bin rm -rf /opt/Sonarr #删除/opt/Sonarr文件夹
创建服务 ,下面我将用户修改为root用户,用于访问服务器其他文件夹
tee /etc/systemd/system/sonarr.service << EOF [Unit] Description=Sonarr Daemon After=syslog.target network.target [Service] User=root Group=root Type=simple ExecStart=/usr/bin/mono /opt/sonarr/bin/Sonarr.exe -nobrowser -data /opt/sonarr TimeoutStopSec=20 [Install] WantedBy=multi-user.target EOF
重载服务,使服务生效
systemctl daemon-reload
启动sonarr并允许开机启动
systemctl enable sonarr.service systemctl start sonarr.service
其他命令
systemctl status sonarr.service #查看sonarr状态 systemctl stop sonarr.service #停止sonarr
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://nekocat.top/centos-sonarr/