# Linux AppImage packaging Releases ship raw AppImages (no zip wrapper): - `gen1recomp--linux-x86_64.AppImage` - `gen1recomp--linux-arm64.AppImage` ```sh chmod +x gen1recomp-*-linux-x86_64.AppImage ./gen1recomp-*-linux-x86_64.AppImage ``` Flatpak users should prefer the `.flatpak` bundle (see [linux-flatpak.md](linux-flatpak.md)); it avoids host glibc / FUSE / curl mismatches on immutable desktops. ## Common failure modes | Symptom | Cause | Fix | |---|---|---| | Won't start / `libfuse.so.2` | No FUSE | `sudo apt install libfuse2` (or `libfuse2t64`) **or** `./app.AppImage --appimage-extract-and-run` | | Update check / mods / save sync fail | Host `curl` missing or broken by AppImage `LD_LIBRARY_PATH` | Install curl; current builds scrub `LD_LIBRARY_PATH` for **host** curl and keep it for a bundled AppDir curl | | Settings / sync reset after quit | Portable mode next to a read-only AppImage parent (`/opt`, system dir) | Remove `portable.txt` or move the AppImage to a writable folder; the game falls back to the XDG save dir when the probe write fails | | "Download AppImage update" | Shell/`minShell` gate needs a full native package | Download the new `.AppImage`, `chmod +x`, replace the old file | | Steam / Game Mode weirdness after update | Overlay `LD_PRELOAD` / PID change | HostShell unsets `LD_PRELOAD` for children and `execv`s `$APPIMAGE` on restart | ## Network transport (HostShell) Desktop Linux fetches go through host or bundled `curl`: 1. Flatpak `/app/bin/curl` (bundled, keep sandbox libs) 2. `$APPDIR/usr/bin/curl` or `$APPDIR/bin/curl` (keep `$APPDIR` on `LD_LIBRARY_PATH`) 3. Host `curl` (`env -u LD_LIBRARY_PATH`, and always `-u LD_PRELOAD`) ## Portable mode Drop `portable.txt` beside the `.AppImage` to keep saves next to the binary. The launcher probes writability with a unique `.write_probe_