Cross‑distro package installer/exporter for Distrobox. Install native packages (.deb/.rpm) into the right container, then expose both CLI binaries and desktop apps back on your host. Includes host shims for apt/dnf/zypper/pacman that operate inside a chosen Distrobox.
- Install .deb/.rpm into a suitable Distrobox (auto‑create if needed)
- Export installed CLIs to
~/.local/binand apps to~/.local/share/applications - First‑run onboarding to generate
apt/dnf/zypper/pacmanhost shims - Auto‑export newly installed apps after package manager transactions
- Desktop integration: double‑click
.deb/.rpm→pkgbridge open %f - Smart collision handling for shims and
.desktopfiles
- Host:
distrobox, container runtime (podmanrecommended ordocker),distrobox-export - Desktop integration:
xdg-mime,update-desktop-database(fromdesktop-file-utils) - Notifications (optional):
notify-send
Build from source (Rust):
git clone https://example.com/pkgbridge.git
cd pkgbridge
cargo build --release
install -Dm755 target/release/pkgbridge ~/.local/bin/pkgbridgeNo Rust? Build with Docker:
docker run --rm -v "$(pwd)":/work -w /work rust:1.84 cargo build --release
install -Dm755 target/release/pkgbridge ~/.local/bin/pkgbridgeNote: Some folders (e.g., OneDrive) may be mounted noexec. If you see “Permission denied” when running the binary from your repo, copy it elsewhere (e.g., /tmp/pkgbridge) before executing.
- Create a base box (example: Debian):
distrobox create --name debian-stable --image docker.io/library/debian:stable -Y- First‑run onboarding will offer to generate shims and export existing apps. Or do it explicitly:
pkgbridge pm set-default debian debian-stable
pkgbridge pm generate-shims- Enable desktop integration (double‑click):
pkgbridge desktop install- Install a package:
pkgbridge install /path/to/file.deb # auto‑selects a Debian/Ubuntu box
pkgbridge install /path/to/file.rpm # auto‑selects a Fedora/openSUSE box- Use host shims for package managers (
~/.local/bin):
apt install htop # runs inside your default Debian/Ubuntu box and auto‑exports
dnf install htop # runs inside your default Fedora box and auto‑exportsRun pkgbridge --help for a quick overview. A full command reference lives in docs/README.md.
open <file>— handle double‑click; auto‑select/create a box and installinstall <file>— install.deb/.rpminto a box and exportexport --container <box> <pkg>— re‑export CLIs/apps for a packageuninstall --container <box> <pkg>— remove exports and uninstall packagelist boxes— list discovered boxes with family classificationpm …— manage defaults, generate shims (apt/dnf/zypper/pacman)desktop …— install/uninstall desktop file + MIME associationsdoctor— environment diagnostics
Global options: --container, --family, --create [--create-image], --bin, --app, --no-export, --log-level, --dry-run.
- Format detection (magic + extension) chooses DEB vs RPM
- Boxes discovered via
distrobox list; family via/etc/os-release - Installs run inside the box (root) via
distrobox enter --root - Exports via
distrobox-exportwith graceful fallbacks and collision handling - Host shims for package managers snapshot → run → post‑transaction auto‑export
- “Permission denied” on binary: copy to a non‑
noexeclocation (e.g.,/tmp) and run ~/.local/binnot on PATH: add it to your shell profile;pkgbridge doctorwill point this out- Missing
distrobox-export/xdg-mime: install packages from your distro
Complete docs, command reference, and examples: see docs/README.md.
Dual‑licensed under MIT or Apache 2.0. See LICENSE.