Beware installing Roon on Ubuntu

Yes I believe I installed curl… updated and moved to top.
I needed to install curl and bzip2 as dependencies to install.

I updated the instructions.
My instructions are for a manual install.

1 Like

If Snap is used to install wget the same problem would occur. So, the solution is straightforward: don’t use Snap in this instance.

As I mentioned wget is installed with the system by default, so this point is moot and the script will work for the uninformed like I was.

Why did you have to install bzip2? I didn’t have to and it’s not used by the script, tar is used.

I didn’t use the script.
The instructions are for a manual install.

No more so than installing Curl using Snap rather than APT.

And, remember, this is a script that needs to work for multiple distributions.

As mentioned above, dependencies are usually the responsibility of the user in Linux. Try installing software that has specific version dependencies , e.g. database, Java, Node etc., and you understand why Roon package this way.

Because the install script downloads a bzip2-compressed package which must be uncompressed by tar while extracting the files… bzip2 will be used by tar to do so…

PACKAGE_URL=https://download.roonlabs.net/builds/RoonServer_linuxx64.tar.bz2

I am not sure I am following you. Your instructions have these lines:

This is the script.

I am aware of the bz2 package but I didn’t have to install bzip2 and the script worked. I thought tar could do it on its own.

1 Like

I am not following you. wget is installed with the system. curl needs to be installed separately. They do the same thing. Then using wget will make the script more universal, more suitable for various distributions. Even if someone installs wget by Snap, /snap/bin is last in the PATH. The system wget will be used instead without problems.

And arguably the majority would use APT or DNF etc. Choosing Snap is the issue, not the command used.

This isn’t the underlying issue with either curl or wget, it’s that they can’t access /tmp when installed using SNAP.

You missed the part where I didn’t choose Snap and didn’t voluntarily install their curl. And I am not alone based on several other similar threads on various forums.

Using wget instead of curl will make the installation foolproof reducing support inquiries. wget and curl do the same operation. wget comes with the system. Even if someone installs it with Snap the trouble-free system version will be used instead.

There was no issue described in my my sentence that you quoted. It was an explanation why Snap’s wget would not cause the same issue Snap’s curl did. The system wget will be used because it is pre-installed with the system and the path to it is earlier in the PATH than to Snap’s wget. curl is not pre-intalled and if someone’s Snap somehow installs curl it will be used and cause problems. Besides people will have to install curl while wget is already there.

The install script is for the masses who may not know these details. With everything else being equal it is better to use wget instead of curl.

Here an interesting take on this by the cURL developer…

https://daniel.haxx.se/docs/curl-vs-wget.html

I agree with @G_P that in this case using wget, which is part of a standard Linux installation, could avoid the problems resulting from a cURL snap and may therefore be preferable.

1 Like

My experience is that just running the Roon script, without installing prerequisites like curl first, results in curl being installed by snap

edit: It’s probably not installed automagically, I assume I followed the suggestions made by Ubuntu Desktop to use snap to install curl

1 Like

I had an issue as well when I first tried to install Roon server on Ubuntu 20.04. I posted here and someone mentioned curl looks messed up, so I researched and I probably was the one who posted not to use snap curl installation as it is worthless in this case. So I posted a solution that worked for me.

Then when I moved to 22.04 I used the same method that worked for me with 20.04 to install curl ( sudo apt install curl ) except this did not work in 22.04 so then more research and I did the following listed below to install curl and then everything went smoothly via easy install.

Correctly install Curl (new for 22.04)

           sudo apt install software-properties-common apt-transport-https curl -y

           sudo add-apt-repository ppa:savoury1/curl34 -y

           sudo apt update

           sudo apt install curl -y

To Uninstall curl
sudo apt autoremove curl -y then
sudo add-apt-repository ppa:savoury1/curl34 --remove -y
sudo apt update

Did you move to 22.04 before it was officially released? If you do a quick search for installing curl on 22.04, you’ll find numerous ‘tutorials’ which don’t mention the need to configure any additional repository.

I installed curl originally on 20.04, and when upgrading the distro to 22.04, the tool was updated just fine without need of any additional repository…

1 Like

After I uninstalled the Snap curl I also just did sudo apt install curl. There is no need for additional repositories. The Roon installation script worked fine.

1 Like

Wow! This is big if confirmed. Maybe that’s how I got the Snap curl. I just ran the Roon installation script as per instructions assuming curl was part of the system. I wonder if there is any way to prevent Snap from auto-installing of programs.

I’ve just installed a clean VM with Ubuntu 20.04.5 Server, and I confirm that curl is installed by default on this system, i.e. /usr/bin/curl.

This is on the minimal installation with no additional packages. All I did was sudo apt update && sudo apt upgrade --yes after first boot.

Thus, the steps to install Roon Server are as follows.

sudo apt install cifs-utils ffmpeg --yes
curl --output roonserver-installer-linuxx64.sh https://download.roonlabs.net/builds/roonserver-installer-linuxx64.sh
chmod +x roonserver-installer-linuxx64.sh
sudo ./roonserver-installer-linuxx64.sh

Apart from core20, snapd and lxd, no other Snaps are installed; on desktop I think there’s Firefox, but Snap never installs anything without user interaction.

I’m pretty certain you’ll get the same results with Ubuntu 22.04.

The easiest way to confirm this is to execute the following on first install:

apt list curl -a
snap list curl

Edit: On a clean installation of Ubuntu 22.04 Desktop, curl is not installed.

martin@ubuntu-desktop:~$ curl --help
Command 'curl' not found, but can be installed with:
sudo snap install curl # version 7.86.0, or
sudo apt  install curl # version 7.81.0-1ubuntu1.6
see 'snap info curl, for additional versions

Okay, so let’s see what happens when we install Roon Server without curl. I’m downloading with wget this time, which is available on Ubuntu Desktop [installed, automatic].

sudo apt install cifs-utils ffmpeg --yes
wget -O roonserver-installer-linuxx64.sh https://download.roonlabs.net/builds/roonserver-installer-linuxx64.sh
chmod +x roonserver-installer-linuxx64.sh
sudo ./roonserver-installer-linuxx64.sh

It fails immediately with “curl: command not found”. So, all good.

I don’t consider a change to the script necessary. However, I note that Ubuntu gives Snap precedence in the command not found message, so a noob would most likely follow that and install the Snap version, which can’t write to /tmp.

However, the fix is straightforward: sudo snap remove curl && sudo apt install curl --yes.

2 Likes

Yes about 3 weeks before official release. “Sudo apt install curl” did not work at that time, but what I posted did. Guess it could be related to my 22.04 install was beta as it was a few weeks before official release.