CentOS8安装Sonarr V3

2022-9-19 2,228 9/19

说明

Sonarr下载指南中Linux没有提供CentOS的下载教程,而网上检索centos+sonarr结果不尽人意(万恶的SonarQube)。索性就自己来写教程好了CentOS8安装Sonarr V3

导入密钥

根据官方文档,可用如下命令

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'

但是在实际运行中,后面两条命令会报错

CentOS8安装Sonarr V3

报错1:No matching repo to modify: powertools

原因

CentOS8安装Sonarr V3

为了 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

CentOS8安装Sonarr V3

原因: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替换其中的包即可

CentOS8安装Sonarr V3

链接: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

 

- THE END -

懒人

11月23日14:56

非特殊说明,本博所有文章均为博主原创。