Browser Setup

Install Chrome, Firefox (native .deb via Mozilla APT), Edge, and Brave on an Ubuntu-based distro. Choose the right secondary browser, remove browsers completely, and fix repository issues.

Beginner Verified Working Updated 12 min read Tested on Linux Mint 22.3 Cinnamon (Ubuntu 24.04 Noble base); also tested on Zorin OS 18.1 Pro Hardware Lenovo ThinkPad L14 Gen 2 (Intel i5-1135G7, 16GB RAM, Intel Iris Xe, 1366x768)

What This Guide Achieves

GoalStatus
Install Chrome, Edge, or BraveDone
Install Firefox as a native .deb via Mozilla APT (no Snap)Done
Choose the right secondary browser based on engine diversityDone
Remove a browser completely (binary, repo, keys, user data)Done
Fix duplicate repository warningsDone
Fix missing GPG key errorsDone
Fix i386 architecture warningsDone

Prerequisites

  • Any Ubuntu 24.04-based distro
  • Firefox is pre-installed on many Ubuntu-based desktops, including the tested Zorin setup
  • Before adding or removing browser repositories, review the clean installation and removal best practices

The Problem (Windows User Perspective)

On Windows, you download a browser installer and run it. On Linux, browsers from Google, Microsoft, and Brave add their own apt repositories to your system so they can auto-update. This sometimes causes duplicate repository entries, missing GPG keys, or architecture warnings. The installations themselves are straightforward — the tricky part is cleaning up the repository mess afterward.


Installing Browsers

Google Chrome

# Download and install
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb

Chrome automatically adds its own apt repository for future updates.

Microsoft Edge

# Add Microsoft's GPG key and repository
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /usr/share/keyrings/microsoft-edge.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-edge.gpg] https://packages.microsoft.com/repos/edge stable main" | sudo tee /etc/apt/sources.list.d/microsoft-edge.list

# Install
sudo apt update
sudo apt install microsoft-edge-stable

Brave Browser

# Add Brave's GPG key and repository
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list

# Install
sudo apt update
sudo apt install brave-browser

Firefox (Native .deb via Mozilla APT — No Snap)

On Ubuntu-based systems, sudo apt install firefox may install the Snap version of Firefox, which launches noticeably slower and does not integrate as cleanly with system themes. To get the official native .deb directly from Mozilla:

# 1. Create the keyrings directory if it does not exist
sudo install -d -m 0755 /etc/apt/keyrings

# 2. Import Mozilla's APT repository signing key
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- \
  | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null

# 3. Add the Mozilla APT repository
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" \
  | sudo tee /etc/apt/sources.list.d/mozilla.list > /dev/null

# 4. Pin the Mozilla repo so it takes priority over any distro-packaged Firefox
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' | sudo tee /etc/apt/preferences.d/mozilla

# 5. Install
sudo apt update && sudo apt install firefox

Verify you got the native .deb and not the Snap:

which firefox
# Expected: /usr/bin/firefox  (not /snap/bin/firefox)

firefox --version

Choosing a Secondary Browser: Engine Diversity

If you run Chrome as your primary browser and encounter rendering issues — for example, server-side generated PDFs that load correctly on Android Chrome but fail on Linux Chrome — switching to a second Chromium-based browser (Brave, Edge) will not help. They all share the same Blink rendering engine and the same built-in PDF viewer.

The correct strategy is engine diversity: pair Chrome with a browser that processes web content and files through a completely different engine.

BrowserEnginePDF viewerGood secondary to Chrome?
BraveChromium/BlinkSame as ChromeNo — same engine quirks
Microsoft EdgeChromium/BlinkExcellent (Adobe-based), but same Blink basePartial — great PDF reader, same engine bugs
FirefoxGeckopdf.js (Mozilla’s own)Yes — best choice
Zen BrowserGecko (Firefox base)pdf.js (same as Firefox)Yes — Firefox engine, cleaner UI

Why Firefox solves PDF issues: Firefox uses Mozilla’s own pdf.js renderer and the Gecko engine. When Chrome on Linux misreads a dynamic file stream, a missing MIME-type header, or a blob URL from a server-side PDF generator, Firefox reads the same data through a completely independent code path and usually renders it correctly.

Firefox vs Zen Browser

Both use Gecko and will solve Chromium-specific rendering bugs equally well. The choice depends on workflow preference:

FactorFirefoxZen Browser
StabilityRock-solid; backed by Mozilla’s full engineering teamRapidly moving open-source project; occasionally minor UI bugs
DRM / streamingWorks out of the box (Netflix, Spotify, Prime)May require manual configuration for some DRM content
UI / tab managementTraditional horizontal tabs; vertical tabs need an extensionBuilt-in vertical tabs, split view, workspaces — no extensions needed
CustomizationBest-in-class with userChrome.cssBuilt-in Mods store for CSS tweaks
Package availabilityOfficial Mozilla APT repo (native .deb)AppImage or build from source — no apt repo yet

For an apt-first system where stability and native packaging matter, Firefox from the Mozilla APT repo is the better fit.


Removing a Browser Completely

Browser installers add a repository, a GPG key, and user data directories. Simply running apt remove leaves all of those behind. Here is the full removal for each browser.

Remove Brave

Export bookmarks and saved passwords from brave://bookmarks and brave://settings/passwords before removing.

# Remove the browser and its config files
sudo apt purge brave-browser

# Remove the Brave repository and signing key
sudo rm -f /etc/apt/sources.list.d/brave-browser-release.list
sudo rm -f /usr/share/keyrings/brave-browser-archive-keyring.gpg

# Delete user profile and cache
rm -rf ~/.config/BraveSoftware
rm -rf ~/.cache/BraveSoftware

# Clean up orphaned dependencies
sudo apt autoremove --purge
sudo apt update

Remove Chrome

sudo apt purge google-chrome-stable
sudo rm -f /etc/apt/sources.list.d/google-chrome.list
sudo rm -f /etc/apt/sources.list.d/google-chrome.sources
sudo rm -f /usr/share/keyrings/google-chrome.gpg
rm -rf ~/.config/google-chrome
rm -rf ~/.cache/google-chrome
sudo apt autoremove --purge
sudo apt update

Remove Firefox (Mozilla APT install)

sudo apt purge firefox
sudo rm -f /etc/apt/sources.list.d/mozilla.list
sudo rm -f /etc/apt/keyrings/packages.mozilla.org.asc
sudo rm -f /etc/apt/preferences.d/mozilla
rm -rf ~/.mozilla
rm -rf ~/.cache/mozilla
sudo apt autoremove --purge
sudo apt update

Fixing Common Repository Issues

Problem: Duplicate Chrome Repository

After installing Chrome, you may see errors like:

Err: https://dl.google.com/linux/chrome/deb stable InRelease
  The following signatures couldn't be verified: NO_PUBKEY 32EE5355A6BC6E42

Cause: Chrome sometimes creates two repository files — an old .list and a new .sources — causing conflicts.

Diagnosis:

ls /etc/apt/sources.list.d/ | grep google

If you see both google-chrome.list AND google-chrome.sources, you have duplicates.

Fix:

# Check what's in each file
cat /etc/apt/sources.list.d/google-chrome.list
cat /etc/apt/sources.list.d/google-chrome.sources

# The .sources file is the modern, correct one — delete the old .list
sudo rm /etc/apt/sources.list.d/google-chrome.list

# Re-add the GPG key
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | \
  sudo gpg --dearmor -o /usr/share/keyrings/google-chrome.gpg

# Verify the .sources file has the signed-by field
cat /etc/apt/sources.list.d/google-chrome.sources
# Should include: Signed-By: /usr/share/keyrings/google-chrome.gpg

# Clean update
sudo apt update

Problem: i386 Architecture Warning

N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository doesn't support architecture 'i386'

Cause: The repository is configured without specifying amd64 architecture, so apt also tries to fetch 32-bit packages.

Fix: Ensure the .sources file includes Architectures: amd64:

sudo nano /etc/apt/sources.list.d/google-chrome.sources

It should look like:

Types: deb
URIs: https://dl.google.com/linux/chrome/deb/
Suites: stable
Components: main
Architectures: amd64
Signed-By: /usr/share/keyrings/google-chrome.gpg

Problem: Browsers Won’t Open

If Chrome or Edge refuse to open, try launching from terminal to see the error:

google-chrome
# or
microsoft-edge

Common fixes:

# Fix broken dependencies
sudo apt --fix-broken install

# If sandbox error (use only as a temporary diagnostic — this disables Chrome's primary security layer):
google-chrome --no-sandbox

Troubleshooting: Firefox Gear Icon and Missing History (Snap/APT Conflict)

The Symptoms

After a system update, Firefox appears with a gear icon (the generic fallback icon) on the taskbar instead of the Firefox logo. Closing that window and reopening Firefox from the application menu launches a browser with no history, no bookmarks, and no saved logins — as if Firefox was just installed.

Why This Happens

Ubuntu and Zorin OS ship a “transition package” for Firefox. When you run sudo apt install firefox, the system does not install a real .deb — it installs a stub that redirects to the Snap Store. The Snap version then runs inside an isolated container.

The problem with two coexisting versions:

VersionBinaryProfile data location
Snap (Ubuntu default)/snap/bin/firefox~/snap/firefox/common/.mozilla/firefox/
Native APT (Mozilla PPA)/usr/bin/firefox~/.mozilla/firefox/

If both versions exist at the same time, the application menu may launch whichever one it finds first — often the Snap version, which has no profile data and a different internal identity that the taskbar cannot match to a pinned icon.

The gear icon specifically is a WM_CLASS mismatch: the taskbar sees a window open and tries to find a pinned launcher that matches the app’s reported identity. The Snap version’s sandboxed identity often doesn’t match the .desktop file, so the taskbar falls back to a generic gear icon.

Step 1: Diagnose Which Versions Are Installed

whereis firefox

If you see both /usr/bin/firefox and /snap/bin/firefox in the output, both versions are present.

flatpak list | grep -i firefox

A Flatpak version is less common but adds a third possible source of conflict.

Check which binary the application menu is currently launching:

cat /usr/share/applications/firefox.desktop 2>/dev/null | grep Exec
cat ~/.local/share/applications/firefox.desktop 2>/dev/null | grep Exec

Step 2: Locate Your Profile Data

Your history and bookmarks are in the profile directory of whichever version you were previously using:

# APT/native version data
ls ~/.mozilla/firefox/

# Snap version data
ls ~/snap/firefox/common/.mozilla/firefox/

Whichever path exists and contains .default or .default-release folders is where your data is. If ~/.mozilla/firefox does not exist, your data is in the Snap location.

Step 3: Remove the Snap Version

Before removing, confirm the Mozilla APT pin is in place (this prevents the Snap from being reinstalled automatically on the next apt upgrade):

cat /etc/apt/preferences.d/mozilla

If the file is missing or empty, create it first:

echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000

Package: firefox*
Pin: release o=Ubuntu
Pin-Priority: -1' | sudo tee /etc/apt/preferences.d/mozilla

Now remove the Snap version:

sudo snap remove --purge firefox

Step 4: Reinstall Clean from Mozilla APT

sudo apt purge firefox
sudo apt update
sudo apt install firefox

After reinstall, launch Firefox from the application menu. Your history and bookmarks should be restored because the native APT version reads from ~/.mozilla/firefox/, which was preserved throughout.

Step 5: Verify

apt policy firefox

Correct output:

firefox:
  Installed: 150.0.2~build2
  Candidate: 150.0.2~build2
  Version table:
 *** 150.0.2~build2 1000
       1000 https://packages.mozilla.org/apt mozilla/main amd64 Packages
     1:1snap1-0ubuntu5 -1
        500 http://bd.archive.ubuntu.com/ubuntu noble/main amd64 Packages

Note: The exact Firefox version number (150.0.2~build2 above) will differ on your system. What matters is the structure of the output, not the specific version digits.

The three numbers to confirm:

  • *** 150.x.x~buildX — the installed version is from the Mozilla PPA
  • 1000 — the Mozilla PPA has priority 1000 (preferred)
  • -1 — the Ubuntu/Snap stub is blocked from being installed

Pin the Firefox logo to your taskbar from the application menu after verifying the correct version is running.

Why the Gear Icon Disappears After This Fix

The native APT version of Firefox correctly declares its WM_CLASS as firefox, which matches the StartupWMClass=firefox field in the .desktop launcher file. The taskbar can link the open window back to the pinned icon. The Snap version runs in a container with a different reported identity, breaking that link.


Best Practice: Weekly Updates

Keep all browsers and system packages current:

sudo apt update && sudo apt upgrade -y

Run this once a week or set your distro’s Software & Updates → Updates tab to check automatically.


What Didn’t Work (and Why)

Approach TriedWhy It Failed
Having both .list and .sources repo files for ChromeCreates duplicate entries — one uses the wrong URL and lacks GPG signing
Ignoring the i386 warningHarmless but clutters output — better to fix it
sudo sed to fix Chrome repoDoesn’t work reliably since Chrome may have multiple file formats
Using a second Chromium-based browser to fix PDF renderingBrave and Edge share Chrome’s Blink engine — the same server-side PDF generation bugs affect all three
sudo apt install firefox expecting a native .debOn Ubuntu-based systems this installs the Snap version, which starts slower and ignores system themes

Verification

# Check for clean output (no warnings or errors)
sudo apt update

# Verify browser versions
google-chrome --version
microsoft-edge --version
brave-browser --version

# Verify Firefox is native .deb (not Snap)
which firefox
# Expected: /usr/bin/firefox
firefox --version

Complete Removal

# Chrome
sudo apt remove google-chrome-stable
sudo rm /etc/apt/sources.list.d/google-chrome.*

# Edge
sudo apt remove microsoft-edge-stable
sudo rm /etc/apt/sources.list.d/microsoft-edge.list

# Brave
sudo apt remove brave-browser
sudo rm /etc/apt/sources.list.d/brave-browser-release.list

Discussion