Install from source
Use this when your distribution has no package (Packages lists which do). The result is a single native binary that needs neither Rust nor mise to run.
If you want to work on Wusel rather than just install it, follow Set up a development environment instead — it covers the same build plus the test suite.
1. Build tools
Rust uses the system linker, and the mount needs the FUSE library. Install both.
RPM-based:
sudo dnf group install development-tools
sudo dnf install pkgconf-pkg-config fuse3-devel fuse3
Debian-based:
sudo apt update
sudo apt install build-essential pkg-config libfuse3-dev fuse3
fuse3-devel / libfuse3-dev are the headers, needed while building; fuse3
is the runtime fusermount3 helper, needed while running. Missing compiler
tooling shows up as error: linker 'cc' not found — that is this step, not a
bug.
To build the Nautilus extension as well, add its development files:
nautilus-devel glib2-devel gtk4-devel gcc make on RPM-based systems,
libnautilus-extension-dev libglib2.0-dev libgtk-4-dev gcc make on Debian-based ones.
2. The toolchain
Wusel pins its exact Rust version with mise, so you do not install or manage Rust yourself:
curl https://mise.run | sh
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc # zsh: activate zsh, ~/.zshrc
Open a new terminal so the activation takes effect.
Activation is the step people miss. Installing mise only puts the
program on disk; until you activate it, cargo is "command not found" even
though Rust is installed.
|
3. Build
git clone https://github.com/itbh-at/wusel.git
cd wusel
mise install
cargo build -p wusel --features fuse --release
--features fuse is what compiles the mount in. Without it you get a binary
that can log in and manage pins but cannot mount anything.
4. Install the binary
System-wide, which is the reliable choice because /usr/local/bin is always on
the PATH:
sudo install -Dm755 target/release/wusel /usr/local/bin/wusel
Or for your user alone, assuming ~/.local/bin is on your PATH:
install -Dm755 target/release/wusel ~/.local/bin/wusel
From here it is an ordinary command — wusel login …, wusel mount — with no
cargo run, no --features, no -- separator.
5. Optional: the Nautilus extension
The wusel-nautilus package ships this; a source build does not. Building it by hand:
cd integration/nautilus
make
sudo make install # the .so into the extension dir, emblem icons into hicolor
nautilus -q # restart Nautilus so it loads the extension
make install also refreshes the icon cache; make uninstall removes both.
The menu actions run wusel: the extension looks for it on Nautilus’s PATH,
then in /usr/local/bin, /usr/bin and ~/.local/bin. The .so is tied to
the Nautilus major version, so it is built against the Nautilus you have.
The GNOME Shell search provider is registered separately, from
integration/gnome-search/install.sh.
6. Switch it on
wusel login https://cloud.example.org
wusel service enable
wusel service enable writes and enables the systemd user unit for you. Run it
from the installed binary, not through cargo run: the service records the
path of the binary you enabled it with, and one under target/ breaks the
moment that directory is cleaned.