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.
| Method | Source | Release Channels | Updates | Best Fit |
|---|---|---|---|---|
| Google RPM package | Google Chrome download page | Stable, beta, dev, canary | Through dnf upgrade | DNF-managed install with Google’s RPM source |
| Flatpak from Flathub | Flathub stable app | Stable and dev (unstable) | Through flatpak update | Users 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
/etcusesudo. 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.
| Channel | RPM Package | Terminal Command | Best Fit |
|---|---|---|---|
| Stable | google-chrome-stable | google-chrome | Daily browsing and normal desktop use |
| Beta | google-chrome-beta | google-chrome-beta | Previewing upcoming stable changes |
| Dev | google-chrome-unstable | google-chrome-unstable | Testing web compatibility against development builds |
| Canary | google-chrome-canary | google-chrome-canary | Short-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.


Formatting tips for your comment
You can use basic HTML to format your comment. Useful tags currently allowed in published comments:
<code>command</code>command<strong>bold</strong><em>italic</em><blockquote>quote</blockquote>