15 Installation CentOS 7
jmott85 edited this page 2021-01-26 02:40:03 -06:00

The following instructions are for installing Sonarr on CentOS 7.

Please note these were the steps taken by an experienced user.

  1. Install some repos and packages
yum install epel-release yum-utils -y
rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
yum install wget mediainfo libzen libmediainfo curl gettext mono-core mono-devel sqlite.x86_64 -y
  1. If you have issues or you started from a very base (minimal) install, you may also need
yum -y install wget git par2cmdline p7zip unrar unzip tar gcc python-feedparser python-configobj python-cheetah python-dbus python-devel libxslt-devel yum-utils
  1. Add a user for Sonarr to use
useradd sonarr -s /sbin/nologin
  1. Download, extract and move Sonarr
wget http://update.sonarr.tv/v2/master/mono/NzbDrone.master.tar.gz
tar -xvf ~/NzbDrone.master.tar.gz -C /opt/
rm -f NzbDrone.master.tar.gz
mkdir /opt/sonarr
mkdir /opt/sonarr/bin
mv /opt/NzbDrone/* /opt/sonarr/bin
rm -rf /opt/NzbDrone
  1. Change ownership of the install directory
chown -R sonarr:sonarr /opt/sonarr
  1. Create your systemd unit file
tee /etc/systemd/system/sonarr.service << EOF
[Unit]
Description=Sonarr Daemon
After=syslog.target network.target
[Service]
User=sonarr
Group=sonarr
Type=simple
ExecStart=/usr/bin/mono /opt/sonarr/bin/NzbDrone.exe -nobrowser -data /home/sonarr/.config
TimeoutStopSec=20
[Install]
WantedBy=multi-user.target
EOF
  1. Reload the systemd unit files
systemctl daemon-reload
  1. Create a firewall rule for Sonarr
tee /etc/firewalld/services/sonarr.xml << EOF
<service>
  <short>sonarr</short>
  <description>Sonarr Download Service</description>
  <port protocol="tcp" port="8989"/>
</service>
EOF
  1. Add firewall exceptions if the firewall is enabled
firewall-cmd --reload
firewall-cmd --permanent --add-service sonarr
firewall-cmd --reload
  1. Enable Sonarr to run on startup, and start!
systemctl enable sonarr.service
systemctl start sonarr.service

Troubleshooting:

Symptom:

The service has loaded and when browsing to the site it is blank.

Run the following to test for missing mono links.

systemctl stop sonarr
systemctl start sonarr
journalctl -xe | grep libMonoPosixHelper.so

If you see a line similar to

_System.Net.WebException: /usr/lib/libMonoPosixHelper.so ---> System.DllNotFoundException: /usr/lib/libMonoPosixHelper_  

The resolution below will fix that.

Resolution:

Run the following command

ln -s /usr/lib64/libMonoPosixHelper.so /usr/lib/libMonoPosixHelper.so