Do I need a RHEL subscription to install packages?

Solution 1:

Yes, you have to have an active RHEL subscription to download packages from RHEL's repositories. If your machine has never been subscribed, or the subscription is expired, you will not be able to use any of the repositories provided by RHEL.

Red Hat states, in relevant part:

If you choose to let all your subscriptions expire and have no other active subscriptions in your organization, you retain the right to use the software, but your entire environment will no longer receive any of the subscription benefits, including:

  • The latest certified software versions.
  • Security errata or bug fixes.

And further:

Entering a Red Hat Enterprise Linux 5 subscription number lets the installer:

  • Access the full set of supported packages included with the subscription at install time.

  • Automatically register the system to all Red Hat Network (RHN) channels included with the subscription at install time.

Many other examples can be found...

You can still use third party repositories; however, they often depend on packages in the base repositories provided by RHEL, and thus many packages will fail to install if those dependencies can't be satisfied.

The only way to install base packages without a subscription is to get them off the installation media.

If you're unable or unwilling to purchase a Red Hat subscription, consider migrating to CentOS to avoid the problem.

Solution 2:

An alternative is to add the CentOS repository to your yum configs. CentOS is in large part a derivative of RHEL. As such, most of its packages are compatible with RHEL.

Michael Cutler wrote a guide for installing CentOS packages on RHEL. Briefly:

# find out the release (version) of your RHEL
# ex: 5.0, 6.0, 6.3

lsb_release -r
cat /etc/issue

# create a new yum .repo config file

nano /etc/yum.repos.d/centos.repo

# add the following contents to centos.repo
# change the 6 in baseurl to your RHEL release
# check here for options:

name=CentOS $releasever - $basearch

# save centos.repo and (optional) run this to reset the cache

yum clean all

Similar steps will need to be followed for other third-party repos. Using the CentOS repo is preferable, however, since it will likely contain all the dependencies your packages will need.

Tangentially, if you are getting PYCURL ERROR 22 - "The requested URL returned error: 404", you can remove the outdated third-party repositories by deleting their .repo and related files.

# Ex:

cd /etc/yum.repos.d/
rm rpmforge.repo
rm mirrors-rpmforge
rm mirrors-rpmforge-extras
rm mirrors-rpmforge-testing

Solution 3:

Just make a repo package yourself and keep it on a removable media.

whenever and wherever you need you can use. You can get the packages from the DVD and no need to go and install every RPM you need.