Install .deb, .rpm, AppImage, Flatpak and tar.gz Files on Linux

Short answer
# .deb (Ubuntu, Debian, Mint) - the ./ matters
sudo apt install ./package.deb

# .rpm (Fedora / openSUSE)
sudo dnf install ./package.rpm
sudo zypper install ./package.rpm

# AppImage (any distro)
chmod +x App.AppImage
./App.AppImage

# Flatpak bundle or ref file
flatpak install ./app.flatpakref

Before using any of these, check whether the app is in your distro's repositories or on Flathub. That way it updates with the rest of the system.

Which format should you pick?

Many projects offer several downloads. In rough order of preference:

  1. Your distro's repository (apt, dnf, pacman, zypper): tested for your release, updated automatically. See the package managers guide.
  2. Flathub: sandboxed, works on every distro, updates through flatpak update or the software center.
  3. The vendor's own repository: many .deb/.rpm downloads (Chrome, VS Code, Signal) add one during install so you get updates.
  4. A one-off .deb/.rpm: doesn't update itself unless it adds a repository.
  5. AppImage: a single portable file, no install, no automatic updates unless the app has its own updater.
  6. tar.gz: prebuilt binaries or source code; the most manual option.
Packages run as root

A .deb or .rpm runs install scripts as root and can add repositories and change system files. Only install packages from the project's official site, check the published SHA-256 checksum with sha256sum file, and be wary of "download" sites that repackage software. Never run an installer script with curl ... | sudo bash without reading it first; download it, read it, then run it.

Install a .deb on Ubuntu, Debian and Linux Mint

cd ~/Downloads
sudo apt install ./google-chrome-stable_current_amd64.deb

Without ./, apt searches the repositories for a package with that name and fails with "Unable to locate package". With it, apt installs the local file and pulls dependencies from your repositories.

On Mint and Ubuntu you can also double-click the file: Mint opens it in the package installer, Ubuntu in App Center. The terminal gives clearer errors.

If you used dpkg -i and got dependency errors, finish the job with apt:

sudo dpkg -i package.deb
# dpkg: dependency problems prevent configuration of ...
sudo apt -f install

Inspect a .deb before installing:

dpkg -I package.deb            # name, version, dependencies
dpkg -c package.deb            # files it will install

If apt refuses because dependencies can't be satisfied, the package was built for a different release (for example a Debian 12 build on Ubuntu 26.04). See held broken packages and dpkg error code 1. More apt detail is in the apt guide.

Install an .rpm on Fedora and openSUSE

# Fedora
sudo dnf install ./package.rpm
# openSUSE
sudo zypper install ./package.rpm

Both resolve dependencies from the enabled repositories. Check signatures and contents first:

rpm -qpi package.rpm           # info
rpm -qpl package.rpm           # file list
rpm -K package.rpm             # signature/digest check

If rpm -K reports a missing key, import the vendor's key from their website with sudo rpm --import URL, not by disabling GPG checks. RPMs built for RHEL/CentOS often work on Fedora; openSUSE uses different package names for some libraries, so prefer an openSUSE-specific build or the openSUSE software portal.

Arch Linux: no .deb or .rpm

Arch uses its own package format. For software outside the official repos, use the AUR (Arch User Repository), which builds a native package from a PKGBUILD:

sudo pacman -S --needed base-devel git
git clone https://aur.archlinux.org/package-name.git
cd package-name
less PKGBUILD          # read it: it runs on your machine
makepkg -si

Many AUR packages (-bin suffix) just unpack the vendor's .deb for you. Tools like debtap convert .deb files, but the result often has wrong dependencies; prefer the AUR, Flatpak or AppImage. Install a local Arch package file with sudo pacman -U file.pkg.tar.zst.

Run an AppImage

chmod +x ~/Downloads/App-x86_64.AppImage
~/Downloads/App-x86_64.AppImage

Without chmod +x you'll get "Permission denied". Most AppImages need FUSE version 2, which newer distros don't install by default. The error looks like this:

dlopen(): error loading libfuse.so.2
AppImages require FUSE to run.

Install the FUSE 2 library (not the fuse package itself on Ubuntu, which can remove parts of the desktop on some releases):

DistroCommand
Ubuntu 24.04+, Mint 22.xsudo apt install libfuse2t64
Ubuntu 22.04, Debian 12sudo apt install libfuse2
Debian 13sudo apt install libfuse2t64
Fedorasudo dnf install fuse-libs
Archsudo pacman -S fuse2
openSUSEsudo zypper install libfuse2

Without FUSE, you can unpack and run it: ./App.AppImage --appimage-extract then ./squashfs-root/AppRun.

Electron AppImages on Ubuntu 24.04 and later

Ubuntu restricts unprivileged user namespaces through AppArmor, which breaks the Chromium sandbox in many Electron AppImages ("The SUID sandbox helper binary was found, but is not configured correctly"). Running with --no-sandbox works but removes a security layer. The safer fixes are using the app's .deb, Snap or Flatpak, or adding an AppArmor profile for that AppImage path as described in Ubuntu's documentation. Don't disable the restriction system-wide.

To get an AppImage into your app menu, move it to ~/Applications or ~/.local/bin and create a .desktop file in ~/.local/share/applications/, or use Gear Lever (Flathub) to manage AppImages.

Flatpak bundles and refs

# add Flathub once (Fedora and Mint have it already)
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# .flatpakref: a pointer to an app in a repository
flatpak install ./app.flatpakref
# .flatpak: a self-contained bundle (no automatic updates)
flatpak install --user ./app.flatpak
flatpak list --app

Ubuntu doesn't ship Flatpak by default: sudo apt install flatpak, then log out and back in.

tar.gz and other archives

First look inside to see whether it's prebuilt or source:

tar -tf app.tar.gz | head
mkdir -p ~/.local/opt
tar -xf app.tar.gz -C ~/.local/opt
ls ~/.local/opt/app*
  • Prebuilt binary (a bin/ folder or a single executable): run it from there and link it into your PATH, e.g. ln -s ~/.local/opt/app/bin/app ~/.local/bin/app. Per-user installs need no sudo; use /opt for all users.
  • Source code (configure, CMakeLists.txt, meson.build): read the README. The classic flow is ./configure && make && sudo make install, which installs into /usr/local and isn't tracked by your package manager. Install build tools first (build-essential, @development-tools, base-devel).

If a prebuilt binary complains about missing libraries, see error while loading shared libraries. If it wants a newer glibc than your distro has, see GLIBC version not found. The tar cheat sheet covers other archive types.

Verify and uninstall

Installed asCheckRemove
.debapt list --installed | grep namesudo apt remove name
.rpm (Fedora)rpm -qa | grep namesudo dnf remove name
.rpm (openSUSE)rpm -qa | grep namesudo zypper remove name
AUR / pacman -Upacman -Qmsudo pacman -Rns name
Flatpakflatpak listflatpak uninstall app.id
AppImagels ~/ApplicationsDelete the file and its .desktop entry
make installls /usr/local/binsudo make uninstall from the source dir, if supported

If a vendor .deb or .rpm added a repository, remove it too: look in /etc/apt/sources.list.d/ or /etc/yum.repos.d/.

Common problems

  • "Unable to locate package package.deb": you forgot ./ or the path.
  • "package architecture (arm64) does not match system (amd64)": wrong download. Run uname -m and pick x86_64/amd64 or aarch64/arm64 to match. The same mismatch with a binary gives Exec format error.
  • "Depends: libxyz but it is not installable": the package targets another release. Find a build for your version, or use Flatpak.
  • "N: Download is performed unsandboxed as root": a harmless notice when the .deb is in a folder the _apt user can't read. Ignore it or move the file to /tmp.
  • AppImage does nothing when double-clicked: run it from a terminal to see the error, usually FUSE or the sandbox issue above.

Frequently asked questions

Should I use dpkg -i or apt install for a .deb?

Use sudo apt install ./file.deb. It resolves and installs dependencies automatically, while dpkg -i stops with dependency errors that you then have to fix with sudo apt -f install.

Why won't my AppImage run?

Make it executable with chmod +x. If it then complains about libfuse.so.2, install FUSE 2: libfuse2t64 on Ubuntu 24.04+, fuse-libs on Fedora, fuse2 on Arch.

Can I install a .deb on Fedora or an .rpm on Ubuntu?

Not reliably. Converting with alien often produces broken dependencies. Look for a native package, a Flatpak, an AppImage or the distro's own repository instead.

How do I uninstall something I installed from a .deb file?

Find its package name with dpkg -I file.deb | grep Package or apt list --installed | grep name, then sudo apt remove package-name.

Spotted a mistake or a command that no longer works? Send a correction — pages are re-checked when reports come in.