Roon on Linux (Ubuntu)

I would like to install the Roon server on my NUC with Ubuntu. The help shows that this is quite simple:

curl -O http://download.roonlabs.com/builds/roonserver-installer-linuxx64.sh
chmod +x roonserver-installer-linuxx64.sh
sudo ./roonserver-installer-linuxx64.sh

Unfortunately, I only get two error messages in the last step:

./roonserver-installer-lunuxx64.sh: 1: cannot open html: No such file
./roonserver-installer-lunuxx64.sh: 2: Syntax error: redirection unexpected

Is it still possible to install the Roon server under Ubuntu?

Just another user here not using a Linux server, but …
… searching the forum for Linux install script I seem to find a solution for your problem in this (click me) thread - hopefully that fixes you up, good luck!

That doesn’t help either. The -L option at least causes the script to be fetched and not some HTML file. However, you still have to redirect the output to a file, which then contains the script that can be started - and is not successfully completed. In a word: it doesn’t work. (I would have been surprised given the general quality of the help texts).

But maybe there is someone here who has installed Roon under Linux and knows how to do it?

I have found a solution. The steps I took to achieve this success are:

sudo apt install curl
sudo apt install libzip2
sudo apt install cifs-utils
sudo apt install ffmpeg

curl -L http://download.roonlabs.com/builds/roonserver-installer-linuxx64.sh > roonserver-installer-linuxx64.sh
chmod +x roonserver-installer-linuxx64.sh
sudo ./roonserver-installer-linuxx64.sh

The first steps (above the blank line) may be unnecessary, but on a freshly installed system like mine, they seem to be. If the relevant programmes are already installed, the commands won’t do any harm either.

God knows I’m not a Linux expert, so I can’t say whether everything is quite right, but it worked. Quite in contrast to the presentation on the notoriously erroneous help pages.

This is the installation of the server on an x86 system. For Bridge and other systems, the steps would probably have to be adapted somehow.

Just a little tweak, you can combine the first part into the below to make things go by a little quicker. Also made some minor tweaks to use wget instead of curl. For simple file-grabs like this, wget is a bit simpler.

## FOR APT-BASED SYSTEMS LIKE UBUNTU/DEBIAN ONLY.
## For yum-based systems, replace the first few lines with the appropriate yum commands instead

# Pulls a fresh package list because sometimes you're running outdated packages on a fresh system.
sudo apt-get update && sudo apt-get upgrade -y

# Install Roon dependencies
sudo apt-get install -y curl libzip2 cifs-utils ffmpeg

wget http://download.roonlabs.com/builds/roonserver-installer-linuxx64.sh
chmod +x roonserver-installer-linuxx64.sh
sudo ./roonserver-installer-linuxx64.sh

Just as a quick Linux tip, curl https://example.com/ -o output.txt will output into a file. No need for a stdout redirect (which is actually bad practice for this use case).

You used -O instead of -o (lowercase).

Yes, thank you. I have since figured it out and installed Roon on Ubuntu, although the description is wrong.

That doesn’t help me much, though, because I can’t determine how to transfer files from my Mac to an Ubuntu machine. The Ubuntu documentation doesn’t seem to say anything about this. And of course, if I can’t transfer files, the whole thing is worth nothing…

(I’m convinced it works somehow, but I can’t guess).

I sympathize with your frustrations, but you needn’t be jumping to conclusions without knowing the facts, since I used the instructions about 3 months ago to install Roon bridge on a newly acquired RPi5 running on RPi-OS without problems.

But yes, it certainly is making for a bad user experience to not keep the help pages up to date!

@Werner_Hintze

Courtesy of ChatGPT4o:

For sharing live directories (i.e., directories that remain in sync) between a Mac and an Ubuntu machine, you can use network file sharing solutions like NFS (Network File System) or SMB (Server Message Block). Below are the instructions for both methods.

Method 1: Using NFS (Network File System)

On Ubuntu:

  1. Install NFS server:

    sudo apt update
    sudo apt install nfs-kernel-server
    
  2. Create a shared directory:

    sudo mkdir -p /mnt/shared_directory
    sudo chown nobody:nogroup /mnt/shared_directory
    sudo chmod 777 /mnt/shared_directory
    
  3. Configure NFS exports:
    Edit the /etc/exports file to add the shared directory:

    sudo nano /etc/exports
    

    Add the following line:

    /mnt/shared_directory *(rw,sync,no_subtree_check)
    
  4. Export the shared directory:

    sudo exportfs -a
    
  5. Start the NFS server:

    sudo systemctl restart nfs-kernel-server
    
  6. Allow NFS through the firewall:

    sudo ufw allow from any to any port nfs
    

On Mac:

  1. Install NFS client:
    NFS client is usually pre-installed on macOS. If not, you can install it using Homebrew:

    brew install nfs-client
    
  2. Create a mount point:

    sudo mkdir -p /mnt/shared_directory
    
  3. Mount the NFS share:

    sudo mount -t nfs ubuntu_ip_address:/mnt/shared_directory /mnt/shared_directory
    

    Replace ubuntu_ip_address with the IP address of your Ubuntu machine.

  4. Make the mount persistent:
    Add the following line to /etc/fstab:

    ubuntu_ip_address:/mnt/shared_directory /mnt/shared_directory nfs rw,auto 0 0
    

Method 2: Using SMB (Server Message Block)

On Ubuntu:

  1. Install Samba:

    sudo apt update
    sudo apt install samba
    
  2. Create a shared directory:

    sudo mkdir -p /mnt/shared_directory
    sudo chown nobody:nogroup /mnt/shared_directory
    sudo chmod 777 /mnt/shared_directory
    
  3. Configure Samba:
    Edit the /etc/samba/smb.conf file:

    sudo nano /etc/samba/smb.conf
    

    Add the following lines at the end:

    [shared_directory]
    path = /mnt/shared_directory
    browseable = yes
    read only = no
    guest ok = yes
    
  4. Restart Samba service:

    sudo systemctl restart smbd
    
  5. Allow Samba through the firewall:

    sudo ufw allow 'Samba'
    

On Mac:

  1. Connect to the SMB share:
    Open Finder, press Command+K, and enter:

    smb://ubuntu_ip_address/shared_directory
    

    Replace ubuntu_ip_address with the IP address of your Ubuntu machine.

  2. Mount the share:
    Click “Connect” and the shared directory should mount.

Conclusion

Using NFS or SMB, you can share live directories between a Mac and an Ubuntu machine, allowing you to keep files in sync and accessible from both systems.

2 Likes

Like @Henry_Svendblad, you need to install a file service into Ubuntu (assuming you are using Ubuntu Server (CLI-only) rather than Ubuntu Desktop).

Overwhelming would recommend SMB for sharing to a Mac since it’s the easier option to set up. This tutorial is a little old but the steps really haven’t changed in the last few years.

Unfortunately, the guide assumes a basic working knowledge of Linux, as Linux isn’t famous for its handholding. For most people, I would actually not recommend doing it that way, as there is a lot to learn to put it lightly.

1 Like

While these instructions are fine, I may not recommend at least this block:

sudo mkdir -p /mnt/shared_directory
sudo chown nobody:nogroup /mnt/shared_directory
sudo chmod 777 /mnt/shared_directory

In purely security best-practices, 777 is a big no no since that gives global read/write/execute access to anyone on the system. You’re better off setting granular permissions:

sudo chown <yourusername>:<yourgroupname> /mnt/shared_director
sudo chown -R 755 /mnt/shared_director # Use 700 for more locked down security
1 Like