Google Chrome is available for Ubuntu 26.04, 24.04, and 22.04 through Google’s official APT repository, with a community-maintained Flatpak wrapper also available on Flathub. To download and install Google Chrome on Ubuntu from the command line, add Google’s repository, install the google-chrome-stable package with APT, and let future updates arrive through normal package upgrades. Chrome remains a common choice for Google Workspace access, web development testing, and sites tuned for the Blink rendering engine.
Google Chrome is not in Ubuntu’s default repositories, so apt install google-chrome-stable works only after you add Google’s repo. Google also provides an official amd64 .deb download, but the repository method is cleaner for long-term updates because APT keeps Chrome current with normal package upgrades. Google does not publish a Launchpad PPA, Snap package, ARM64 build, or i386 build for Chrome on Linux.
Install Google Chrome on Ubuntu
The APT repository is the primary method for most Ubuntu desktops because it comes directly from Google and exposes the stable, beta, unstable, and canary channels. Use the Flatpak method later in the article only when you already manage desktop apps through Flathub or want a sandboxed wrapper that is not verified, affiliated with, or supported by Google.
| Method | Source | Updates | Best For |
|---|---|---|---|
| APT repository | Google’s APT repository at dl.google.com | Normal APT upgrades | Most users who want direct Google packages and all four release channels |
| Flatpak | Flathub wrapper for Chrome | Flatpak updates and extra-data refreshes | Users who already use Flathub or prefer Flatpak app isolation |
The official Google Chrome download page also provides a current google-chrome-stable_current_amd64.deb file. Use that direct package only when you need a one-off download; the repository workflow below is easier to maintain because it keeps the source and signing key in APT.
If you need an open-source browser or a package path outside Google’s amd64 Chrome builds, use Chromium on Ubuntu instead. Chromium shares the Blink engine but does not include the same proprietary Google integrations as Chrome.
Update Ubuntu Package Lists
Refresh your system’s package index to ensure you install the latest versions of any prerequisites:
sudo apt update
These commands use
sudofor actions that need root privileges. If your user is not in the sudoers file yet, follow the guide on how to add and manage sudo users on Ubuntu.
Install Required Chrome Dependencies
Install the packages needed for secure downloads and GPG key management:
sudo apt install ca-certificates curl -y
The -y flag automatically confirms the installation prompt. This command installs certificate handling for HTTPS connections and the curl command for downloading files. Ubuntu includes the gpg command by default for GPG key operations.
Google Chrome Release Channels
Google publishes Chrome through four release channels. All channels are available from the same repository, so you can install multiple versions side-by-side.
| Channel | Package Name | Stability | Best For |
|---|---|---|---|
| Stable | google-chrome-stable | High | Daily browsing, production use |
| Beta | google-chrome-beta | Moderate | Preview features 4-6 weeks before stable |
| Unstable (Dev) | google-chrome-unstable | Low | Early development testing |
| Canary | google-chrome-canary | Very Low | Experimental builds updated daily |
Most users should install the stable channel. The beta, unstable, and canary channels receive updates more frequently and may contain bugs that make them unsuitable for daily use.
Import Google Chrome’s GPG Signing Key
APT requires a GPG key to verify the authenticity of packages downloaded from external repositories. Download Google’s public signing key, convert it to binary format, and store it in the system keyring directory:
curl -fsSL https://dl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor --yes -o /usr/share/keyrings/google-chrome.gpg
The -fsSL flags tell curl to fail on HTTP errors, suppress progress output, and follow redirects. The --dearmor flag converts the key from ASCII-armored format to binary, while --yes keeps reruns from stopping for an overwrite prompt. Your system can now verify packages signed by Google during installation and updates.
Add the Google Chrome APT Repository
Create a repository configuration file using the modern DEB822 format, which is clearer and more maintainable than the legacy one-line format:
printf '%s\n' \
'Types: deb' \
'URIs: https://dl.google.com/linux/chrome/deb/' \
'Suites: stable' \
'Components: main' \
'Architectures: amd64' \
'Signed-By: /usr/share/keyrings/google-chrome.gpg' \
| sudo tee /etc/apt/sources.list.d/google-chrome.sources > /dev/null
The printf command writes each source line exactly once, and sudo tee saves the file with root permissions because a plain shell redirect would not inherit sudo. Each line in this configuration serves a specific purpose:
- Types: deb specifies binary packages (not source packages)
- URIs points to Google’s package server
- Suites: stable is the repository branch (despite the name, all four Chrome channels are available from this branch)
- Architectures: amd64 limits packages to 64-bit x86 systems, matching Google’s published Linux Chrome packages
- Signed-By links to the GPG key you imported earlier
The Google Chrome repository uses a codename-neutral
stablesuite, so the same source file works on Ubuntu 26.04 LTS, 24.04 LTS, and 22.04 LTS. The article scope stays on those supported LTS releases.
Verify the Chrome Repository Configuration
Refresh your package lists to include the new repository:
sudo apt update
Confirm the repository is working by checking the package sources:
apt-cache policy google-chrome-stable
The output should show Google’s repository as the package source:
google-chrome-stable:
Installed: (none)
Candidate: 147.0.7727.116-1
Version table:
147.0.7727.116-1 500
500 https://dl.google.com/linux/chrome/deb stable/main amd64 Packages
If you see the https://dl.google.com URL in the output, the repository is configured correctly. The version number will differ as Google releases updates.
Install Chrome Stable and Preview Channels with APT
With the repository configured, install your preferred Chrome channel using APT.
Install Google Chrome Stable
The stable package is named google-chrome-stable. Commands such as apt install chrome or apt install google-chrome will not install Google’s browser because those are not the package names in Google’s repository:
sudo apt install google-chrome-stable -y
If you prefer the older command style, sudo apt-get install google-chrome-stable targets the same package. This article uses apt because it is the standard interactive package command on current Ubuntu systems.
Verify the installation by checking the version:
google-chrome --version
Google Chrome 147.0.7727.116
Your version number will reflect the latest stable release at installation time. Chrome updates automatically through the repository, so the version may change after system updates.
Install Chrome Beta, Unstable, or Canary Builds
For early access to experimental features, install an alternate channel. Each channel installs as a separate application, so you can run multiple versions simultaneously:
Install the beta version (one to two major versions ahead of stable):
sudo apt install google-chrome-beta -y
Install the unstable (dev) version for active development testing:
sudo apt install google-chrome-unstable -y
Install the canary version for the absolute latest experimental builds:
sudo apt install google-chrome-canary -y
Verify your chosen channel with its specific version command:
google-chrome-beta --version
google-chrome-unstable --version
google-chrome-canary --version
The unstable and canary channels may contain bugs and stability issues unsuitable for production environments. Use the stable channel for daily browsing and reserve these channels for testing new features or web development.
Install Google Chrome with Flatpak on Ubuntu
Google Chrome is available as a Flatpak wrapper on Flathub. Flathub currently labels the wrapper as not verified, affiliated with, or supported by Google, and the wrapper downloads Google’s amd64 Chrome package as extra data during installation.
Flatpak must be installed with the Flathub repository enabled before proceeding. If Flatpak is not set up on your system, follow the Flatpak installation guide for Ubuntu to install the Flatpak framework and add the Flathub repository first.
Install Google Chrome Stable Flatpak on Ubuntu
Install the stable release of Google Chrome from Flathub at system scope:
sudo flatpak install flathub com.google.Chrome -y
The -y flag skips the interactive confirmation prompt. The sudo prefix installs at system scope, making Chrome available to all users on the machine.
Install Google Chrome Dev Flatpak on Ubuntu
For early access to development builds, install Google Chrome Dev alongside or instead of the stable version. Flathub publishes this as com.google.ChromeDev, which tracks Chrome’s unstable channel:
sudo flatpak install flathub com.google.ChromeDev -y
Chrome Dev receives frequent updates with experimental features that may be less stable than the stable release.
Launch Google Chrome Flatpak on Ubuntu
Launch the Flatpak version from the terminal:
flatpak run com.google.Chrome
For Chrome Dev:
flatpak run com.google.ChromeDev
Both versions also appear in the GNOME Activities menu after installation. The Flatpak version runs in a sandbox with limited access to host system files by default.
Update Google Chrome Flatpak on Ubuntu
Update all Flatpak applications, including Chrome, with a single command:
sudo flatpak update -y
To update only Chrome without affecting other Flatpak applications:
sudo flatpak update com.google.Chrome -y
Remove Google Chrome Flatpak from Ubuntu
Uninstall the Chrome Flatpak and remove unused runtimes:
sudo flatpak remove com.google.Chrome -y
sudo flatpak remove --unused -y
For Chrome Dev:
sudo flatpak remove com.google.ChromeDev -y
Flatpak stores user data separately from the application. To remove Chrome’s Flatpak data directory after backing up any unsynced profile data:
rm -rf ~/.var/app/com.google.Chrome
rm -rf ~/.var/app/com.google.ChromeDev
Launch Google Chrome on Ubuntu
Launch Google Chrome from Terminal
Launch Google Chrome Stable from the terminal:
google-chrome
If you installed other channels, launch them with their specific commands:
| Channel | Launch Command |
|---|---|
| Beta | google-chrome-beta |
| Unstable (Dev) | google-chrome-unstable |
| Canary | google-chrome-canary |
Launch Google Chrome from Applications Menu
Open Chrome through the graphical interface:
- Click Activities in the top-left corner of your screen (or press the Super key).
- Type “Chrome” in the search field.
- Click the Google Chrome icon to launch. If you have multiple versions installed, they appear as separate entries: Google Chrome, Google Chrome (Beta), Google Chrome (Unstable), and Google Chrome (Canary).

Configure Google Chrome on Ubuntu
When you open Google Chrome for the first time on Ubuntu, several prompts help configure the browser for your preferences. These setup steps are optional but personalize your browsing experience.
Chrome Keychain Password Prompt on Ubuntu
Ubuntu may prompt you to set up or unlock a keychain password. The keychain stores passwords for websites and applications securely. Enter your user password or create a new keychain password, or click Cancel to skip keychain integration.
Set Google Chrome as Default Browser on Ubuntu
Chrome will ask whether you want to make it the default browser. Click “Set as Default” to replace your current default (usually Firefox on Ubuntu), or close the prompt to keep your existing default.
Chrome Usage Statistics and Crash Reports on Ubuntu
Chrome displays an option to send usage statistics and crash reports to Google, which helps improve the browser. Select or deselect the checkbox based on your privacy preferences.
Sign In to Google Chrome on Ubuntu
Chrome allows you to sign in with your Google account to sync bookmarks, history, passwords, and settings across devices. This is optional, and you can skip it by clicking the X in the sign-in tab or selecting “Continue without account.”
Update Google Chrome on Ubuntu
Keep Google Chrome Updated with APT
The APT repository you configured delivers Chrome updates automatically alongside your system packages. Refresh your package lists and upgrade all packages:
sudo apt update
sudo apt upgrade
To update only Chrome without upgrading other packages, use the --only-upgrade flag with the specific package name:
sudo apt install --only-upgrade google-chrome-stable -y
Replace google-chrome-stable with google-chrome-beta, google-chrome-unstable, or google-chrome-canary to update a different channel.
Remove Google Chrome from Ubuntu
If you no longer need Google Chrome, remove it along with its repository configuration.
Uninstall Google Chrome Packages
Use the appropriate command based on the channel you installed. The purge option removes the package along with its system-level configuration files, unlike remove which leaves config files behind:
sudo apt purge google-chrome-stable -y
For other channels:
sudo apt purge google-chrome-beta -y
sudo apt purge google-chrome-unstable -y
sudo apt purge google-chrome-canary -y
Then review any packages APT says are no longer needed. On reused systems, this list can include packages unrelated to Chrome, so read the preview before confirming:
sudo apt autoremove --purge
Remove Chrome Repository and GPG Key
Delete the repository configuration file and GPG key to prevent APT from checking for Chrome updates:
sudo rm -f /etc/apt/sources.list.d/google-chrome.sources
sudo rm -f /etc/apt/sources.list.d/google-chrome.list
sudo rm -f /usr/share/keyrings/google-chrome.gpg
The second line removes a legacy .list file that a direct .deb install or older repository setup may have created. Refresh your package lists:
sudo apt update
Verify the repository is no longer active:
apt-cache policy google-chrome-stable
The command should return empty output, confirming no repository provides the package.
Remove Chrome User Data (Optional)
The following commands permanently delete your Chrome profile data, including bookmarks, saved passwords, extensions, and browsing history. Back up these directories first if you want to preserve this data for a future Chrome reinstallation.
Remove all Chrome configuration and cache files from your home directory. The -rf flags force recursive deletion without prompting:
rm -rf ~/.config/google-chrome*
rm -rf ~/.cache/google-chrome*
rm -rf ~/.local/share/applications/google-chrome*.desktop
After completing the package, repository, and optional user-data cleanup above, Chrome’s packages, source file, keyring, and listed profile/cache paths are removed.
Troubleshoot Google Chrome on Ubuntu
Fix Chrome Duplicate Repository Warnings on Ubuntu
Older Chrome installs, direct .deb installs, or previous one-line repository guides can leave a legacy google-chrome.list file next to the modern .sources file. When both files point at the same repository, apt update can show duplicate target warnings:
W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/google-chrome.list:1 and /etc/apt/sources.list.d/google-chrome.sources:1
Remove the duplicate file to resolve the warning:
sudo rm -f /etc/apt/sources.list.d/google-chrome*.list
sudo apt update
The .list file should stay gone during normal Chrome updates after you keep only the DEB822 source file. If you later install Chrome from a direct .deb file and the warning returns, rerun the cleanup command.
Fix Chrome Signed-By Conflicts on Ubuntu
If apt update fails with a Conflicting values set for option Signed-By error that mentions different key paths such as /var/lib/extrepo/keys/google_chrome.asc and /usr/share/keyrings/google-chrome.gpg, your system has more than one Chrome repository definition. This usually happens when an older or alternative Chrome source is still present and you then add another source for the same Google repository.
E: Conflicting values set for option Signed-By regarding source http://dl.google.com/linux/chrome/deb/ stable: /var/lib/extrepo/keys/google_chrome.asc != /usr/share/keyrings/google-chrome.gpg E: The list of sources could not be read.
Check which Chrome source files are present before removing anything. The grep command searches source files for the Google repository URL and prints matching filenames:
grep -Ril "dl.google.com/linux/chrome/deb" /etc/apt/sources.list.d 2>/dev/null
A conflicting setup usually shows two Chrome source files. One common example looks like this:
/etc/apt/sources.list.d/extrepo_google_chrome.sources /etc/apt/sources.list.d/google-chrome.sources
If you are following this guide and want to keep the manual DEB822 setup, keep /etc/apt/sources.list.d/google-chrome.sources and remove the other Chrome source file shown in your output. One common cleanup command looks like this:
sudo rm -f /etc/apt/sources.list.d/extrepo_google_chrome.sources
sudo apt update
If you prefer to keep the older or alternative source instead, remove the manual source file and the manual keyring from this article, then refresh APT:
sudo rm -f /etc/apt/sources.list.d/google-chrome.sources
sudo rm -f /usr/share/keyrings/google-chrome.gpg
sudo apt update
After cleanup, recheck the Chrome source files and verify the package source. A healthy setup returns only one Chrome repository file and shows https://dl.google.com in the version table:
grep -Ril "dl.google.com/linux/chrome/deb" /etc/apt/sources.list.d 2>/dev/null
apt-cache policy google-chrome-stable
/etc/apt/sources.list.d/google-chrome.sources
google-chrome-stable:
Installed: (none)
Candidate: 147.0.7727.116-1
Version table:
147.0.7727.116-1 500
500 https://dl.google.com/linux/chrome/deb stable/main amd64 Packages
Fix Chrome GPU Errors on Ubuntu
Chrome may fail to start on systems with certain GPU configurations or when running in virtual machines. Launch Chrome with GPU sandboxing disabled to diagnose the issue:
google-chrome --disable-gpu-sandbox
If Chrome starts successfully with this flag, the issue is GPU-related. You can also disable GPU acceleration entirely:
google-chrome --disable-gpu
For a permanent fix, check Chrome’s GPU status by navigating to chrome://gpu in the address bar. This page shows which GPU features are enabled or disabled and any blocklist reasons.
Fix Chrome Crashes on Wayland Sessions on Ubuntu
Ubuntu 24.04 and newer default to Wayland sessions. If Chrome crashes or displays rendering issues, force Chrome to run in X11 mode:
google-chrome --ozone-platform=x11
For better performance on modern hardware, force native Wayland mode instead:
google-chrome --ozone-platform=wayland
Treat these flags as tests before changing launchers. If one mode fixes the issue consistently, create a user-specific desktop entry or launcher wrapper instead of editing the packaged desktop file, which package updates can replace.
Fix Missing Fonts or Emoji in Chrome on Ubuntu
If web pages display placeholder boxes instead of characters or emoji, install additional font packages:
sudo apt install fonts-noto-color-emoji fonts-noto fonts-liberation -y
Restart Chrome after installing the fonts for changes to take effect.
Fix Chrome Profile Locked Error on Ubuntu
If Chrome reports “Your profile could not be opened correctly” or displays a lock error, a previous Chrome process may have exited uncleanly. Remove the lock file:
rm -f ~/.config/google-chrome/SingletonLock
Restart Chrome after removing the lock file.
Fix Chrome NO_PUBKEY GPG Error on Ubuntu
If apt update returns an error like NO_PUBKEY 32EE5355A6BC6E42, the GPG key is missing or corrupted. Re-import the key:
sudo rm -f /usr/share/keyrings/google-chrome.gpg
curl -fsSL https://dl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor --yes -o /usr/share/keyrings/google-chrome.gpg
sudo apt update
The --dearmor flag converts the ASCII-armored key to binary format that APT requires. After re-importing, apt update should complete without GPG errors.
Google Chrome Resources and Documentation
These official resources provide additional information for managing and troubleshooting Chrome on Ubuntu:
- Google Chrome Download: Official browser download page for the current desktop installer.
- Google Chrome Release Blog: Updates on the latest stable, beta, and developer Chrome versions with changelogs and security fixes.
- Chrome Developer Release Notes: Developer-focused updates on new APIs, deprecations, and behavior changes.
- Google Chrome Help Center: Official guides for installation, troubleshooting, privacy settings, and browser optimization.
- Chrome Web Store: Extensions, apps, and themes to customize your browsing experience.
Conclusion
Google Chrome is installed on Ubuntu through Google’s APT repository or the Flathub wrapper, with updates handled by the matching package manager. Keep the APT path for direct Google packages and preview channels; use Chromium on Ubuntu, Brave Browser on Ubuntu, Vivaldi on Ubuntu, or Firefox ESR on Ubuntu when you want a different browser stack.
Clear and concise! thank you!
E: Conflicting values set for option Signed-By regarding source http://dl.google.com/linux/chrome/deb/ stable: /var/lib/extrepo/keys/google_chrome.asc != /usr/share/keyrings/google-chrome.gpg
E: The list of sources could not be read.
when trying to update
any Ideas?
Mike, this usually means an older or alternative Chrome source is still present alongside the current one from the guide. APT sees the same Google repo twice with different signing keys, so
apt updatestops.List the Chrome source files first:
If you want to keep this guide’s setup, keep
/etc/apt/sources.list.d/google-chrome.sources, remove the other Chrome source file shown in that output, and runsudo apt updateagain. I added this conflict to the troubleshooting section today.I did this installation and everything worked without any error messages until the last command to get Google Chrome. Ubuntu looks great and will replace Windows. But I absolutely need the JW app from Google Chrome. I downloaded the APK from jw.org, but Ubuntu didn’t accept it and told me to get the DEB file. Please have some patience with me — I’m 79 years old and technology has always been my life. Years ago, I helped many friends switch from Windows 7 to 10. Now I’m thinking about moving many PCs to Linux. There are many people on this Earth with older PCs who can’t always afford the latest, so Linux would be better — and this can also be promoted. I look forward to the day when this works! Thank you for your understanding,
Michel
Thanks! I was getting this error when doing “sudo apt update”:
“The following signatures could not be verified because the public key is not available: NO_PUBKEY 32EE5355A6BC6E42
Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/InRelease The following signatures could not be verified because the public key is not available: NO_PUBKEY 32EE5355A6BC6E42”
I had to do this before I was able to install Chrome again using the apt method outlined above.
sudo rm /etc/apt/sources.list.d/google.list*
Before that I had also deleted the chrome keys.
Thanks for sharing this, Ben. The
NO_PUBKEYerror indicates APT cannot verify the repository signature because the GPG key is missing or incorrectly configured. Your solution of removing the old repository files and keys, then re-importing fresh copies, is exactly the right approach.For others encountering this issue, follow the Import Google Chrome APT Repository section from the beginning. First, import the GPG key:
Then add the repository with the correct keyring reference:
This ensures APT can verify Google’s repository signatures and prevents the
NO_PUBKEYerror from recurring.Trying to install Chrome on a fresh Ubuntu-Unity 24.04.1 machine and while following the instructions for apt I keep getting this response, and I’m unable to install chrome.
$ sudo apt update
Hit:1 http://security.ubuntu.com/ubuntu noble-security InRelease
Ign:2 http://dl.google.com/linux/chrome/dev stable InRelease
Hit:3 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:4 http://archive.ubuntu.com/ubuntu noble-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu noble-backports InRelease
Err:6 http://dl.google.com/linux/chrome/dev stable Release
404 Not Found [IP: 172.217.169.46 80]
Reading package lists… Done
E: The repository ‘http://dl.google.com/linux/chrome/dev stable Release’ does not have a Release file.
N: Updating from such a repository can’t be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
The IP address changes occasionally, which I assume is just different mirrors.
Any suggestions or obvious fixes?
Thanks for reporting this. The 404 error shows your repository configuration points to
http://dl.google.com/linux/chrome/devinstead of the correct pathhttp://dl.google.com/linux/chrome/deb/. Notice the difference:chrome/dev(incorrect) versuschrome/deb/(correct).Remove the incorrect repository file:
Then re-add the repository using the correct URL from the Import Google Chrome APT Repository section:
Update your package lists and Chrome should install successfully:
OK thx – still not working but will investigate further.
Hi Arnfinn,
Actually, maybe just run the ping command like:
ping dl.google.com
Also, you did install the initially required packages?
sudo apt install curl software-properties-common apt-transport-https ca-certificates -y
Re-tested using a VPN connection, works fine, it will be something minor i suspect.
Hope it works out.
Trying now and get:
curl -fSsL https://dl.google.com/linux/linux_signing_key.pub | gpg –dearmor | sudo tee /usr/share/keyrings/google-chrome.gpg > /dev/null
curl: (6) Could not resolve host: dl.google.com
gpg: no valid OpenPGP data found.
Thanks for reporting this. The
curl: (6) Could not resolve hosterror indicates your system cannot resolve dl.google.com through DNS. The GPG error follows because curl received no data to process.First, verify your network connection works and test DNS resolution with nslookup:
If nslookup fails, your DNS configuration needs attention. Check
/etc/resolv.conffor valid nameservers or temporarily switch to Google’s DNS (8.8.8.8) in your network settings. If you’re behind a corporate firewall or proxy, configure curl to use your proxy with the-xflag or set thehttp_proxyenvironment variable.Once DNS resolution works, retry the curl command from the guide. Let me know the nslookup output if the issue persists.