How to Install Google Chrome on Rocky Linux 10, 9 and 8

Last updated Saturday, May 16, 2026 9:48 am Joshua James 9 min read

Google Chrome is not part of Rocky Linux’s default repositories, so the clean install path is Google’s own RPM package or the Flathub wrapper. To install Google Chrome on Rocky Linux, use the RPM method when you want Google’s package source, all browser channels, and updates through DNF; keep Flatpak for desktops already managed through Flathub.

The RPM path supports stable, beta, dev, and canary builds on x86_64 systems. Flathub currently provides stable and dev (unstable) builds only, and its listing is a wrapper rather than the Google-hosted RPM package.

Install Google Chrome on Rocky Linux

Choose the source that matches how you want Chrome delivered and updated. The Google RPM package is the default recommendation for most Rocky desktops because it creates a normal DNF repository after the first install.

MethodSourceRelease ChannelsUpdatesBest Fit
Google RPM packageGoogle Chrome download pageStable, beta, dev, canaryThrough dnf upgradeDNF-managed install with Google’s RPM source
Flatpak from FlathubFlathub stable appStable and dev (unstable)Through flatpak updateUsers who already manage desktop apps with Flatpak and accept Flathub wrapper packaging

These steps apply to Rocky Linux 10, 9, and 8 on x86_64 systems. The Google RPM and Flathub Chrome builds checked for this workflow are x86_64 only; ARM or aarch64 Rocky systems need a different browser source. Rocky Linux 10 can also print Google key policy warnings and may need a manual GNOME icon refresh, both covered in troubleshooting.

Install Google Chrome from Google’s RPM Repository

Google’s direct RPM is the simplest Rocky Linux path. It installs the selected Chrome channel and writes the Google repository file so later browser updates arrive through DNF.

Update Rocky Linux Before Installing Chrome

Refresh repository metadata and apply pending package updates before adding Chrome:

sudo dnf upgrade --refresh

The commands that install packages or write files under /etc use sudo. If your account cannot run sudo commands, switch to an administrator account before continuing.

If DNF downloads feel unusually slow, the Rocky Linux DNF speed guide covers parallel downloads and mirror selection.

Import Google’s Linux Signing Key

Download and import the Google Linux package signing key. The curl command fetches the current public key file, and RPM stores it in the local RPM database:

curl -O https://dl.google.com/linux/linux_signing_key.pub
sudo rpm --import linux_signing_key.pub
rm -f linux_signing_key.pub

A successful import is usually quiet. Confirm the active Google key ID, d38b4796, is present:

rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\n' | grep -i d38b4796

A successful check returns a Google key package similar to this:

gpg-pubkey-d38b4796-570c8cd3

Rocky Linux 10 may print policy warnings about expired Google subkeys during the import. The import can still complete successfully:

warning: Certificate 7721F63BD38B4796:
  Subkey 4EB27DB2A3B88B8B is expired: The subkey is not live
  Policy rejects subkey 1397BC53640DB551: Policy rejected non-revocation signature (PrimaryKeyBinding) requiring second pre-image resistance
  Subkey 78BD65473CB3BD13 is expired: The subkey is not live
  Policy rejects subkey 6494C6D6997C215E: Policy rejected non-revocation signature (PrimaryKeyBinding) requiring second pre-image resistance

If the key check returns gpg-pubkey-d38b4796-570c8cd3 afterward, continue with the install. Do not switch Rocky Linux to a weaker system-wide crypto policy for this warning.

Install Google Chrome Stable with DNF

Install the stable channel for daily browsing:

sudo dnf install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

DNF shows the package transaction and asks for confirmation. Review the packages, then type y when the transaction looks correct.

Check the installed browser version:

google-chrome --version

The version number changes as Google publishes browser updates, but the output should start with Google Chrome. Confirm the RPM package is installed with a stable message:

rpm -q google-chrome-stable > /dev/null && echo "google-chrome-stable is installed"
google-chrome-stable is installed

The RPM install creates the Google Chrome repository file for future updates. Inspect the important lines:

grep -E '^\[|^(name|baseurl|enabled|gpgcheck|gpgkey)=' /etc/yum.repos.d/google-chrome.repo
[google-chrome]
name=google-chrome
baseurl=https://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub

Install Google Chrome Beta, Dev, or Canary RPM Channels

Google’s Chrome release channels serve different audiences. Stable is the safest daily browser, beta previews upcoming stable changes, dev is for compatibility testing, and canary is unstable enough that Google recommends it only for narrow testing needs.

ChannelRPM PackageTerminal CommandBest Fit
Stablegoogle-chrome-stablegoogle-chromeDaily browsing and normal desktop use
Betagoogle-chrome-betagoogle-chrome-betaPreviewing upcoming stable changes
Devgoogle-chrome-unstablegoogle-chrome-unstableTesting web compatibility against development builds
Canarygoogle-chrome-canarygoogle-chrome-canaryShort-term testing only, not everyday browsing

If you already created the Google repository, confirm DNF can see the channel packages. The grep command keeps the output focused on Chrome entries:

dnf list --showduplicates --disablerepo='*' --enablerepo=google-chrome google-chrome-stable google-chrome-beta google-chrome-unstable google-chrome-canary | grep '^google-chrome'

Relevant output should list the four package names from the google-chrome repository. Version numbers change as Google publishes new builds:

google-chrome-beta.x86_64       149.0.7827.14-1    google-chrome
google-chrome-canary.x86_64     150.0.7842.0-1     google-chrome
google-chrome-stable.x86_64     148.0.7778.167-1   google-chrome
google-chrome-unstable.x86_64   150.0.7838.0-1     google-chrome

Install only the extra channel you need:

sudo dnf install https://dl.google.com/linux/direct/google-chrome-beta_current_x86_64.rpm
sudo dnf install https://dl.google.com/linux/direct/google-chrome-unstable_current_x86_64.rpm
sudo dnf install https://dl.google.com/linux/direct/google-chrome-canary_current_x86_64.rpm

Each RPM channel installs beside the others and creates its own launcher. Use separate browser profiles if you test risky builds and do not want extensions, sync state, or experimental settings to affect your normal profile.

Create the Google Chrome Repository File Manually

The direct RPM path creates the repository file automatically. For automation or configuration management, write the same repository file yourself before installing a package from it:

printf '%s\n' \
'[google-chrome]' \
'name=google-chrome' \
'baseurl=https://dl.google.com/linux/chrome/rpm/stable/$basearch' \
'enabled=1' \
'gpgcheck=1' \
'gpgkey=https://dl.google.com/linux/linux_signing_key.pub' | sudo tee /etc/yum.repos.d/google-chrome.repo > /dev/null

Refresh only the Google Chrome repository and install the stable package from that source:

sudo dnf makecache --refresh --disablerepo='*' --enablerepo=google-chrome
sudo dnf install google-chrome-stable

Install Google Chrome from Flathub

Flathub publishes Google Chrome stable and Google Chrome dev Flatpak entries for x86_64. Flathub labels these entries as unverified, potentially unsafe wrappers that are not affiliated with or supported by Google, so use the RPM method when you specifically want Google’s own package source. The Chrome Flatpak manifests also grant broad browser permissions, so treat this method as a Flathub packaging choice rather than a stronger isolation boundary.

Enable Flathub for Google Chrome

Install Flatpak if your Rocky desktop does not already include it:

sudo dnf install flatpak

Add Flathub at system scope so all users can access the same remote:

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

Confirm Flathub Chrome App IDs

Confirm the stable and dev app IDs before installing:

flatpak remote-info --arch=x86_64 flathub com.google.Chrome | grep -E '^[[:space:]]*(ID|Ref|Arch|Branch|Runtime):'
flatpak remote-info --arch=x86_64 flathub com.google.ChromeDev | grep -E '^[[:space:]]*(ID|Ref|Arch|Branch|Runtime):'
        ID: com.google.Chrome
       Ref: app/com.google.Chrome/x86_64/stable
      Arch: x86_64
    Branch: stable
   Runtime: org.freedesktop.Platform/x86_64/25.08
        ID: com.google.ChromeDev
       Ref: app/com.google.ChromeDev/x86_64/stable
      Arch: x86_64
    Branch: stable
   Runtime: org.freedesktop.Platform/x86_64/25.08

Install Chrome with Flatpak

Install the stable Flatpak for normal browsing:

sudo flatpak install flathub com.google.Chrome

Install the dev Flatpak only when you need the development channel:

sudo flatpak install flathub com.google.ChromeDev

First-time Flatpak installs can also download shared runtimes. Review the runtime list before confirming so you know what Flatpak is adding to the system.

Verify the installed stable app when the Flatpak transaction completes:

flatpak info com.google.Chrome | grep -E '^[[:space:]]*(ID|Ref|Arch|Branch|Installation|Runtime):'

Launch Google Chrome on Rocky Linux

Chrome needs an active graphical desktop session. The package can install on minimal systems, but the browser still needs GNOME, KDE, Xfce, or another desktop environment to open normally.

Launch RPM-Installed Google Chrome

Use the command that matches the RPM channel you installed:

google-chrome
google-chrome-beta
google-chrome-unstable
google-chrome-canary

The stable RPM also creates /usr/bin/google-chrome. Check where the launcher points if you need to troubleshoot wrapper behavior:

readlink -f /usr/bin/google-chrome
/opt/google/chrome/google-chrome

Launch Flatpak-Installed Google Chrome

Use the Flatpak app ID that matches the installed channel:

flatpak run com.google.Chrome
flatpak run com.google.ChromeDev

Launch Google Chrome from GNOME

In Rocky Linux GNOME, open Activities, search for google chrome, and select the launcher you installed. Stable, beta, dev, and canary RPM channels appear as separate applications when installed side by side.

Compare Google Chrome and Chromium on Rocky Linux

Chromium is the open source browser project behind Chrome, while Google Chrome adds Google’s proprietary browser package, branded sync integration, Widevine DRM support, proprietary media codecs, and Google’s release channels. Choose Chromium when you want an open source browser package; choose Chrome when you need Google account sync, the official Chrome package, or direct testing against Chrome’s stable, beta, dev, or canary builds.

If you prefer Chromium, treat it as a separate browser choice rather than a drop-in replacement for Google’s RPM channels. Package names, codecs, sync behavior, and release cadence differ from Chrome.

Troubleshoot Google Chrome on Rocky Linux

Resolve Google Key Warnings on Rocky Linux 10

If Rocky Linux 10 prints expired-subkey or SHA-1 policy warnings during key import but the d38b4796 key check succeeds, no repair is needed. The warning comes from old subkeys in Google’s public key bundle, while current RPM packages are signed by newer rotated subkeys under the same active primary key.

If the import fails and the key check does not show gpg-pubkey-d38b4796, retry from a local key file with RPM’s import checks relaxed:

curl -O https://dl.google.com/linux/linux_signing_key.pub
sudo rpm --import --nodigest --nosignature linux_signing_key.pub
rm -f linux_signing_key.pub

These flags apply only to the key import attempt. They do not disable package signature checking for future Chrome RPM installs.

Fix Google Chrome Public Key Errors

If DNF stops with Public key is not installed or says the keys for google-chrome are already installed but not correct, refresh Google’s RPM key. First confirm the repository file points to Google’s current key URL:

grep -E '^(gpgcheck|gpgkey)=' /etc/yum.repos.d/google-chrome.repo
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub

Then remove stale Google Linux signing key packages and import the current key again:

curl -O https://dl.google.com/linux/linux_signing_key.pub
mapfile -t google_keys < <(rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\n' | grep -Ei '^gpg-pubkey-(7fac5991|d38b4796)-' || true)

if ((${#google_keys[@]})); then
  sudo rpm -e "${google_keys[@]}"
fi

sudo rpm --import linux_signing_key.pub
rm -f linux_signing_key.pub

Rerun the Chrome install or update command after the key refresh completes. If Rocky Linux 10 prints the expired-subkey warnings again but the d38b4796 key check succeeds, continue with the package transaction.

Fix Missing Google Chrome Icon on Rocky Linux 10

Rocky Linux 10 may show a generic launcher icon for the RPM-installed browser because the Chrome package stores its bundled icons under /opt/google/chrome/ and the default GNOME icon theme may not include a matching hicolor entry.

Install a scalable Chrome icon into the hicolor theme and refresh the cache:

sudo install -d /usr/share/icons/hicolor/scalable/apps
sudo curl -L https://www.google.com/chrome/static/images/chrome-logo.svg -o /usr/share/icons/hicolor/scalable/apps/google-chrome.svg
sudo gtk-update-icon-cache /usr/share/icons/hicolor

Log out and back in after refreshing the icon cache. This workaround is only for Rocky Linux 10 RPM installs; Rocky Linux 9 and 8 installed hicolor Chrome icons during validation, and Flatpak exports its own desktop metadata.

Fix Missing dnf config-manager on Rocky Linux

The config-manager subcommand is needed only if you disable or re-enable the Google repository manually. If DNF reports No such command: config-manager, install the plugin package:

sudo dnf install dnf-plugins-core

Rocky desktop installations often include this package already, while minimal systems may not.

Use Google Chrome on Wayland or XWayland

Rocky Linux 10 GNOME is Wayland-first, and Chrome opens from the normal desktop launcher without requiring a full Xorg session. Legacy X11 compatibility is handled through XWayland when an extension or workflow needs it.

Understand Minimal Install Dependencies

On minimal Rocky systems, Chrome may pull additional fonts, desktop utilities, graphics libraries, or Vulkan/Mesa packages that a full workstation already has. That dependency set is normal for a graphical browser; it does not mean the Google repository enabled unrelated package sources.

Update Google Chrome on Rocky Linux

Update the RPM Version

Chrome installed from Google’s RPM package updates with normal DNF upgrades:

sudo dnf upgrade --refresh

To refresh only the Google repository metadata before checking browser packages, run:

sudo dnf makecache --refresh --disablerepo='*' --enablerepo=google-chrome

To update only the installed stable RPM channel, target that package directly:

sudo dnf upgrade google-chrome-stable

Replace google-chrome-stable with google-chrome-beta, google-chrome-unstable, or google-chrome-canary if you installed a different channel.

Update the Flatpak Version

Update the stable Chrome Flatpak from Flathub:

sudo flatpak update com.google.Chrome

For the dev Flatpak, use the dev app ID:

sudo flatpak update com.google.ChromeDev

To update every system-scope Flatpak app and runtime at once, run:

sudo flatpak update

Remove Google Chrome from Rocky Linux

Remove Google Chrome RPM Packages

Use a guarded removal command so DNF removes only the Chrome RPM channels that are actually installed:

packages=(google-chrome-stable google-chrome-beta google-chrome-unstable google-chrome-canary)
installed=()

for package in "${packages[@]}"; do
  if rpm -q "$package" > /dev/null 2>&1; then
    installed+=("$package")
  fi
done

if ((${#installed[@]})); then
  sudo dnf remove "${installed[@]}"
else
  echo "No Google Chrome RPM packages are installed."
fi

Verify the RPM packages are no longer installed:

for package in google-chrome-stable google-chrome-beta google-chrome-unstable google-chrome-canary; do
  rpm -q "$package" > /dev/null 2>&1 || echo "$package is not installed"
done
google-chrome-stable is not installed
google-chrome-beta is not installed
google-chrome-unstable is not installed
google-chrome-canary is not installed

If you do not plan to install Chrome again, remove the Google repository file and confirm DNF no longer enables it:

sudo rm -f /etc/yum.repos.d/google-chrome.repo
dnf repolist --enabled | grep -E '^google-chrome[[:space:]]' || echo "Google Chrome repository is not enabled"

A full trust cleanup can also remove Google’s imported RPM keys, but only do this after removing every Google repository or package that uses the same keys:

mapfile -t key_packages < <(rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\n' | grep -Ei '^gpg-pubkey-(7fac5991|d38b4796)-' || true)

if ((${#key_packages[@]})); then
  sudo rpm -e "${key_packages[@]}"
else
  echo "Google Chrome signing keys are not installed."
fi

Remove Google Chrome Flatpak Apps

Remove the stable Flatpak when it is installed:

sudo flatpak uninstall com.google.Chrome

Remove the dev Flatpak separately if you installed it:

sudo flatpak uninstall com.google.ChromeDev

Verify that no Chrome Flatpak app IDs remain:

flatpak list --app --columns=application | grep -E '^com\.google\.Chrome(Dev)?$' || echo "No Google Chrome Flatpak apps are installed"
No Google Chrome Flatpak apps are installed

Flatpak may also list unused runtimes after removing Chrome. Review the list before confirming runtime cleanup:

sudo flatpak uninstall --unused

Delete Google Chrome User Data

Package removal leaves browser profiles in your home directory. Remove these paths only when you want to delete local bookmarks, passwords, cookies, extensions, history, and cached files for that Linux account.

The following commands permanently delete local Google Chrome profile data for your user account. Export bookmarks, passwords, or any other data you want to keep before running them.

For RPM installations, check the browser profile and cache directories first:

find "$HOME/.config" "$HOME/.cache" -maxdepth 1 -type d \( -name 'google-chrome' -o -name 'google-chrome-beta' -o -name 'google-chrome-unstable' -o -name 'google-chrome-canary' \) -print 2>/dev/null

If the output lists only Chrome directories you want to erase, remove them:

rm -rf ~/.config/google-chrome ~/.cache/google-chrome
rm -rf ~/.config/google-chrome-beta ~/.cache/google-chrome-beta
rm -rf ~/.config/google-chrome-unstable ~/.cache/google-chrome-unstable
rm -rf ~/.config/google-chrome-canary ~/.cache/google-chrome-canary

For Flatpak installations, check the app sandbox data first:

find "$HOME/.var/app" -maxdepth 1 -type d \( -name 'com.google.Chrome' -o -name 'com.google.ChromeDev' \) -print 2>/dev/null

If the output lists only Chrome Flatpak directories you want to erase, remove them:

rm -rf ~/.var/app/com.google.Chrome
rm -rf ~/.var/app/com.google.ChromeDev

Conclusion

Google Chrome is ready on Rocky Linux with DNF-managed updates from Google’s RPM repository or a separate Flathub wrapper when that packaging model fits your desktop. For another Chromium-based browser, compare Microsoft Edge on Rocky Linux; for development workflows, install Git on Rocky Linux before testing sites across browser channels.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show more of our fresh Linux tutorials in Top Stories and From your sources 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
<blockquote>quote</blockquote> quote block

Got a Question or Feedback?

We read and reply to every comment - let us know how we can help or improve this guide.

Let us know you are human: