How to Install PeaZip on Ubuntu 26.04, 24.04 and 22.04

Install PeaZip on Ubuntu 26.04, 24.04, and 22.04 with a packaging path that fits your update model. The guide separates the XtraDeb PPA, Flathub, and a digest-verified GitHub portable helper so launch, archive workflow, updates, troubleshooting, and removal stay predictable.

PublishedAuthorJoshua JamesRead time8 minGuide typeUbuntu

Ubuntu includes basic archive handling in Files, but PeaZip gives you a full desktop archive manager for browsing archives, creating 7Z or ZIP files, testing checksums, splitting files, and extracting formats such as RAR from one interface. PeaZip is not packaged in Ubuntu’s default repositories, so the practical Ubuntu choices are the XtraDeb PPA for APT-managed installs, Flathub for the current upstream Flatpak, or the official GitHub portable archive when you want a user-local install with a repeatable updater.

PeaZip is an open-source archive utility that supports more than 200 archive types through 7-Zip, p7zip, Brotli, Zstandard, ZPAQ, PEA, and related backends. The official PeaZip Linux download page also provides manual DEB packages, but this guide keeps the recommended methods attached to an update path so PeaZip can be maintained cleanly after installation.

Install PeaZip on Ubuntu

Choose the method based on how you want PeaZip updated and how much third-party packaging you are comfortable enabling. The XtraDeb PPA gives you a normal APT package and launcher, Flathub tracks the current upstream Flatpak release, and the portable helper keeps the official upstream archive under your home directory.

MethodPackage or App IDSourceUpdatesBest For
XtraDeb PPApeazipXtraDeb Apps PPAAPT-managed updates through the PPAUbuntu users who want a traditional DEB package and desktop launcher
Flatpakio.github.peazip.PeaZipFlathubUpdated with Flatpak apps and runtimesUsers who want PeaZip 11.1.0 from Flathub on x86_64 or aarch64
GitHub portablepeazip_portable-*.tar.gzPeaZip GitHub releasesUpdated with the helper script belowAdvanced x86_64 users who want a user-local official upstream install

The PPA is the easiest fit when you prefer APT and want the application installed system-wide, but it is an unofficial community package source and its version depends on your Ubuntu release. Flathub is the best option when you want the current upstream version across supported Ubuntu releases. The portable helper is more hands-on, but it verifies GitHub release digests, creates its own launcher, and can be removed without changing system package sources.

Ubuntu 26.04, Ubuntu 24.04, and Ubuntu 22.04 do not provide a peazip package from the default Ubuntu repositories. Snap also does not currently provide an installable PeaZip package, so this guide does not present Snap as an install method.

Update Ubuntu Before Installing PeaZip

Refresh package metadata and install pending upgrades before adding a desktop archive manager or a new packaging source:

sudo apt update
sudo apt upgrade

Commands that install packages, add PPAs, or configure system Flatpak remotes use sudo. If your account cannot run sudo yet, follow the guide to add a user to sudoers on Ubuntu before continuing.

Install PeaZip from the XtraDeb PPA

Use the XtraDeb PPA when you want PeaZip installed as a normal DEB package and updated through APT. The PPA is community-maintained and not an official Ubuntu or PeaZip repository, so enable it only if you accept that trust boundary. The Launchpad signing key fingerprint for the PPA is 5301FA4FD93244FBC6F6149982BB6851C64F6880.

Install the repository helper if your Ubuntu system does not already include it:

sudo apt install software-properties-common

Add the XtraDeb Apps PPA, refresh APT metadata, and install PeaZip:

sudo add-apt-repository ppa:xtradeb/apps
sudo apt update
sudo apt install peazip

Confirm that APT sees PeaZip from the PPA:

apt-cache policy peazip

The XtraDeb PPA candidates differ by Ubuntu release:

Ubuntu 26.04: 11.1.0-1xtradeb1.2604.1
Ubuntu 24.04: 10.9.0-1xtradeb1.2404.1
Ubuntu 22.04: 9.7.1-1xtradeb2.2204.1

Check the installed command path after the package install completes:

command -v peazip
/usr/bin/peazip

Install PeaZip from Flathub

Use Flathub when you want the current upstream PeaZip release without enabling a third-party APT source. Flathub provides PeaZip 11.1.0 for x86_64 and aarch64. Its permissions include host filesystem access, so treat Flatpak here as a packaging and update method rather than a tight sandbox boundary.

Install Flatpak if it is not already present:

sudo apt install flatpak

Add the Flathub remote once, then install the PeaZip app ID:

sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak install flathub io.github.peazip.PeaZip

Verify the installed Flatpak app and runtime:

flatpak info io.github.peazip.PeaZip
ID: io.github.peazip.PeaZip
Version: 11.1.0
Origin: flathub
Runtime: org.kde.Platform/x86_64/6.10

If you are setting up Flatpak on a minimal Ubuntu install for the first time, the full Flatpak setup guide for Ubuntu covers remote management and common verification commands.

Install PeaZip with the GitHub Portable Helper

Use the portable helper on x86_64 Ubuntu systems when you want the official upstream GitHub archive under your home directory and a repeatable update command. The helper queries the latest GitHub release, lets you select Qt6, GTK3 alpha, or GTK2, verifies the GitHub SHA256 digest, creates peazip-portable and pea-portable wrappers, and writes a user desktop launcher. Use Flatpak instead on aarch64 because the current official Qt6 portable archive is x86_64-only.

ToolkitBest Desktop FitUbuntu Notes
Qt6Default choice for most usersWorks on Ubuntu 26.04, 24.04, and 22.04 with release-specific Qt6 runtime package names.
GTK3 alphaGNOME, Cinnamon, MATE, or Xfce users testing a GTK-like lookMarked alpha upstream. The helper checks runtime libraries before switching the current install.
GTK2Legacy GTK fallbackRequires the GTK2 runtime package if it is not already installed.

Install the helper prerequisites and the validated Qt6 runtime packages for your Ubuntu release:

. /etc/os-release
case "$VERSION_CODENAME" in
  jammy)
    sudo apt install curl python3 tar coreutils sed findutils desktop-file-utils hicolor-icon-theme libqt6core6 libqt6gui6 libqt6widgets6 libqt6printsupport6 qt6-qpa-plugins
    ;;
  noble)
    sudo apt install curl python3 tar coreutils sed findutils desktop-file-utils hicolor-icon-theme libqt6core6t64 libqt6gui6t64 libqt6widgets6t64 libqt6printsupport6t64 qt6-qpa-plugins
    ;;
  resolute)
    sudo apt install curl python3 tar coreutils sed findutils desktop-file-utils hicolor-icon-theme libqt6core6t64 libqt6gui6 libqt6widgets6 libqt6printsupport6 qt6-qpa-plugins
    ;;
  *)
    printf 'This helper includes Qt6 package names for Ubuntu 22.04, 24.04, and 26.04.\n' >&2
    exit 1
    ;;
esac

Create the updater script in your user PATH:

mkdir -p ~/.local/bin
tee ~/.local/bin/update-peazip-portable >/dev/null <<'PEAZIP_SCRIPT'
#!/usr/bin/env bash
set -euo pipefail

repo="peazip/PeaZip"
api_url="https://api.github.com/repos/${repo}/releases/latest"
install_root="${PEAZIP_PORTABLE_ROOT:-$HOME/.local/share/peazip-portable}"
versions_dir="$install_root/versions"
current_link="$install_root/current"
state_file="$install_root/toolkit"
bin_dir="$HOME/.local/bin"
launcher="$bin_dir/peazip-portable"
pea_launcher="$bin_dir/pea-portable"
updater="$bin_dir/update-peazip-portable"
applications_dir="$HOME/.local/share/applications"
desktop_file="$applications_dir/io.github.peazip.PeaZip-portable.desktop"
icon_cache_dir="$HOME/.local/share/icons/hicolor"
icon_dir="$icon_cache_dir/256x256/apps"
icon_file="$icon_dir/peazip.png"
tmp_dir=""

usage() {
  printf "Usage: %s [update|remove]\n" "$(basename "$0")"
  printf "  update  Download the latest portable PeaZip release and refresh launchers.\n"
  printf "  remove  Remove the portable install and desktop integration files.\n"
}

need_tools() {
  local missing=()
  local tool
  for tool in curl python3 tar sha256sum sed find install readlink ldd; do
    if ! command -v "$tool" >/dev/null 2>&1; then
      missing+=("$tool")
    fi
  done
  if ((${#missing[@]})); then
    printf "Missing required tools: %s\n" "${missing[*]}" >&2
    printf "Install prerequisites with: sudo apt install curl python3 tar coreutils sed findutils desktop-file-utils hicolor-icon-theme\n" >&2
    exit 1
  fi
}

ubuntu_codename() {
  if [[ -r /etc/os-release ]]; then
    . /etc/os-release
    printf "%s" "${VERSION_CODENAME:-}"
  fi
}

ubuntu_qt6_runtime_packages() {
  case "$(ubuntu_codename)" in
    jammy) printf "libqt6core6 libqt6gui6 libqt6widgets6 libqt6printsupport6 qt6-qpa-plugins" ;;
    noble) printf "libqt6core6t64 libqt6gui6t64 libqt6widgets6t64 libqt6printsupport6t64 qt6-qpa-plugins" ;;
    resolute) printf "libqt6core6t64 libqt6gui6 libqt6widgets6 libqt6printsupport6 qt6-qpa-plugins" ;;
    *) printf "the validated Qt6 runtime packages for your Ubuntu release" ;;
  esac
}

gtk_runtime_package() {
  case "$(ubuntu_codename):$1" in
    jammy:gtk2) printf "libgtk2.0-0" ;;
    *:gtk2) printf "libgtk2.0-0t64" ;;
    jammy:gtk3) printf "libgtk-3-0" ;;
    *:gtk3) printf "libgtk-3-0t64" ;;
  esac
}

desktop_name() {
  printf "%s" "${XDG_CURRENT_DESKTOP:-}${DESKTOP_SESSION:+:$DESKTOP_SESSION}" | tr "[:upper:]" "[:lower:]"
}

suggestion_text() {
  local desktop
  desktop="$(desktop_name)"
  case "$desktop" in
    *kde*|*plasma*|*lxqt*)
      printf "Detected a Qt-style desktop. Qt6 should fit KDE Plasma or LXQt best."
      ;;
    *gnome*|*ubuntu*|*cinnamon*|*mate*|*xfce*)
      printf "Detected a GTK-style desktop. GTK3-alpha may match some themes, but Qt6 is the conservative default."
      ;;
    "")
      printf "No desktop session detected. Qt6 is the conservative default."
      ;;
    *)
      printf "Detected desktop: %s. Qt6 is the conservative default." "$desktop"
      ;;
  esac
}

choose_toolkit() {
  local current default answer normalized
  current=""
  if [[ -f "$state_file" ]]; then
    current="$(sed -n "1p" "$state_file")"
  fi
  default="${current:-qt6}"
  {
    printf "\nPeaZip portable toolkit selection\n"
    printf "Suggestion: %s\n\n" "$(suggestion_text)"
    printf "1) qt6  - recommended default; validated on Ubuntu 22.04, 24.04, and 26.04.\n"
    printf "2) gtk3 - GTK3 alpha build; useful if you want to test a GTK-like look.\n"
    printf "3) gtk2 - legacy GTK fallback for older or lightweight GTK desktops.\n"
    printf "\n"
    printf "Choose toolkit [%s]: " "$default"
  } >&2
  read -r answer
  normalized="${answer,,}"
  case "$normalized" in
    "") printf "%s\n" "$default" ;;
    1|q|qt|qt6) printf "qt6\n" ;;
    2|g3|gtk3|gtk3-alpha) printf "gtk3\n" ;;
    3|g2|gt2|gtk2) printf "gtk2\n" ;;
    *) printf "Invalid toolkit choice: %s\n" "$answer" >&2; exit 1 ;;
  esac
}

release_asset_info() {
  local release_json toolkit
  release_json="$1"
  toolkit="$2"
  RELEASE_JSON="$release_json" TOOLKIT="$toolkit" python3 - <<'PY'
import json
import os
import sys

patterns = {
    "qt6": ".LINUX.Qt6.x86_64.tar.gz",
    "gtk2": ".LINUX.GTK2.x86_64.tar.gz",
    "gtk3": ".LINUX.GTK3-alpha.x86_64.tar.gz",
}
release = json.loads(os.environ["RELEASE_JSON"])
toolkit = os.environ["TOOLKIT"]
pattern = patterns[toolkit]
for asset in release.get("assets", []):
    name = asset.get("name", "")
    if name.startswith("peazip_portable-") and name.endswith(pattern):
        digest = asset.get("digest") or ""
        if digest.startswith("sha256:"):
            digest = digest.split(":", 1)[1]
        if not digest:
            sys.exit("Selected GitHub asset has no SHA256 digest")
        print(name)
        print(asset["browser_download_url"])
        print(digest)
        sys.exit(0)
sys.exit(f"No portable {toolkit} x86_64 asset found in the latest release")
PY
}

runtime_hint() {
  case "$1" in
    qt6)
      printf "Install the Qt6 runtime first with: sudo apt install %s\n" "$(ubuntu_qt6_runtime_packages)"
      ;;
    gtk2)
      printf "Install the GTK2 runtime first with: sudo apt install %s\n" "$(gtk_runtime_package gtk2)"
      ;;
    gtk3)
      printf "Install the GTK3 runtime first with: sudo apt install %s\n" "$(gtk_runtime_package gtk3)"
      ;;
  esac
}

check_runtime_libs() {
  local app_dir toolkit missing
  app_dir="$1"
  toolkit="$2"
  missing="$(LD_LIBRARY_PATH="$app_dir:${LD_LIBRARY_PATH:-}" ldd "$app_dir/peazip" 2>/dev/null | sed -n 's/^[[:space:]]*\([^[:space:]]\+\)[[:space:]]*=> not found.*/\1/p' || true)"
  if [[ -n "$missing" ]]; then
    printf "The selected %s build is missing runtime libraries:\n%s\n" "$toolkit" "$missing" >&2
    runtime_hint "$toolkit" >&2
    printf "The current PeaZip portable selection was not changed.\n" >&2
    return 1
  fi
}

refresh_desktop_caches() {
  local ensure_icon_theme="${1:-yes}"
  if [[ "$ensure_icon_theme" == "yes" && ! -f "$icon_cache_dir/index.theme" && -f /usr/share/icons/hicolor/index.theme ]]; then
    mkdir -p "$icon_cache_dir"
    install -m 0644 /usr/share/icons/hicolor/index.theme "$icon_cache_dir/index.theme"
  fi
  if command -v update-desktop-database >/dev/null 2>&1; then
    update-desktop-database "$applications_dir" >/dev/null 2>&1 || true
  fi
  if command -v gtk-update-icon-cache >/dev/null 2>&1; then
    gtk-update-icon-cache -q "$icon_cache_dir" >/dev/null 2>&1 || true
  fi
}

write_launchers() {
  local app_dir mime_line icon_source
  app_dir="$1"
  mkdir -p "$bin_dir" "$applications_dir" "$icon_dir"

  cat > "$launcher" <<EOF
#!/usr/bin/env bash
set -euo pipefail
app_dir="\$(readlink -f "$current_link")"
if [[ ! -x "\$app_dir/peazip" ]]; then
  printf "PeaZip portable is not installed under %s\\n" "$current_link" >&2
  exit 1
fi
export LD_LIBRARY_PATH="\$app_dir:\${LD_LIBRARY_PATH:-}"
exec "\$app_dir/peazip" "\$@"
EOF
  chmod +x "$launcher"

  cat > "$pea_launcher" <<EOF
#!/usr/bin/env bash
set -euo pipefail
app_dir="\$(readlink -f "$current_link")"
if [[ ! -x "\$app_dir/pea" ]]; then
  printf "Pea portable is not installed under %s\\n" "$current_link" >&2
  exit 1
fi
export LD_LIBRARY_PATH="\$app_dir:\${LD_LIBRARY_PATH:-}"
exec "\$app_dir/pea" "\$@"
EOF
  chmod +x "$pea_launcher"

  icon_source="$app_dir/res/share/batch/freedesktop_integration/peazip.png"
  if [[ ! -f "$icon_source" ]]; then
    icon_source="$app_dir/res/share/icons/peazip.png"
  fi
  if [[ -f "$icon_source" ]]; then
    install -m 0644 "$icon_source" "$icon_file"
  fi

  mime_line="$(grep '^MimeType=' "$app_dir/res/share/batch/freedesktop_integration/peazip.desktop" 2>/dev/null || true)"
  if [[ -z "$mime_line" ]]; then
    mime_line="MimeType=application/zip;application/x-7z-compressed;application/x-rar;application/x-tar;application/gzip;"
  fi

  cat > "$desktop_file" <<EOF
[Desktop Entry]
Name=PeaZip Portable
Comment=PeaZip archive manager
Exec=$launcher %F
TryExec=$launcher
Icon=peazip
StartupWMClass=peazip
StartupNotify=true
Type=Application
Terminal=false
Categories=Utility;Archiving;Compression;
Keywords=zip;rar;tar;compress;extract;unpack;
$mime_line
Actions=add;extract;extracthere;extractheresmart;

[Desktop Action add]
Name=PeaZip Portable, add to archive
Exec=$launcher -add2archive %F
Icon=peazip

[Desktop Action extract]
Name=PeaZip Portable, extract archive(s)
Exec=$launcher -ext2main %F
Icon=peazip

[Desktop Action extracthere]
Name=PeaZip Portable, extract here
Exec=$launcher -ext2here %F
Icon=peazip

[Desktop Action extractheresmart]
Name=PeaZip Portable, extract here (smart new folder)
Exec=$launcher -ext2folder %F
Icon=peazip
EOF

  if command -v desktop-file-validate >/dev/null 2>&1; then
    desktop-file-validate "$desktop_file"
  fi
  refresh_desktop_caches
}

install_or_update() {
  need_tools
  if [[ "$(uname -m)" != "x86_64" ]]; then
    printf "This portable method expects x86_64 GitHub assets. Use Flatpak on this architecture.\n" >&2
    exit 1
  fi

  local toolkit release_json version asset_info asset_name asset_url asset_sha archive extract_dir extracted_dir version_dir current_target
  toolkit="$(choose_toolkit)"
  printf "Fetching latest PeaZip release metadata from GitHub...\n"
  release_json="$(curl -fsSL "$api_url")"
  version="$(RELEASE_JSON="$release_json" python3 -c 'import json, os; print(json.loads(os.environ["RELEASE_JSON"])["tag_name"])')"
  asset_info="$(release_asset_info "$release_json" "$toolkit")"
  asset_name="$(printf "%s\n" "$asset_info" | sed -n "1p")"
  asset_url="$(printf "%s\n" "$asset_info" | sed -n "2p")"
  asset_sha="$(printf "%s\n" "$asset_info" | sed -n "3p")"
  version_dir="$versions_dir/${version}-${toolkit}"

  current_target="$(readlink -f "$current_link" 2>/dev/null || true)"
  if [[ "$current_target" == "$version_dir" && -x "$version_dir/peazip" ]]; then
    write_launchers "$version_dir"
    printf "PeaZip %s portable (%s) is already current.\n" "$version" "$toolkit"
    printf "Launch it from Activities or run: peazip-portable\n"
    return 0
  fi

  tmp_dir="$(mktemp -d)"
  trap 'rm -rf "${tmp_dir:-}"' EXIT
  archive="$tmp_dir/$asset_name"
  extract_dir="$tmp_dir/extract"
  mkdir -p "$extract_dir" "$versions_dir"

  printf "Downloading %s...\n" "$asset_name"
  curl -fL --retry 3 -o "$archive" "$asset_url"
  printf "%s  %s\n" "$asset_sha" "$archive" | sha256sum -c -

  tar -xzf "$archive" -C "$extract_dir"
  extracted_dir="$(find "$extract_dir" -mindepth 1 -maxdepth 1 -type d -name 'peazip_portable-*' -print -quit)"
  if [[ -z "$extracted_dir" || ! -x "$extracted_dir/peazip" ]]; then
    printf "The archive did not contain an executable PeaZip directory.\n" >&2
    exit 1
  fi

  check_runtime_libs "$extracted_dir" "$toolkit"

  if [[ -e "$current_link" && ! -L "$current_link" ]]; then
    printf "Refusing to replace non-symlink path: %s\n" "$current_link" >&2
    exit 1
  fi

  rm -rf "${version_dir}.new"
  mv "$extracted_dir" "${version_dir}.new"
  rm -rf "$version_dir"
  mv "${version_dir}.new" "$version_dir"
  ln -sfn "$version_dir" "$current_link"
  printf "%s\n" "$toolkit" > "$state_file"

  write_launchers "$version_dir"
  find "$versions_dir" -mindepth 1 -maxdepth 1 -type d ! -name "${version}-${toolkit}" -exec rm -rf -- {} +

  printf "PeaZip %s portable (%s) is installed.\n" "$version" "$toolkit"
  printf "Launch it from Activities or run: peazip-portable\n"
}

remove_portable() {
  local answer
  read -r -p "Remove PeaZip portable from $install_root? [y/N]: " answer
  case "${answer,,}" in
    y|yes) ;;
    *) printf "Removal cancelled.\n"; exit 0 ;;
  esac
  rm -rf "$install_root" "$launcher" "$pea_launcher" "$updater" "$desktop_file" "$icon_file"
  if ! find "$icon_cache_dir" -type f ! -name index.theme ! -name icon-theme.cache -print -quit 2>/dev/null | grep -q .; then
    rm -f "$icon_cache_dir/index.theme" "$icon_cache_dir/icon-theme.cache"
  fi
  refresh_desktop_caches no
  printf "PeaZip portable was removed.\n"
}

case "${1:-update}" in
  update|install) install_or_update ;;
  remove|uninstall) remove_portable ;;
  -h|--help|help) usage ;;
  *) usage >&2; exit 1 ;;
esac
PEAZIP_SCRIPT
chmod +x ~/.local/bin/update-peazip-portable

Open a new terminal if your shell cached an older PATH, then run the friendly updater command. Press Enter at the toolkit prompt to use Qt6:

update-peazip-portable
PeaZip 11.1.0 portable (qt6) is installed.
Launch it from Activities or run: peazip-portable

The portable helper creates ~/.local/share/peazip-portable/current, the commands update-peazip-portable, peazip-portable, and pea-portable, plus the desktop file ~/.local/share/applications/io.github.peazip.PeaZip-portable.desktop. It also installs a user hicolor icon named peazip, prepares the user icon cache when needed, and sets StartupWMClass=peazip so the launcher matches PeaZip’s running window class.

Verify the portable launcher definition and start it from the desktop launcher database if you want a quick desktop-entry check:

desktop-file-validate ~/.local/share/applications/io.github.peazip.PeaZip-portable.desktop
grep -E '^(Name|Exec|Icon|StartupWMClass|StartupNotify)=' ~/.local/share/applications/io.github.peazip.PeaZip-portable.desktop
gtk-launch io.github.peazip.PeaZip-portable
Name=PeaZip Portable
Exec=/home/your-user/.local/bin/peazip-portable %F
Icon=peazip
StartupWMClass=peazip
StartupNotify=true

Launch PeaZip on Ubuntu

Launch PeaZip from Ubuntu’s Activities search after installation. Depending on the method you installed, the launcher may appear as PeaZip or PeaZip Portable. After the desktop database refreshes, Activities should show the portable launcher with the PeaZip icon.

Launch PeaZip from the Terminal

For the XtraDeb PPA package, run:

peazip

For the Flathub install, run:

flatpak run io.github.peazip.PeaZip

For the portable helper install, run:

peazip-portable

PeaZip is a graphical desktop app. Terminal launch commands require an active desktop session, not a headless SSH-only shell.

Get Started with PeaZip on Ubuntu

PeaZip opens to a file-manager-style workspace where you can browse folders, select files, and choose archive actions from the toolbar. The main window should be ready for archive creation, extraction, and checksum tasks after the first launch.

Choose Archive Formats

Use 7Z when you want high compression, ZIP when you need easy sharing with Windows or macOS users, and TAR.XZ or TAR.GZ when you are packaging Linux files while preserving typical Unix metadata. If you need terminal-side 7-Zip workflows as well, the guide to install 7-Zip on Ubuntu pairs well with PeaZip’s graphical interface.

Extract RAR and Other Archives

PeaZip can extract RAR archives, but it does not make proprietary RAR creation a default Linux workflow. For command-line extraction coverage, use the guide to install Unrar on Ubuntu. For TAR and Gzip workflows, the guide to open GZ and TGZ files in Linux covers the terminal commands behind common Linux archive formats.

Create and Test an Archive

To create an archive, select files or folders, choose Add, select an archive format, and set a destination. Use PeaZip’s test or checksum options before deleting source files or transferring archives to another system. If you prefer terminal examples for ZIP extraction and directory handling, the Unzip directory command guide provides command-line alternatives.

Update PeaZip on Ubuntu

Update PeaZip with the same source that installed it. For the XtraDeb PPA package, refresh APT metadata and upgrade PeaZip:

sudo apt update
sudo apt install --only-upgrade peazip

For the Flathub install, update the PeaZip app and any required runtime changes:

sudo flatpak update io.github.peazip.PeaZip

For the portable helper install, rerun the helper. It checks the latest GitHub release, verifies the selected asset digest, refreshes launchers, and leaves the current install unchanged if the selected toolkit is already current:

update-peazip-portable
PeaZip 11.1.0 portable (qt6) is already current.
Launch it from Activities or run: peazip-portable

If you manually install PeaZip from an upstream DEB file instead of using one of the maintained methods above, you must return to the official Linux download page or GitHub releases page for each refresh. Do not mix a manual DEB install with the XtraDeb PPA package unless you are intentionally replacing one method with the other.

Troubleshoot PeaZip on Ubuntu

Use the checks below to identify which packaging layer owns the problem before reinstalling PeaZip or changing sources.

APT Cannot Find the PeaZip Package

If sudo apt install peazip reports that the package has no installation candidate, confirm whether the XtraDeb source is enabled and refreshed:

apt-cache policy peazip
grep -R "xtradeb" /etc/apt/sources.list.d/

If the source is missing, add the PPA again and rerun sudo apt update. If the source exists but the package still has no candidate, confirm that the PPA publishes packages for your Ubuntu release before forcing a source intended for another release.

Flatpak Cannot Find the PeaZip App ID

If Flatpak cannot find io.github.peazip.PeaZip, verify that the Flathub remote exists:

flatpak remotes

Add Flathub again if the remote is missing:

sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

Portable Command Is Not Found

If a newly created terminal still cannot find the portable helper, check whether the command exists in your user PATH:

command -v update-peazip-portable
bash -lc 'command -v update-peazip-portable'

If the second command works but the first one does not, open a new login session or review the shell startup files that set your PATH. The normal install, update, and launch commands should remain the friendly names update-peazip-portable and peazip-portable.

Portable Build Reports Missing Libraries

The helper checks PeaZip with ldd before switching the current portable install. If it reports missing Qt6 libraries, rerun the release-specific runtime package command from the portable install section, then run the updater again:

update-peazip-portable

If you choose GTK2 or GTK3 from the helper prompt, install the runtime package named in the helper’s error message, then rerun the updater. The helper leaves the previous current install in place when a selected toolkit is missing required libraries.

PeaZip Hits a Permission Error

Ubuntu 26.04, 24.04, and 22.04 should not need AppArmor overrides for the XtraDeb package, Flathub app, or portable helper. Do not disable AppArmor to troubleshoot PeaZip. First confirm the archive path, file ownership, and package source you installed. If the error looks like an AppArmor denial, check the system logs and adjust only the specific profile involved.

Remove PeaZip from Ubuntu

Remove PeaZip with the same method you used to install it. For the XtraDeb PPA package, remove the package first:

sudo apt remove peazip

If you no longer use the XtraDeb PPA for any software, remove the PPA and refresh APT metadata:

sudo add-apt-repository --remove ppa:xtradeb/apps
sudo apt update

Review automatic cleanup before accepting removals:

sudo apt autoremove

For more PPA cleanup patterns, use the guide to remove a PPA from Ubuntu.

For the Flathub install, remove the app ID:

sudo flatpak uninstall io.github.peazip.PeaZip

Remove PeaZip’s Flatpak user data only if you do not need its settings after reinstalling:

rm -rf ~/.var/app/io.github.peazip.PeaZip/

Then clean unused Flatpak runtimes if Flatpak offers removals you no longer need:

sudo flatpak uninstall --unused

For the portable helper install, use the helper’s removal mode. It removes the portable tree, wrappers, updater script, desktop entry, and local icon after confirmation:

update-peazip-portable remove
PeaZip portable was removed.

PeaZip is ready on Ubuntu for desktop archive creation, extraction, checksum checks, encrypted archives, RAR extraction, and multi-format file management. Use the XtraDeb PPA when you want a traditional APT-managed desktop package, Flathub when you want the current upstream release across Ubuntu versions, or the GitHub portable helper when you prefer a user-local official release with digest verification and a repeatable update command.

Share this guide

Help another Linux user troubleshoot faster

Share this guide with someone troubleshooting Linux systems or saving it for later.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show our tutorials more often in Top Stories and mark them as preferred in AI Mode and AI Overviews when relevant.

Add LinuxCapable as a preferred source on Google
Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffeeBuy me a coffee
Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed in published comments:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<a href="https://example.com">link</a> link
<blockquote>quote</blockquote> quote block

Add to the discussion

Questions, fixes, command output, and version notes help keep this guide current.

Verify before posting: