CentOS, like Fedora and Redhat, uses the RPM format to manage package (software) installation.  Modern versions of Redhat-based operating systems benefit from the Yum package management tool.  Yum, the “Yellowdog Updater, Modified”, checks and installs package dependencies automatically if available.  First, we’ll get some of the common terminology taken care of, then we’ll discuss package management using Yum, and finally, package management using RPM.

 

Packages

Packages in this case refers to software in the form of RPM bundles.  Packages contain compressed archives with files, documentation, management scripts, and dependency information.

Repositories

Repositories refer to a location containing software packages.  Yum uses repository locations to automatically install the correct package or series of packages.

Dependencies

Dependencies refer to libraries or other pieces of software necessary for any given software to run.  For example, you want to install somepackage-0.123-4.i386.rpm.  In order for this software to install, any software that it needs to run will need to be installed either automatically through Yum or manually using RPMs.

Package Naming Conventions

Proper RPM packages adhere to a standard naming convention.  The name may seem a bit long, but knowing how to identify a package based on it’s naming convention helps considerably when trying to find the correct software.  Packages are usually referred to using either

package name (example, somepackage)

package name with version and relase (example, somepackage-0.123-4

package name with CPU architecture (example, somepackage.i386)

Yum lists packages as package-name.arch.  We generally only support the i386 and x86_64 architectures at Superb, i386 being suitable for all Intel-compatible processors, and x86_64 compatible with any 64-bit capable AMD or Intel processor.  You may also see some packages listed as i586 or i686 architecture, these refer to packages compiled with additional support for processor-sepcific CPU extensions.

 

Managing packages in CentOS using Yum

To install software using the Yum package manager you should be either logged in as root or as a user with sudo access.  If, for example, you are ‘admin2’ and have sudo access, you would install ‘somepackage-0.123-4.i386.rpm’ by using the following command:


sudo yum install somepackage

if you were logged in as root, you the ‘sudo’ command is not necessary.  Notice it isn’t necessary to use the full package name.  Yum checks your system architecture and it’s repository list to determine the best package to install.  If you already have a version of somepackage installed but would like to update it, you would use


sudo yum update somepackage

 

To update all software on the server, you would type

 

sudo yum update

You may also allow CentOS to check for system updates daily.  To set this automated feature, you would type

 

sudo chkconfig –level 345 yum on; service yum start

 

Conversely, you may remove software from CentOS using yum


sudo yum remove somepackage

 

Generally speaking, these will be the most common commands you would need to use to manage packages in CentOS.  When you get a server with CentOS installed, the default repositories are already added.  In the event that you must install an RPM package outside of the yum package manager, here are a few common commands to employ.  Let’s say you need to install somepackage-0.123-4.i386.rpm but the package isn’t available through any of your Yum repositories.  You’ve found the package and the CPU architecture matches, you’ve saved the rpm file to your server, and you would like to install it.  Navigate to the folder with the rpm package and type

 

sudo rpm -ivh somepackage-0.123-4.i386.rpm

 

if you are logged in as root you may omit the ‘sudo’ command.  To break down what’s being done, the -ivh flag after rpm tells RPM to install, verbosely, with hashmarks.  This means it will install the software, print to screen any messages, and will show a progress bar using the # symbol.  If you had, for example, somepackage-0.111-3.i386.rpm installed already and would like to update it, you would use


sudo rpm -Uvh somepackage-0.123-4.i386.rpm

 

Here, the -Uvh tells RPM to update, verbosely, and with hashmarks.  If you have the package installed and you would like to remove it, you would use

 

sudo -e somepackage-0.123-4.i386.rpm

 

You cannot remove a package that meets another installed package’s dependencies.  If you attempt to remove a package and are unsuccessful due to this, you may type

 

rpm -q –whatrequires somepackage-0.123-4.i386.rpm

 

There are quite a few additional aspects to both Yum and RPM package management, but these are the most common.  If you require more information on Yum or RPM, please visit the web addresses as follows:

 

http://www.rpm.org

 

http://CentOSproject.org/wiki/Tools/yum