Roon Bridge installation error on Raspberry Pi 400 with Ubuntu Desktop 25.10 (ref#Q8L8VP)

Hi! What’s not quite right with Roon?

· None of the above quite fits

None of the above quite fits

· None of these quite match

Tell us what's going on

· Hello,

I have a Raspberry Pi 400 with Ubuntu Desktop 25.10. I'm trying to use the Easy Installer for Roon Bridge Arm v8. However, I'm running into this error during install:

Warning: /tmp/tmp.qsrxXmWG6t/RoonBridge_linuxx64.tar.bz2: No such file or ...

This problem was previously fixed for the Roon Server Easy Install. See here: https://community.roonlabs.com/t/roon-bridge-installation-failure-on-ubuntu-25-04-ref-bp2tad/302275

However, it looks like the East Install script for Roon Bridge Arm v8 has not been updated. Can the team please update the script so I can proceed to install Roon Bridge error-free?

Tell us about your home network

· N/A

Do this …

sudo snap remove curl
sudo apt update
sudo apt install curl --yes

… and try the script again.

Unfortunately, that didn’t work. Here’s the screen shot of the error after curl was reinstalled with your steps:

Looks like it saved the Roon Bridge package but then couldn’t find it.

Would appreciate if the team could update the Easy Install script to fix this error.

A couple questions that may spark ideas for the solution:

  • Is this a curl problem with where the Roon file was saved?
  • Does it matter that I’m using Ubuntu Desktop rather than Ubuntu Server? (The latest version of Ubuntu Server would not install on the RP400, which is why I’m using Ubuntu Desktop.)

curl installed via Snap is contained, and can’t access /tmp.

I see. In the Easy Install script, I note references to “$TMPDIR” all over the place.

If I understand correctly, TMPDIR is a string variable, with its value set by the following line at the top of the script: “TMPDIR=mktemp -d

Can you recommend some other value for TMPDIR to make the script work with curl installed via Snap?

This feels like a newbie question. Apologies for this. I’m a Linux newbie.

Just uninstall the Snap version as confinement means it is very limited. The APT version is identical (and installed by default on a server), but without the restrictions.

You don’t need to alter the script.

Incidentally, mktemp -d creates a folder in /tmp

Yes I already replaced the Snap version of cURL with the Apt version (thanks very much for your help here). However, this didn’t fix the latest error above.

After additional consideration of the install script, I determined that lbzip2 also needed to be installed. The install script works after this is done.

So, for future RP400 tinkerers, run the following Terminal commands after a fresh install of Ubuntu Desktop 25.10:

sudo snap remove curl
sudo apt update
sudo apt install curl --yes
sudo apt install lbzip2

Then run the install script per the Roon Easy Install instructions:

curl -O -L https://download.roonlabs.com/builds/roonbridge-installer-linuxarmv8.sh
chmod +x roonbridge-installer-linuxarmv8.sh
sudo ./roonbridge-installer-linuxarmv8.sh

At this point, the install script runs without issue. As an unexpected bonus, the Roon Bridge service runs at startup without having to login.

Incidentally, I just compared the RP400 with Ubuntu Desktop 25.10 running Roon Bridge (USB out) vs a WiiM Pro Plus (optical out). Both streamers were fed by ethernet. The RP400 absolutely dominated, which was quite a surprise. It had significantly more palpable tonality and depth in my modest garage setup (E70 Velvet DAC → 2 Fosi ZA3 amps in bridge mono → Sony SS-CS5 speakers). I can’t comment on stability since RP400 with Ubuntu Desktop 25.10 is apparently bleeding edge, but I’m very pleased with the results so far.

When running scripts, in contrast to packages, it is necessary to check dependencies (albeit scripts could do this.)

Hi @Big_Bear,

Thank you for following up and for taking the time to share your findings.

You’re absolutely right — in this case the installer script assumes that certain dependencies (including lbzip2) are already present on the system. Installing lbzip2 resolves the extraction error you were seeing, and we’re glad to hear that the Roon Bridge installation completed successfully afterward and is now running as expected.

We appreciate you documenting the full workaround and steps you took, as this will be helpful for other users running Ubuntu Desktop on Raspberry Pi hardware.

At this point, since the issue has been resolved, we’ll go ahead and mark this thread as solved.
If you run into any stability issues going forward or have further questions, please don’t hesitate to open a new thread.

Enjoy your setup, and thanks again for the detailed follow-up!

1 Like

@mjw - Not sure if a script would catch the nested dependancy shortfall here. The install script makes a tar command to unpack the bz2 file. This should work according to the arguments following tar in the script. However, lbzip2 is apparently a dependency for tar when unpacking bz2 files. Hence the need to install the lbzip2 package as well in this case.

@vadim - Sounds good. I can report on day #2 of operation that all appears to be running smoothly so far.

What I would do is test for for the command first, and gracefully exit the script with a message if it’s not present. For example, …

#!/bin/bash
#COMMAND="bunzip2"
COMMAND="lbunzip2"
if [[ ! $(command -v $COMMAND) ]]
then
  printf '%s\n' "$COMMAND is not installed, install with sudo apt install $COMMAND --yes."
else
  printf '%s\n' "$COMMAND installed."
fi

For curl, the test would also examine the path, i.e., /usr/bin/curl vs. /snap/bin/curl.

@mjw - That sounds like a great addition to the install script. It may make the install process more streamlined across various linux distros.

@vadim - Can the Roon team revise the install script accordingly?

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.