Thursday, October 27, 2011

RPM (Red hat package manager)

What is RPM? –
           RPM is a powerful Package Manager for Red Hat, Sues and Fedora Linux. It can be used to build, install, query, verify, update, and remove/erase individual software packages. A Package consists of an archive of files, and package information, including name, version, and description:               

Install an RPM Package –
        RPM packages have file naming conventions like foo-2.0-4.i386.rpm, which include the package name (foo), version (2.0), release (4), and architecture (i386). Also notice that RPM understands FTP and HTTP protocols for installing and querying remote RPM files.

rpm –ivh foo-2.0-4.i386.rpm
rpm –i ftp://ftp.redhat.com/pub/redhat/RPMS/foo-1.0-1.i386.rpm
rpm –i http://oss.oracal.com/projects/firewire/dist/files/kernel-2.4.20-18.10.1.i386.rpm

Uninstall an RPM package –
          To uninstall an RPM package, we use the package name foo, not the name of the original package file foo-2.0-4.i386.rpm above.

rpm –e foo

Upgrade an RPM Package –
             To upgrade an RPM package, RPM automatically uninstalls the old version of the foo packages and installs the new package. It is safe to always use rpm –Uvh to install and upgrade packages, since it work fine even when there are no previous version of the packages installed! Also notice the RPM understands FTP and HTTP protocols for upgrading from remote RPM files.

rpm –Uvh foo-1.0-2.i386.rpm
rpm –Uvh ftp://ftp.redhat.com/pub/redhat/RPMS/ foo-1.0-2.i386.rpm
rpm –Uvh http://oss.oracle.com/projects/firewire/dist/files/kernal-2.4.2.18.10.1.i686.rpm

Query all installed Packages –
           Use RPM to print the name of all installed packages installed on your Linux system.

rpm –qa

Query an RPM Package –
             Querying an RPM package will print the package name, version, and release number of the package foo only if it is installed. Use this command to verify that a package is or is not installed on your Linux system.

rpm –q foo

Display Package Information –
            RPM can display package information including the package name, version, and description of the installed program. Use this command to get detailed information about the installed package.

rpm –qi foo

List Files in Installed Package –
         The following command will list all of files in an installed RPM package. It works only when the package is already installed on your Linux system.

rpm –ql foo

Which package owns a file? –
         Use the following command to determine which installed package a particular file belongs to – rpm –gf /usr/bin/mysql
  
For example:

# rpm –qf  /usr/bin/ mysql

Mysql-3.23.52-3


List Files in RPM File –
         Use RPM to query a (possibly) uninstalled RPM file with the use of the “-p” option. You can use the “-p” option to operate on an RPM file without actually installing anything. This command lists all files in an RPM file you have in the current directory. Also note that RPM can query remote files through the FTP and HTTP protocols.

rpm –qpl kernel-2.4.20-18.10.1.i686.rpm
rpm –qpl ftp://ftp.redhat.com/pub/redhat/RPMS/foo-1.0.1.i386.rpm
rpm –qpl http://oss.oracle.com/projects/firewire/dist/files/kernal-2.4.20-18.10.1.i686.rpm

Verify an installed Package –
           Use RPM to list all files that do not pass the verify tests (done on size, MD5 signature, etc)

rpm –verify mysql

Where a file does not pass, the output is listed using the following codes that signify what failed:

S       File size
M      mode (includes permission and file type)
5        MD% sum
L       symlink
D       Device
U       User
G       group
T       mtime

Take for example the following:

# rpm –verify mysql
S.5….T c /etc/my.cnf

This example indicates that file /etc/my.cnf failed on:

File size
MD5 Sum
Modified Time

However, the “c” tells us this is a configuration file so that explains the changes. It should still be looked at to determine what the changes were.

Check an RPM signature Package –
                                        RPM can be used to check the PGP signature of specified packages to ensure its integrity and origin. Always use this command first before installing a new RPM package on your system. Also, GnuPG or Pgp software must be already installed on your system before you can use this command.

rpm –checking foo

No comments:

Post a Comment