Passenger on Linux
Passenger is made for Windows and macOS first. Its Linux builds come from the same code and are newer and less tested, so please report anything that goes wrong.
1. What it needs
A 64-bit Intel or Arm machine with a desktop, and:
- A .NET SDK, version 10 or later, from Microsoft's
Linux packages or install script, with
dotneton your PATH (orDOTNET_ROOTnaming its folder). Passenger builds and runs your projects with it, and Roslyn's language server runs on it. - Git, and the X11 and fontconfig libraries most desktops already have. On a Wayland desktop, Passenger runs through XWayland.
# Ubuntu, Debian sudo apt install git libx11-6 libice6 libsm6 libfontconfig1 # Fedora sudo dnf install git libX11 libICE libSM fontconfig
2. Download and unpack
arch=$(uname -m | sed 's/x86_64/x64/; s/aarch64/arm64/')
curl -LO \
https://github.com/Zaneris/passenger/releases/latest/download/Passenger-linux-$arch.tar.gz
tar -xzf Passenger-linux-$arch.tar.gz
That makes a passenger folder. Passenger is self-contained: it can run from there as it is
(./passenger/passenger), with nothing installed.
3. Install
./passenger/install.sh
For you alone, with no root needed. It copies Passenger to ~/.local/opt/passenger, links
~/.local/bin/passenger, and adds Passenger to your applications menu with its icon. If
~/.local/bin is not on your PATH yet, add it:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.profile
For everyone on the machine, run it with sudo ./passenger/install.sh --system, which uses
/opt/passenger, /usr/local/bin and /usr/share/applications instead.
Then open a folder or a solution from the menu, or from a shell:
passenger ~/src/MySolution
Updating
Download and unpack the newer release, then run its install.sh as before. It replaces the old files
and keeps your settings.
Uninstalling
~/.local/opt/passenger/install.sh --uninstall
# or, if it was installed for everyone
sudo /opt/passenger/install.sh --uninstall --system
Your settings and layout stay in ~/.local/share/Passenger; delete that folder to remove them too.
If something goes wrong
- C# has colour but no completion or errors: Passenger could not start Roslyn's language server.
Check that
dotnet --list-sdksshows a version 10 or later SDK. - Attach to Process is refused: most distributions only let a debugger attach to its own child
processes. Debugging a program Passenger starts works as it is; to attach to one it did not start, allow it
until the next restart with
sudo sysctl kernel.yama.ptrace_scope=0. - The window does not open: run
passengerfrom a shell to see why, and check the libraries in step 1.