Some browsers keep moving toward heavier interfaces and tighter service integration, which is why Pale Moon still appeals when you want a traditional desktop browser. If you need to install Pale Moon on Ubuntu 26.04, 24.04, or 22.04, the practical path is the official Linux tarball because Pale Moon is not packaged in Ubuntu’s default repositories and the official download page does not offer an Ubuntu .deb.
The official mirror workflow stays simple on supported Ubuntu LTS releases when the system meets Pale Moon’s CPU requirement: verify x86_64 with AVX, download the GTK3 build, check its SHA256 hash, extract it into your home directory, then add launcher and icon integration. Pale Moon still needs a graphical desktop session to open after installation, even though you can download and unpack it from a terminal or over SSH.
Install Pale Moon on Ubuntu
Pale Moon’s official Linux downloads are published as archive files instead of APT packages. This workflow resolves the current x86_64 GTK3 tarball from the official download page, verifies the checksum listed on that page, extracts the browser into ~/palemoon, and adds the local system links that make it easier to launch. Pale Moon’s Linux installation notes also use a user-writable extraction path when you want the internal updater to work.
The official tarball is the direct upstream baseline when your CPU exposes AVX. Pale Moon’s contributed builds page lists endorsed third-party distro packages and older-hardware builds, but those can lag behind the main Linux release. The official page does not list Ubuntu
.deb, Snap, Flatpak, or AppImage builds as primary download targets.
Update Ubuntu Before Installing Pale Moon
Refresh APT metadata and install pending package updates before you add a manual browser install under your home directory.
sudo apt update && sudo apt upgrade -y
These commands use
sudofor package-management tasks. If your account does not have sudo access yet, follow the guide on how to add a new user to sudoers on Ubuntu or run the commands as root.
Check Pale Moon CPU Requirements on Ubuntu
Check the CPU feature flags before downloading the archive. Pale Moon’s technical details page says regular current builds require AVX, and a system that hides AVX can fail with an Illegal instruction message even when Ubuntu itself is 64-bit.
ARCH=$(uname -m)
if [ "$ARCH" != "x86_64" ]; then
echo "This workflow expects Pale Moon's official x86_64 Linux tarball." >&2
exit 1
fi
if ! grep -qm1 '^flags.*[[:space:]]avx[[:space:]]' /proc/cpuinfo; then
echo "This CPU does not expose AVX, which current official Pale Moon builds require." >&2
exit 1
fi
printf 'Architecture: %s\nAVX support: yes\n' "$ARCH"
Relevant output includes:
Architecture: x86_64 AVX support: yes
If the AVX check fails, stop before you download or run the official tarball. On a virtual machine, enable CPU feature passthrough if the host CPU supports AVX; on older hardware, use an endorsed contributed build or another maintained browser instead of forcing the official archive.
Install Pale Moon Prerequisites on Ubuntu
Install the download, archive, and runtime packages before you pull the tarball. The libdbus-glib-1-2 package covers the missing libdbus-glib-1.so.2 startup error that current Pale Moon builds hit on Ubuntu if the library is absent.
sudo apt install curl xz-utils libdbus-glib-1-2 -y
The archive lookup uses curl -fsSL so HTTP failures stop the command, normal output stays quiet, and redirects are followed automatically. That same download pattern also shows up in the curl command in Linux reference.
Resolve the Current Pale Moon Tarball on Ubuntu
Resolve the current release and checksum from Pale Moon’s official download page before you download anything. The filters rely on the grep command in Linux and a short awk pass to pair the Linux GTK3 filename with the SHA256 hash published on the same page.
DOWNLOAD_PAGE=$(curl -fsSL https://www.palemoon.org/download.shtml)
HASH_TEXT=$(printf '%s\n' "$DOWNLOAD_PAGE" | sed -n '/Hashes for release /,/<\/pre>/p' | sed -E 's/<[^>]+>/ /g')
VERSION=$(printf '%s\n' "$HASH_TEXT" | grep -Eo 'Hashes for release [0-9.]+' | awk '{print $4}' | tail -1)
FILENAME="palemoon-${VERSION}.linux-x86_64-gtk3.tar.xz"
SHA256=$(printf '%s\n' "$HASH_TEXT" | tr -s '[:space:]' '\n' | awk -v file="$FILENAME" '$0 == file { getline; print; exit }')
if [ -z "$VERSION" ] || [ -z "$SHA256" ]; then
echo "Could not resolve the current Pale Moon Linux GTK3 release and checksum." >&2
exit 1
fi
printf 'Version: %s\nFile: %s\n' "$VERSION" "$FILENAME"
Relevant output includes:
Version: 34.2.2 File: palemoon-34.2.2.linux-x86_64-gtk3.tar.xz
The current official Linux download page publishes x86_64 GTK2 and GTK3 tarballs. The commands here use GTK3 for current Ubuntu desktops; use the contributed builds page only when your CPU, architecture, or distro packaging needs fall outside that official tarball path.
Download Pale Moon on Ubuntu
Keep using the same terminal session so the version, filename, and checksum variables from the previous step stay available while you download and verify the tarball.
DOWNLOAD_URL="https://www.palemoon.org/download.php?mirror=us&bits=64&type=linuxgtk3"
printf '%s\n' "$DOWNLOAD_URL"
Download the tarball after you confirm the URL uses Pale Moon’s official download handler. The next command records the final mirror URL, checks that it matches the expected filename, and verifies the SHA256 hash before extraction.
FINAL_URL=$(curl -fsSL --output /tmp/palemoon.tar.xz --write-out '%{url_effective}' "$DOWNLOAD_URL")
case "$FINAL_URL" in
*"$FILENAME") ;;
*)
echo "Download resolved to an unexpected file: $FINAL_URL" >&2
exit 1
;;
esac
printf 'Downloaded from: %s\n' "$FINAL_URL"
printf '%s %s\n' "$SHA256" /tmp/palemoon.tar.xz | sha256sum -c -
Relevant output includes:
Downloaded from: https://rm-us.palemoon.org/release/palemoon-34.2.2.linux-x86_64-gtk3.tar.xz /tmp/palemoon.tar.xz: OK
Extract Pale Moon on Ubuntu
Extract the tarball into your home directory. The follow-up file check confirms that the browser binary, updater files, and bundled icons are all present before you start creating launchers.
rm -rf "$HOME/palemoon"
tar -xf /tmp/palemoon.tar.xz -C "$HOME"
ls "$HOME/palemoon/updater" "$HOME/palemoon/update-settings.ini" "$HOME/palemoon/browser/chrome/icons/default/default16.png" "$HOME/palemoon/browser/icons/mozicon128.png"
Relevant output includes:
/home/your-user/palemoon/browser/chrome/icons/default/default16.png /home/your-user/palemoon/browser/icons/mozicon128.png /home/your-user/palemoon/updater /home/your-user/palemoon/update-settings.ini
Create Pale Moon Desktop Integration on Ubuntu
Create the launcher symlink, icon links, and desktop file so Pale Moon behaves like a normal desktop application instead of a bare extracted archive. If you want more detail on what the ln -s command is doing, the guide on how to create symbolic links in Ubuntu explains the underlying command.
sudo ln -sf "$HOME/palemoon/palemoon" /usr/local/bin/palemoon
Install the bundled icons next so the launcher keeps a proper application icon instead of falling back to a generic placeholder.
sudo mkdir -p /usr/share/icons/hicolor/16x16/apps /usr/share/icons/hicolor/32x32/apps /usr/share/icons/hicolor/48x48/apps /usr/share/icons/hicolor/128x128/apps
sudo ln -sf "$HOME/palemoon/browser/chrome/icons/default/default16.png" /usr/share/icons/hicolor/16x16/apps/palemoon.png
sudo ln -sf "$HOME/palemoon/browser/chrome/icons/default/default32.png" /usr/share/icons/hicolor/32x32/apps/palemoon.png
sudo ln -sf "$HOME/palemoon/browser/chrome/icons/default/default48.png" /usr/share/icons/hicolor/48x48/apps/palemoon.png
sudo ln -sf "$HOME/palemoon/browser/icons/mozicon128.png" /usr/share/icons/hicolor/128x128/apps/palemoon.png
The desktop entry uses sudo tee because a plain > redirection would not write into a root-owned location like /usr/share/applications/ with elevated privileges.
sudo tee /usr/share/applications/palemoon.desktop > /dev/null <<EOF
[Desktop Entry]
Version=1.0
Name=Pale Moon Web Browser
Comment=Browse the World Wide Web
Keywords=Internet;WWW;Browser;Web;Explorer
Exec=/usr/local/bin/palemoon %u
Terminal=false
Type=Application
Icon=palemoon
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
StartupNotify=true
EOF
Refresh the icon cache once the launcher files are in place so new menu icons are picked up immediately on desktop environments that cache them aggressively.
sudo gtk-update-icon-cache -f /usr/share/icons/hicolor
Register Pale Moon as a Browser on Ubuntu
Register Pale Moon with Ubuntu’s browser alternatives only if you want it to appear as a selectable default for applications that call x-www-browser or gnome-www-browser.
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/local/bin/palemoon 100
sudo update-alternatives --install /usr/bin/gnome-www-browser gnome-www-browser /usr/local/bin/palemoon 100
update-alternatives --query x-www-browser | sed -n '1,8p'
Relevant output includes:
Name: x-www-browser Link: /usr/bin/x-www-browser Status: auto Best: /usr/local/bin/palemoon Value: /usr/local/bin/palemoon
Verify Pale Moon Installation on Ubuntu
Confirm that the launcher path, desktop entry, icon, and browser binary are all in place before you try to open the graphical app.
command -v palemoon
ls /usr/share/applications/palemoon.desktop /usr/share/icons/hicolor/128x128/apps/palemoon.png
palemoon -v
Relevant output includes:
/usr/local/bin/palemoon /usr/share/applications/palemoon.desktop /usr/share/icons/hicolor/128x128/apps/palemoon.png Moonchild Productions Pale Moon 34.2.2
The exact version changes as new releases land on the official mirrors, but the verified output format stays the same.
Launch Pale Moon on Ubuntu
The browser can be downloaded and unpacked from any shell, but it still needs a graphical desktop session when you actually launch it.
Launch Pale Moon from the Applications Menu on Ubuntu
Search for Pale Moon Web Browser in Activities or your desktop launcher and open it there. If the icon does not appear immediately, sign out and back in so the desktop session reloads the new launcher metadata.
Launch Pale Moon from Terminal on Ubuntu
Use the launcher command from any graphical terminal after the desktop session is running.
palemoon


Manage Pale Moon on Ubuntu
The official tarball stays outside Ubuntu’s package database, so updates and cleanup are a little different from an apt install workflow.
Update Pale Moon on Ubuntu
This tarball install does not move with apt upgrade. Pale Moon ships updater files inside the archive, so the normal check runs from Help > About Pale Moon inside the browser. Pale Moon’s update preferences note that update installs require the original installing user or an administrator, so keeping the browser tree under your account avoids a root-owned updater problem.
If you want a manual fallback that refreshes the same install without reopening the article later, create a small update-palemoon command. The helper resolves the current official GTK3 tarball and checksum, downloads the mirror file, and swaps the extracted tree in only after the new files are ready.
- Use Help > About Pale Moon for the normal in-browser update check.
- Create
update-palemoonif you want a memorable fallback command from any terminal directory. - Close Pale Moon before running the manual updater so files are not replaced while the browser is still open.
Create the update-palemoon Command on Ubuntu
Install the updater command into /usr/local/bin so you can run update-palemoon from any directory. The script resolves the active install path from the /usr/local/bin/palemoon launcher you created earlier, which keeps the update command pointed at the same browser tree.
sudo tee /usr/local/bin/update-palemoon > /dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
# Resolve the existing Pale Moon install directory from the launcher symlink.
LAUNCHER_TARGET=$(readlink -f /usr/local/bin/palemoon 2>/dev/null || true)
if [ -z "$LAUNCHER_TARGET" ] || [ ! -x "$LAUNCHER_TARGET" ]; then
echo "Could not resolve the installed Pale Moon launcher at /usr/local/bin/palemoon." >&2
exit 1
fi
INSTALL_DIR=$(dirname "$LAUNCHER_TARGET")
# Pale Moon's official Linux download page currently publishes x86_64 GTK tarballs.
ARCH=$(uname -m)
if [ "$ARCH" != "x86_64" ]; then
echo "This script expects the official x86_64 Pale Moon Linux tarball." >&2
exit 1
fi
if ! grep -qm1 '^flags.*[[:space:]]avx[[:space:]]' /proc/cpuinfo; then
echo "This CPU does not expose AVX, which current official Pale Moon builds require." >&2
exit 1
fi
# Resolve the current release and checksum automatically instead of hardcoding a version.
DOWNLOAD_PAGE=$(curl -fsSL https://www.palemoon.org/download.shtml)
HASH_TEXT=$(printf '%s\n' "$DOWNLOAD_PAGE" | sed -n '/Hashes for release /,/<\/pre>/p' | sed -E 's/<[^>]+>/ /g')
VERSION=$(printf '%s\n' "$HASH_TEXT" | grep -Eo 'Hashes for release [0-9.]+' | awk '{print $4}' | tail -1)
FILENAME="palemoon-${VERSION}.linux-x86_64-gtk3.tar.xz"
SHA256=$(printf '%s\n' "$HASH_TEXT" | tr -s '[:space:]' '\n' | awk -v file="$FILENAME" '$0 == file { getline; print; exit }')
if [ -z "$VERSION" ] || [ -z "$SHA256" ]; then
echo "Could not resolve the current Pale Moon Linux GTK3 release and checksum." >&2
exit 1
fi
DOWNLOAD_URL="https://www.palemoon.org/download.php?mirror=us&bits=64&type=linuxgtk3"
TMPDIR=$(mktemp -d)
trap 'rm -rf "$TMPDIR"' EXIT
echo "Updating Pale Moon in $INSTALL_DIR..."
echo "Downloading Pale Moon $VERSION..."
FINAL_URL=$(curl -fsSL --output "$TMPDIR/$FILENAME" --write-out '%{url_effective}' "$DOWNLOAD_URL")
case "$FINAL_URL" in
*"$FILENAME") ;;
*)
echo "Download resolved to an unexpected file: $FINAL_URL" >&2
exit 1
;;
esac
printf '%s %s\n' "$SHA256" "$TMPDIR/$FILENAME" | sha256sum -c -
tar -xf "$TMPDIR/$FILENAME" -C "$TMPDIR"
if [ ! -d "$TMPDIR/palemoon" ]; then
echo "Pale Moon archive did not extract to a palemoon directory." >&2
exit 1
fi
BACKUP_DIR="${INSTALL_DIR}.previous"
if [ -d "$INSTALL_DIR" ]; then
rm -rf "$BACKUP_DIR"
mv "$INSTALL_DIR" "$BACKUP_DIR"
fi
if mv "$TMPDIR/palemoon" "$INSTALL_DIR"; then
rm -rf "$BACKUP_DIR"
printf 'Updated to %s\n' "$VERSION"
else
if [ -d "$BACKUP_DIR" ]; then
mv "$BACKUP_DIR" "$INSTALL_DIR"
fi
echo "Update failed, previous Pale Moon install restored." >&2
exit 1
fi
EOF
Make the command executable and confirm that Ubuntu can find it from your shell.
sudo chmod +x /usr/local/bin/update-palemoon
command -v update-palemoon
Expected output:
/usr/local/bin/update-palemoon
Run
update-palemoonas your regular user, not withsudo. The command updates the browser files under your home directory, and keeping that tree owned by your account avoids permission problems later.
Use this as a manual refresh tool, not a cron job. Replacing the browser directory while Pale Moon is open is an easy way to create a broken update or a locked file problem.
Run the command whenever you want a manual refresh:
update-palemoon
Relevant output includes:
Updating Pale Moon in /home/your-user/palemoon... Downloading Pale Moon 34.2.2... /tmp/tmp.example/palemoon-34.2.2.linux-x86_64-gtk3.tar.xz: OK Updated to 34.2.2
Your existing symlink, icons, and desktop launcher stay valid because the command replaces the same Pale Moon directory the launcher already points to.
Use Pale Moon Extensions on Ubuntu
Pale Moon has its own add-on ecosystem at the Pale Moon Add-ons Site, including extensions, themes, language tools, dictionaries, and search plugins. Pale Moon’s technical details page also notes compatibility with many legacy Firefox XUL extensions, but modern Firefox WebExtensions are not a drop-in match, so start with Pale Moon’s own add-on catalog first.
Open Pale Moon Profile Manager on Ubuntu
Use the long --ProfileManager form to open the chooser. For a named profile, use uppercase -P; lowercase -p is easy to confuse with other profile-path forms. Profile Manager is useful when you want a clean browsing profile for temporary troubleshooting, separate accounts, or extension checks.
palemoon --ProfileManager
To launch a specific profile directly, use:
palemoon -P profile-name
Change Pale Moon about:config Preferences on Ubuntu
Preference names such as apz.desktop.enabled are Pale Moon browser settings, not Ubuntu packages. Open about:config inside Pale Moon, search for the preference name, and change it only when you are intentionally testing browser scrolling or input behavior. If the change causes problems, return to the same preference and reset it.
Remove Pale Moon on Ubuntu
Remove the browser alternatives first if you registered them, then delete the launcher, menu entry, icons, extracted browser directory, and the optional update-palemoon command.
if update-alternatives --query gnome-www-browser 2>/dev/null | grep -q '/usr/local/bin/palemoon'; then
sudo update-alternatives --remove gnome-www-browser /usr/local/bin/palemoon
fi
if update-alternatives --query x-www-browser 2>/dev/null | grep -q '/usr/local/bin/palemoon'; then
sudo update-alternatives --remove x-www-browser /usr/local/bin/palemoon
fi
Remove the launcher files and extracted browser directory next.
sudo rm -f /usr/local/bin/palemoon /usr/local/bin/update-palemoon /usr/share/applications/palemoon.desktop
sudo rm -f /usr/share/icons/hicolor/16x16/apps/palemoon.png
sudo rm -f /usr/share/icons/hicolor/32x32/apps/palemoon.png
sudo rm -f /usr/share/icons/hicolor/48x48/apps/palemoon.png
sudo rm -f /usr/share/icons/hicolor/128x128/apps/palemoon.png
sudo gtk-update-icon-cache -f /usr/share/icons/hicolor
rm -rf "$HOME/palemoon"
rm -rf "$HOME/palemoon.previous"
Verify that the launcher and extracted files are gone:
remaining=0
for path in \
/usr/local/bin/palemoon \
/usr/local/bin/update-palemoon \
/usr/share/applications/palemoon.desktop \
/usr/share/icons/hicolor/16x16/apps/palemoon.png \
/usr/share/icons/hicolor/32x32/apps/palemoon.png \
/usr/share/icons/hicolor/48x48/apps/palemoon.png \
/usr/share/icons/hicolor/128x128/apps/palemoon.png \
"$HOME/palemoon" \
"$HOME/palemoon.previous"; do
if [ -e "$path" ]; then
printf 'Still exists: %s\n' "$path" >&2
remaining=1
fi
done
if [ "$remaining" -eq 0 ]; then
echo "Pale Moon files removed"
fi
Expected output:
Pale Moon files removed
Remove Pale Moon User Data on Ubuntu
This permanently deletes Pale Moon bookmarks, saved passwords, browsing history, and extensions. Export anything you want to keep first.
Check for Pale Moon profile directories under your home folder before you delete anything. This is safer than assuming the profile path already exists on every Ubuntu desktop.
find "$HOME" -maxdepth 2 -type d -iname '*moonchild*'
If that command returns ~/.moonchild productions, remove it along with any per-user desktop entries Pale Moon created.
rm -rf "$HOME/.moonchild productions"
rm -f "$HOME"/.local/share/applications/userapp-Pale\ Moon-*.desktop
Troubleshoot Pale Moon on Ubuntu
Most Pale Moon issues on Ubuntu come from missing runtime libraries, stale menu metadata, or relying on Ubuntu’s package manager for a tarball-based install.
Fix Illegal Instruction Errors for Pale Moon on Ubuntu
If Pale Moon exits with Illegal instruction from the terminal, recheck the AVX requirement before you reinstall packages. This failure means the official binary tried to use a CPU instruction that the current machine or virtual machine does not expose.
grep -m1 -o 'avx' /proc/cpuinfo || echo "AVX not available"
Expected output on a compatible system:
avx
If the command prints AVX not available, enable AVX passthrough in your VM settings when the host CPU supports it, move to AVX-capable hardware, or use an endorsed build from Pale Moon’s contributed builds page. Installing more Ubuntu libraries will not fix a missing CPU instruction.
Fix libdbus-glib-1.so.2 Errors for Pale Moon on Ubuntu
If Pale Moon fails immediately from the terminal, check for the missing libdbus-glib-1.so.2 library first. This is the startup failure the current tarball throws when libdbus-glib-1-2 is missing.
$HOME/palemoon/palemoon -v
Error output looks like this when the runtime library is missing:
XPCOMGlueLoad error for file /home/your-user/palemoon/libxul.so: libdbus-glib-1.so.2: cannot open shared object file: No such file or directory Couldn't load XPCOM.
Install the missing package, then rerun the version check:
sudo apt install libdbus-glib-1-2 -y
palemoon -v
Relevant output after the fix includes:
Moonchild Productions Pale Moon 34.2.2
Refresh Pale Moon Menu Icons on Ubuntu
If the browser launches from the terminal but not from the menu, make sure the desktop file and icon were written where the desktop environment expects them.
ls /usr/share/applications/palemoon.desktop /usr/share/icons/hicolor/128x128/apps/palemoon.png
Expected output:
/usr/share/applications/palemoon.desktop /usr/share/icons/hicolor/128x128/apps/palemoon.png
Refresh the icon cache if those files exist but the menu entry still has not appeared:
sudo gtk-update-icon-cache -f /usr/share/icons/hicolor
After that, sign out and back in so the desktop session reloads the launcher metadata.
Use the update-palemoon Command on Ubuntu
If Help > About Pale Moon stops applying updates, rerun update-palemoon instead of rebuilding the refresh workflow by hand.
update-palemoon
Conclusion
Pale Moon is installed on Ubuntu from the official GTK3 tarball with checksum verification, AVX-aware compatibility checks, a working launcher, menu entry, icon set, and a manual refresh path if the built-in updater ever stalls. If you want a browser that stays closer to Ubuntu’s package flow, try install Firefox ESR on Ubuntu, or use install Flatpak on Ubuntu only when a separate community package is the goal.


palemoon no longer present in this repo, Sep 2024.
Thanks for pointing this out. It seems Steven has removed all Debian and Ubuntu builds and is now only supporting MX Linux, which he uses and contributes to, based on information from the Pale Moon forums. I’ll update the guide soon with alternative methods.