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.
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.
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.
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.
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.
curl
needs to be installed separately.
And arguably the majority would use APT or DNF etc. Choosing Snap is the issue, not the command used.
Even if someone installs
wget
by Snap,/snap/bin
is last in the PATH.
This isn’t the underlying issue with either curl
or wget
, it’s that they can’t access /tmp
when installed using SNAP.
Choosing Snap is the issue, not the command used.
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.
Even if someone installs
wget
by Snap,/snap/bin
is last in the PATH.
This isn’t the underlying issue with either
curl
orwget
, it’s that they can’t access/tmp
when installed using SNAP.
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.
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
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
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
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…
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.
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
.
Did you move to 22.04 before it was officially released?
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.