Many developers working with CentOS 8 find themselves needing access to additional packages that aren't available in the default repositories. The PowerTools repository (known as CodeReady Linux Builder in RHEL 8) contains valuable development tools and libraries, but enabling it isn't as straightforward as you might expect.
CentOS 8 uses DNF as its package manager and organizes repositories differently from previous versions. Here's what you need to know about the repository structure:
# List currently enabled repositories
sudo dnf repolist
To enable the PowerTools repository, follow these commands:
# First, check if the repository exists but is disabled
sudo dnf repolist --disabled | grep powertools
# Enable the repository
sudo dnf config-manager --set-enabled powertools
# Verify it's enabled
sudo dnf repolist enabled | grep powertools
Developers often encounter these issues:
# If you get "Error: No matching repo to modify: powertools"
# You might need to install the EPEL repository first:
sudo dnf install epel-release
Once enabled, you can install valuable development tools:
# Example: Installing development headers and libraries
sudo dnf install --enablerepo=powertools gcc-toolset-10
For production systems, consider these additional steps:
# Temporarily enable just for one installation
sudo dnf install --enablerepo=powertools package-name
# Create a local repository mirror for faster access
sudo dnf install createrepo
sudo reposync --repo=powertools -p /path/to/local/mirror
For those using CentOS Stream or other variants:
# For CentOS Stream 8
sudo dnf config-manager --set-enabled powertools-source
Remember that repository names might vary slightly between different CentOS 8 versions and point releases.
The PowerTools repository in CentOS 8 provides additional packages that aren't included in the default BaseOS and AppStream repositories. It's the community equivalent of Red Hat's CodeReady Linux Builder repository in RHEL 8, containing development tools, debuginfo packages, and supplementary software.
Before enabling, verify if PowerTools is already available in your system:
dnf repolist
Or check specifically for PowerTools:
dnf repolist | grep -i powertools
The most straightforward method is using the dnf config-manager
command:
sudo dnf config-manager --set-enabled powertools
If you encounter an error about missing config-manager, install it first:
sudo dnf install -y dnf-plugins-core
For systems where the above doesn't work, manually enable it in the repository file:
sudo sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/CentOS-Linux-PowerTools.repo
Then clear the cache:
sudo dnf clean all
sudo dnf makecache
After enabling, verify the repository is active:
dnf repolist enabled | grep -i powertools
You should see output similar to:
CentOS-Linux-PowerTools PowerTools
Once enabled, you can install packages from PowerTools. For example, to install development tools:
sudo dnf install --enablerepo=powertools gcc-toolset-10
Or to search for available packages:
dnf --disablerepo="*" --enablerepo="powertools" list available
If you encounter "No match for argument" errors:
1. Ensure the repository is properly enabled (see verification above)
2. Update your package metadata:
sudo dnf clean all
sudo dnf makecache
3. Check for typos in package names