Dependencies for Building .deb, .rpm, and AppImage Packages for Claude Desktop
Building Claude Desktop for Linux requires only standard packaging tools: dpkg-dev for Debian/Ubuntu, rpm-build for Fedora/RHEL, and appimagetool (auto-downloaded) for AppImage, plus common GNU core utilities available on any Linux distribution.
The aaddrick/claude-desktop-debian repository extracts the official Windows Claude Desktop client, patches it for Linux Cowork mode, and repackages it into three native distribution formats. Understanding the specific dependencies for building .deb, .rpm, and AppImage packages ensures you can produce installable artifacts on any supported Linux distribution without unnecessary bloat.
Package Format Overview
The build system uses format-specific scripts triggered by a top-level orchestrator. Each script constructs the appropriate filesystem layout, generates metadata files, and invokes the native packaging tool.
| Package | Build Script | Primary Build Tool | Runtime Target |
|---|---|---|---|
| Debian/Ubuntu (.deb) | scripts/build-deb-package.sh |
dpkg-deb (from dpkg-dev) |
apt/dpkg-based distros |
| RPM (Fedora, RHEL, CentOS) | scripts/build-rpm-package.sh |
rpmbuild (from rpm-build) |
dnf/yum-based distros |
| AppImage | scripts/build-appimage.sh |
appimagetool (downloaded automatically) |
Distribution-agnostic portable binary |
All formats share a common launcher library (scripts/launcher-common.sh) that provides the --doctor diagnostics, Electron environment setup, and desktop entry generation.
Build Dependencies by Package Format
Debian/Ubuntu (.deb) Dependencies
The Debian package build requires minimal tooling. The script scripts/build-deb-package.sh constructs the DEBIAN/ control directory and uses dpkg-deb to assemble the final archive.
- Required package:
dpkg-dev(providesdpkg-debbinary) - Standard utilities:
mkdir,rm,cp,install,chmod(GNU coreutils, present by default) - Runtime note: No external library dependencies are declared; Electron is fully bundled, and the post-install script only adjusts
chrome-sandboxpermissions.
Install the build tool on Debian or Ubuntu:
sudo apt update && sudo apt install dpkg-dev
RPM (Fedora/RHEL) Dependencies
The RPM build in scripts/build-rpm-package.sh prepares the RPM build environment, writes a .spec file, and invokes rpmbuild.
- Required package:
rpm-build(providesrpmbuildbinary) - Standard utilities: Same GNU coreutils as the Debian flow
- Runtime note: Like the
.deb, the resulting RPM embeds the full Electron runtime and declares no external dependencies.
Install the build tool on Fedora:
sudo dnf install rpm-build
On RHEL/CentOS:
sudo yum install rpm-build
AppImage Dependencies
The AppImage build is the most self-contained but requires downloading the packaging tool if not present locally. The script scripts/build-appimage.sh (lines 295-313) handles this automatically.
- Required tool:
appimagetool(downloaded from official AppImageKit releases if not inPATH) - Optional tool:
zsyncmake(used only in GitHub Actions to generate.zsyncupdate metadata; the script attempts installation viaapt-get,dnf, orzypper) - Download utility:
wget(used to fetchappimagetool)
Pre-install optional tools for local builds:
# Debian/Ubuntu
sudo apt install wget zsync
# Fedora
sudo dnf install wget zsync
# Arch Linux
sudo pacman -S wget zsync
The Build Process Workflow
The top-level build.sh orchestrates the entire pipeline, detecting the host distribution and invoking the appropriate format-specific script. The workflow follows these stages:
- Download and extract the official Windows installer (handled in
build.sh). - Patch the Electron bundle to replace the macOS-only native module with the Linux Cowork VM client.
- Stage the application (
app_staging_dir) containingnode_modules/electron,app.asar, andapp.asar.unpacked. - Create package-specific filesystem layout (e.g.,
DEBIAN/for.deb,SPECS/andBUILD/for.rpm,AppDirfor AppImage). - Generate metadata files (
controlfor.deb,.specfor.rpm,.desktopfor AppImage). - Copy shared launcher library (
launcher-common.sh) into the package. - Create post-install scripts (sets Chrome-sandbox permissions).
- Run the packaging tool (
dpkg-deb --build,rpmbuild -bb, orappimagetool).
The scripts are deliberately lightweight, relying only on standard GNU core utilities plus the specific packaging tool listed for each format.
Practical Build Commands
# Clone the repository
git clone https://github.com/aaddrick/claude-desktop-debian.git
cd claude-desktop-debian
# Build a .deb package (auto-detects distro)
./build.sh --build deb
# Build an .rpm package
./build.sh --build rpm
# Build an AppImage (portable)
./build.sh --build appimage
All three commands produce the final artifact in the build/ directory, named using the convention <package-name>-<version>-<arch>.<ext> (e.g., claude-desktop-1.1.799-amd64.deb).
Verifying Cowork-Mode Runtime Dependencies
The launcher’s --doctor flag prints distro-specific install hints for the Cowork back-ends (bubblewrap, QEMU/KVM, etc.):
./claude-desktop-*.AppImage --doctor
The output uses helper functions in scripts/launcher-common.sh to map each required tool to the appropriate package manager command.
Summary
- Debian/Ubuntu builds require only
dpkg-dev(providingdpkg-deb) plus standard GNU coreutils. - RPM builds need
rpm-build(providingrpmbuild) and the same core utilities. - AppImage builds download
appimagetoolautomatically but optionally usezsyncmakeandwgetfor local builds or CI metadata generation. - All formats share the
scripts/launcher-common.shlibrary and produce self-contained packages with no external runtime dependencies. - The top-level
build.shscript orchestrates the entire workflow, detecting the host distribution and invoking the appropriate format-specific script.
Frequently Asked Questions
What is the minimum toolset required to build the Debian package?
You only need the dpkg-dev package, which provides the dpkg-deb binary used by scripts/build-deb-package.sh to assemble the .deb archive. Standard utilities like mkdir, cp, and chmod from GNU coreutils are also used, but these are present by default on virtually all Linux systems.
Does the AppImage build require internet access?
Internet access is required only if appimagetool is not already in your PATH. The scripts/build-appimage.sh script checks for the tool locally; if missing, it automatically downloads the appropriate binary from the official AppImageKit releases using wget. Once appimagetool is present, subsequent builds can run offline.
Are there any runtime dependencies for the resulting packages?
No. All three package formats (.deb, .rpm, and AppImage) bundle the complete Electron runtime and the patched Claude Desktop application. The only post-installation action performed is setting the correct permissions on the chrome-sandbox binary. The separate --doctor diagnostic flag can identify optional Cowork-mode back-ends (like bubblewrap or QEMU), but these are not required for the base application to function.
How do I verify my build environment is correctly configured?
Run the top-level build script with the --build flag for your target format. The individual scripts (scripts/build-deb-package.sh, scripts/build-rpm-package.sh, scripts/build-appimage.sh) will fail early with a clear error if the required tools (dpkg-deb, rpmbuild, or appimagetool) are missing. For runtime verification, execute the built AppImage or installed package with the --doctor flag to check Cowork-mode readiness.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →