Managing Third-Party Repositories on CentOS, Rocky Linux, and AlmaLinux
Modern RHEL-based systems (EL9+) ship with dnf as the package manager. Most additional software you’ll need comes from well-maintained third-party repositories rather than compiling from source. This guide covers the essential ones and how to use them safely.
EPEL (Extra Packages for Enterprise Linux)
EPEL is the go-to third-party repository for RHEL-based systems. It provides development tools, databases, monitoring software, and utility packages not in the base repositories. It’s stable and widely deployed in production.
Install on EL9+ (Rocky Linux 9, AlmaLinux 9, CentOS Stream 9):
sudo dnf install epel-release
On EL8 (if still in your environment):
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Verify it’s active:
dnf repolist
You should see epel and epel-modular in the output.
To disable EPEL temporarily (testing, troubleshooting):
sudo dnf config-manager --set-disabled epel
Reference: EPEL Documentation
CRB (CodeReady Builder)
CRB provides development libraries, debugging symbols, and build tools required for compiling software from source on EL9+. It replaces the older PowerTools repository. Enable it if you’re building packages, need development headers (gcc, make, library headers), or installing software that requires source compilation.
On EL9+:
sudo dnf config-manager --set-enabled crb
On EL8 (legacy equivalent):
sudo dnf config-manager --set-enabled powertools
CRB should remain enabled for development systems—there’s minimal risk to a running server.
Remi Repository (PHP and Web Stack)
Remi maintains current PHP versions (8.2, 8.3, 8.4+) and related web stack software like MariaDB, PostgreSQL, and Redis. Use it when you need newer PHP than what EPEL provides.
Install on EL9:
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
List available PHP module streams:
dnf module list php
Enable and install PHP 8.4:
sudo dnf module enable php:remi-8.4
sudo dnf install php php-cli php-fpm php-mysql php-xml php-pdo
To switch PHP versions on an existing system:
sudo dnf module disable php:remi-8.3
sudo dnf module enable php:remi-8.4
sudo dnf upgrade 'php*'
sudo systemctl restart php-fpm
Always disable the old module stream before enabling a new one—this prevents dependency conflicts.
Reference: Remi Repository
RPM Fusion (Multimedia and Codecs)
RPM Fusion provides FFmpeg, VLC, Handbrake, and properly maintained codec support. It’s the modern replacement for deprecated repositories like Nux Dextop. Install both free and nonfree repos:
sudo dnf install https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-9.noarch.rpm
Install common media tools:
sudo dnf install ffmpeg vlc handbrake libdvdcss
Reference: RPM Fusion
Google Chrome Repository
Google maintains an official RPM repository for Chrome on x86_64 and ARM64.
Add the repository:
sudo tee /etc/yum.repos.d/google-chrome.repo > /dev/null <<'EOF'
[google-chrome]
name=Google Chrome
baseurl=https://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
EOF
Install:
sudo dnf install google-chrome-stable
For ARM64 systems, replace x86_64 with aarch64 in the baseurl. For beta or unstable channels, use https://dl.google.com/linux/chrome/rpm/unstable/x86_64 instead.
Best Practices for Third-Party Repositories
Verify GPG keys before enabling: A compromised repository affects your entire system. Check GPG key fingerprints against official sources:
dnf repoinfo repository-name
Disable unused repositories: Reduce attack surface and improve DNF performance:
sudo dnf config-manager --set-disabled repository-name
Avoid version conflicts: Don’t enable multiple conflicting PHP or database repositories simultaneously. Use DNF modules instead—they provide isolated version streams within a single repository and prevent dependency hell.
Set repository priority if needed: When packages exist in multiple repos, edit /etc/yum.repos.d/ files and add priority=10 to trusted repos. Lower numbers = higher priority.
[epel]
name=Extra Packages for Enterprise Linux
baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch
priority=10
Clean metadata regularly: Stale cache causes installation failures:
sudo dnf clean all
sudo dnf check-update
Use dnf exclusively: On EL9+, dnf is the standard. yum is a deprecated wrapper. All modern documentation and tools assume dnf.
Test in non-production first: Enable new repositories on staging for 1-2 weeks before production. Watch for unexpected dependency changes or broken updates.
Monitor for official package migration: Some third-party packages eventually move to official RHEL repos. Periodically check if software you installed from external sources is now available in EPEL or base repositories.
Repository Selection Strategy
Start with EPEL for most additional packages—it has the highest quality control and widest adoption across RHEL-based systems. Add Remi only for current PHP versions. Use RPM Fusion for multimedia. These three cover 95% of typical server and desktop needs. Always enable CRB on development systems for compilation work.

Another “safe” repository is IUS: https://ius.io/
for me Centos 7 didn’t find this sshfs package as you described but after some searching I was able to install fuse-sshfs using:
rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/Packages/f/fuse-sshfs-2.5-1.el7.x86_64.rpm
You can do this:
1. enable epel repository
2. `yum install fuse-sshfs`
When the epel repository has an updated packages for it, `yum update` will also update for you too.
Hi Eric:
I tried what you suggested:
1. enable epel repository
2. `yum install fuse-sshfs`
But I got err msg:
$ yum install fuse-sshfs
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* epel: mirrors.sonic.net
* nux-dextop: mirror.li.nux.ro
Altinity_clickhouse/x86_64/signature | 833 B 00:00:00
Altinity_clickhouse/x86_64/signature | 1.0 kB 00:00:00 !!!
Altinity_clickhouse-source/signature | 836 B 00:00:00
Altinity_clickhouse-source/signature | 1.0 kB 00:00:00 !!!
Resolving Dependencies
–> Running transaction check
—> Package fuse-sshfs.x86_64 0:2.10-1.el7 will be installed
–> Processing Dependency: fuse >= 2.2 for package: fuse-sshfs-2.10-1.el7.x86_64
–> Processing Dependency: libfuse.so.2(FUSE_2.2)(64bit) for package: fuse-sshfs-2.10-1.el7.x86_64
–> Processing Dependency: libfuse.so.2(FUSE_2.4)(64bit) for package: fuse-sshfs-2.10-1.el7.x86_64
–> Processing Dependency: libfuse.so.2(FUSE_2.5)(64bit) for package: fuse-sshfs-2.10-1.el7.x86_64
–> Processing Dependency: libfuse.so.2(FUSE_2.6)(64bit) for package: fuse-sshfs-2.10-1.el7.x86_64
–> Processing Dependency: libfuse.so.2(FUSE_2.7)(64bit) for package: fuse-sshfs-2.10-1.el7.x86_64
–> Processing Dependency: libfuse.so.2()(64bit) for package: fuse-sshfs-2.10-1.el7.x86_64
–> Finished Dependency Resolution
Error: Package: fuse-sshfs-2.10-1.el7.x86_64 (epel)
Requires: fuse >= 2.2
Error: Package: fuse-sshfs-2.10-1.el7.x86_64 (epel)
Requires: libfuse.so.2(FUSE_2.7)(64bit)
Error: Package: fuse-sshfs-2.10-1.el7.x86_64 (epel)
Requires: libfuse.so.2(FUSE_2.2)(64bit)
Error: Package: fuse-sshfs-2.10-1.el7.x86_64 (epel)
Requires: libfuse.so.2(FUSE_2.4)(64bit)
Error: Package: fuse-sshfs-2.10-1.el7.x86_64 (epel)
Requires: libfuse.so.2(FUSE_2.6)(64bit)
Error: Package: fuse-sshfs-2.10-1.el7.x86_64 (epel)
Requires: libfuse.so.2(FUSE_2.5)(64bit)
Error: Package: fuse-sshfs-2.10-1.el7.x86_64 (epel)
Requires: libfuse.so.2()(64bit)
You could try using –skip-broken to work around the problem
You could try running: rpm -Va –nofiles –nodigest
———-
Any idea how to fix ?
Thanks
Doug
It seems the libfuse is missing. You may try and see what’s the output of running
`# yum install fuse-libs`
BTW I used Centos 7
Trying that I got this:
$ yum install fuse-libs
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* epel: mirrors.sonic.net
* nux-dextop: mirror.li.nux.ro
Altinity_clickhouse/x86_64/signature | 833 B 00:00:00
Altinity_clickhouse/x86_64/signature | 1.0 kB 00:00:00 !!!
Altinity_clickhouse-source/signature | 836 B 00:00:00
Altinity_clickhouse-source/signature | 1.0 kB 00:00:00 !!!
No package fuse-libs available.
Error: Nothing to do
I believe you are following https://www.systutorials.com/241641/how-to-install-sshfs-on-centos-7/ .
But the “ * base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net” parts are missing.
Are the official yum repositories disabled in your system?
Yes, I was following https://www.systutorials.com/241641/how-to-install-sshfs-on-centos-7/
Very likely that the official yum repositories was disabled in my system. Because my system is hosted in an internal lab.
Do you know how I can enable the official yum repositories ?
You may check the configuration files of yum: https://www.systutorials.com/docs/linux/man/5-yum/
We tried this and it works:
1. install fuse-libs from https://centos.pkgs.org/7/centos-x86_64/fuse-libs-2.9.2-11.el7.x86_64.rpm.html
2. install fuse from https://centos.pkgs.org/7/centos-x86_64/fuse-2.9.2-11.el7.x86_64.rpm.html
3. install fuse-sshfs from https://centos.pkgs.org/7/repoforge-x86_64/fuse-sshfs-2.5-1.el7.rf.x86_64.rpm.html
———-
Problem solved, so happy !
Thank you, Eric. Really appreciate your attention.
doug…. it works. thanks