One of the major duties of a system administrator is to manage applications/software on the server. System administrator needs to know how to add and remove or get information about packages. In this post we will learn RPM (Redhat Package Manager) commands to manage software on Redhat Enterprise Linux 6. To pass the RHCSA certification exam this RHCSA objective is must. In this post we will learn:
- What is RPM PACKAGE?
- How to install .rpm package file in Redhat Enterprise Linux 6(RHEL 6)?
- How to remove/erase rpm package in RHEL 6?
- How to query about a package in RHEL 6?
- How to check signature of rpm package?
In RHEL 6 applications/software comes in the form of package. In general package is a container of files. A package includes binary scripts, configuration files and documentation files. A RPM package name usually includes version and architecture. For example openssh-5.3p1-70.el6.x86_64 in this openssh is package name 5.3p1 is version build 70, x86_64 is architecture.
In Redhat Enterprise Linux 6 software packages have their dependent packages. RPM package installation won’t work if there are dependencies. To install a .rpm package use below mentioned command:
# rpm -i package_name
# rpm -U package_name
# rpm -U package_name
The rpm -i option install the package if it is not already installed. The rpm -U option upgrades the package if it is installed or install if already not installed. I will suggest to use -vh option while install/upgrade package this will add verbose mode and hash mark to help monitor the installation process. Also at the time of installation, if some files are to be overwrite, it automatically takes a backup of the original file as .rpmsave extension.
NOTE: Before upgrading any package, take backup of all configuration files related to that package.
EXAMPLE:
In this example we will install gcc package.
# rpm -ivh gcc-4.4.6-3.el6.x86_64.rpm
warning: gcc-4.4.6-3.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
cloog-ppl >= 0.15 is needed by gcc-4.4.6-3.el6.x86_64
cpp = 4.4.6-3.el6 is needed by gcc-4.4.6-3.el6.x86_64
glibc-devel >= 2.2.90-12 is needed by gcc-4.4.6-3.el6.x86_64
warning: gcc-4.4.6-3.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
cloog-ppl >= 0.15 is needed by gcc-4.4.6-3.el6.x86_64
cpp = 4.4.6-3.el6 is needed by gcc-4.4.6-3.el6.x86_64
glibc-devel >= 2.2.90-12 is needed by gcc-4.4.6-3.el6.x86_64
In the above example we can see that there is an error while installing “gcc-4.4.5-6.el6.x86_64.rpm” package and installation got failed. This so due to dependencies, gcc require cpp and libgomp package to install. So we have to install cpp, clog-ppl and glibc-devel package first.
# rpm -ivh cpp-4.4.6-3.el6.x86_64.rpm
warning: cpp-4.4.6-3.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
libmpfr.so.1()(64bit) is needed by cpp-4.4.6-3.el6.x86_64
warning: cpp-4.4.6-3.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
libmpfr.so.1()(64bit) is needed by cpp-4.4.6-3.el6.x86_64
Again package “cpp-4.4.6-3.el6.x86_64.rpm” failed due to dependencies error. In Linux this is called “dependency hell”. To overcome this problem Redhat introduced YUM (Yellow Dog Modifier) which will find and resolve all dependency to install package. We will discuss YUM in some other post.
If a package don’t require any dependency or all dependencies are already installed the package will install.
# rpm -ivh squid-3.1.10-1.el6_1.1.x86_64.rpm
warning: squid-3.1.10-1.el6_1.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
1:squid ########################################### [100%]
warning: squid-3.1.10-1.el6_1.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
1:squid ########################################### [100%]
To remove a package use rpm -e command. Here e stands for erase.
# rpm -e squid
To check .rpm package signature user --checksig option:
# rpm --checksig firefox-3.6.24-3.el6_1.x86_64.rpm
firefox-3.6.24-3.el6_1.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#fd431d51)
firefox-3.6.24-3.el6_1.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#fd431d51)
SOME MORE RPM COMMAND
- rpm -q package_name: This will query if package is installed or not.
# rpm -q firefox
firefox-3.6.24-3.el6_1.x86_64
# rpm -q squid
package squid is not installed
firefox-3.6.24-3.el6_1.x86_64
# rpm -q squid
package squid is not installed
- rpm -qa: List all installed packages.
# rpm -qa
postfix-2.6.6-2.2.el6_1.x86_64
rpcbind-0.2.0-8.el6.x86_64
hpijs-3.10.9-3.el6.x86_64
system-config-printer-libs-1.1.16-22.el6.x86_64
filesystem-2.4.30-3.el6.x86_64
mdadm-3.2.2-9.el6.x86_64
…..
………..
postfix-2.6.6-2.2.el6_1.x86_64
rpcbind-0.2.0-8.el6.x86_64
hpijs-3.10.9-3.el6.x86_64
system-config-printer-libs-1.1.16-22.el6.x86_64
filesystem-2.4.30-3.el6.x86_64
mdadm-3.2.2-9.el6.x86_64
…..
………..
- rpm -ql package_name: List all files from package.
- rpm -qc package_name: List only configuration files from package.
- rpm -qf /path/filename: List packages associated with file.
- rpm -qi package_name: List basic information about the package.
In the next post we will learn more about package management in RHEL 6 using YUM.
If you have any question or query please post comments.
No comments:
Post a Comment