Google publishes an official dnf repository for Chrome, and the same two paths work identically across the whole family: add the repo and install with dnf, or download the standalone RPM and let it wire up the repo for you. Red Hat does not carry Chrome in BaseOS or AppStream, so to install Google Chrome on RHEL, Rocky Linux, AlmaLinux or CentOS Stream you take one of these two routes.
This guide covers both methods, launching the browser on GNOME, running Chrome headless on a server with no desktop, the Beta, Unstable and Canary release channels, and how updates flow through dnf afterwards. Everything below was run on Rocky Linux 10.1 and Rocky Linux 9.7 with SELinux enforcing in August 2026, with Chrome 151 as the current stable release. If you are on Fedora instead, the Fedora install steps use the same repo with a Fedora-specific shortcut.
Install Google Chrome from the dnf Repository
The repo method is the one to use on any machine you plan to keep. Create the repo definition:
sudo vim /etc/yum.repos.d/google-chrome.repo
Add the following content:
[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
Then install the stable channel. dnf will ask to import Google’s signing key from the gpgkey URL on this first transaction; accept it:
sudo dnf install google-chrome-stable
On a minimal install the dependency pull is bigger than the browser itself. Chrome is a 137 M download, but dnf resolves the full desktop font and portal stack behind it, 162 packages and about 260 M on our test system:
Installing:
google-chrome-stable x86_64 151.0.7922.137-1 google-chrome 137 M
Installing dependencies:
liberation-fonts noarch 1:2.1.5-11.el10 appstream 7.6 k
vulkan-loader x86_64 1.4.328.1-1.el10 appstream 161 k
xdg-desktop-portal x86_64 1.20.0-2.el10 appstream 532 k
xdg-utils noarch 1.2.0-4.el10 appstream 84 k
...
Install 162 Packages
Total download size: 260 M
Installed size: 922 M
Confirm the installed version:
google-chrome-stable --version
The binary reports the release it shipped with:
Google Chrome 151.0.7922.137
The whole sequence on the test box, from install to the repo showing up in dnf:

Install Chrome from the RPM Package
The second path downloads a standalone RPM from the official Chrome download page. The URL uses current in the filename, so it always fetches the latest stable build with no version to look up. One catch on minimal installs: wget is not there by default, and curl is, so use curl:
curl -LO https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
Install it with dnf, which resolves the same dependency set from AppStream:
sudo dnf install ./google-chrome-stable_current_x86_64.rpm
A signing detail that catches people out: dnf does not GPG-verify a local RPM file by default (localpkg_gpgcheck is off on the RHEL family), so this install completes without a key prompt. Google’s signing key is imported the first time a transaction runs through the google-chrome repo, which the package sets up for you (next section). After that first repo transaction, the key sits in the rpm keyring:
rpm -q gpg-pubkey --qf "%{NAME}-%{VERSION} %{SUMMARY}\n" | grep -i google
The key that signs every Chrome build shows up as:
gpg-pubkey-d38b4796 Google Inc. (Linux Packages Signing Authority) <[email protected]> public key
Here is the part most guides miss: the RPM route does not leave you with an orphaned package. The package ships a script in /etc/cron.daily/google-chrome that creates /etc/yum.repos.d/google-chrome.repo on its first run, because the rpm database is locked during the install itself. The behavior is controlled by repo_add_once="true" in /etc/default/google-chrome. The generated repo file is byte-identical to the manual one above, so either way the browser updates through dnf from then on. This matters on Debian-family systems too, where the .deb does the same trick with an apt source; the Debian install, Ubuntu install and Linux Mint install guides cover that side.
Launch Google Chrome
On a GNOME desktop, press the Super key, type chrome and hit Enter. This is Chrome running on our Rocky Linux test desktop:

From a terminal, either of these works:
google-chrome-stable
The shorter google-chrome command is an alternatives symlink pointing at the stable binary with priority 200, which you can confirm:
alternatives --display google-chrome
The symlink chain resolves to the stable channel:
google-chrome - status is auto.
link currently points to /usr/bin/google-chrome-stable
/usr/bin/google-chrome-stable - priority 200
Current `best' version is /usr/bin/google-chrome-stable.
Chrome also runs on servers with no desktop at all. Headless mode is what powers PDF generation, screenshot services and scraping jobs, and it works under SELinux enforcing with no policy changes:
google-chrome-stable --headless --disable-gpu --dump-dom https://example.com
We checked ausearch -m avc after the run. Zero denials, so no setsebool or custom policy work is needed for headless use.
Install Chrome Beta, Unstable or Canary
The same repo now serves all four release channels, including Canary, which for years was Windows and macOS only. These are the builds it offered on our test date:
| Channel | Package | Version offered (August 2026) | Install path |
|---|---|---|---|
| Stable | google-chrome-stable | 151.0.7922.137 | /opt/google/chrome |
| Beta | google-chrome-beta | 152.0.7977.42 | /opt/google/chrome-beta |
| Unstable (Dev) | google-chrome-unstable | 153.0.8003.0 | /opt/google/chrome-unstable |
| Canary | google-chrome-canary | 153.0.8009.0 | /opt/google/chrome-canary |
The channels are separate packages with separate profiles, so they install side by side without touching your stable browser:
sudo dnf install google-chrome-beta
We verified the coexistence on the test system. Query both binaries:
google-chrome-beta --version && google-chrome-stable --version
Each channel answers with its own release:
Google Chrome 152.0.7977.42 beta
Google Chrome 151.0.7922.137
Track what each channel currently ships on the Chrome Releases blog. Beta is fine as a daily driver. Unstable and Canary are for testing upcoming rendering or extension changes, not for anything you rely on. If you are weighing Chromium-family options more broadly, the Edge vs Chrome comparison breaks down where they differ on Linux.
Keep Chrome Updated
Because both install methods end with the google-chrome repo enabled, Chrome upgrades ride along with normal system updates. Nothing extra to configure:
sudo dnf upgrade google-chrome-stable
A plain sudo dnf upgrade picks it up too. To remove the browser, uninstall the package and drop the repo file so dnf stops checking it:
sudo dnf remove google-chrome-stable
sudo rm -f /etc/yum.repos.d/google-chrome.repo /etc/default/google-chrome
That covers the full lifecycle on the RHEL family: repo or RPM to install, dnf for updates, one package per channel if you want the preview builds. The repo method plus dnf upgrade is the setup that needs zero attention afterwards.