Wednesday 23 October 2013

ELA_24_Package_Management_with_YUM

YUM (Yellowdog Updater, Modified) Package Management:

Yum is an automatic updater and package installer/remover for rpm systems. It automatically computes dependencies and figures out what things should occur to install packages. It makes it easier to maintain groups of machines without having to manually update each one using rpm. Yum has a plugin interface for adding simple features. Yum can also be used from other python programs via its module inteface.

Basic Yum Commands and how to use them

This is not an exhaustive list of all yum commands but it is a list of the basic/common/important ones. For a complete list see the yum man page.
   yum list [available|installed|extras|updates|obsoletes|all|recent] [pkgspec] 
This command lets you list packages in any repository enabled on your system or installed. It also lets you list specific types of packages as well as refine your list with a package specification of any of the package's name, arch, version, release, epoch.
   yum list
By default 'yum list' without any options will list all packages in all the repositories and all the packages installed on your system. Note: 'yum list all' and 'yum list' give the same output.
   yum list available
Lists all the packages available to be installed in any enabled repository on your system.
   yum list installed
This is equivalent to rpm -qa. It lists all the packages installed on the system.
   yum list extras
This command lists any installed package which no longer appears in any of your enabled repositories. Useful for finding packages which linger between upgrades or things installed not from a repo.
   yum list obsoletes
This command lists any obsoleting relationships between any available package and any installed package.
   yum list updates
This command lists any package in an enabled repository which is an update for any installed package.
   yum list recent
This command lists any package added to any enabled repository in the last seven(7) days.
   yum list pkgspec
This command allows you to refine your listing for particular packages.
Examples of pkgspecs:
      yum list zsh 
      yum list joe\* 
      yum list \*.i386 
      yum list dovecot-1.0.15 
   yum install/remove/update
....
   yum check-update
Exactly like yum list updates but returns an exit code of 100 if there are updates available. Handy for shell scripting.
   yum grouplist
   yum groupinfo
   yum groupinstall
   yum groupupdate
   yum groupremove
Please see the YumGroups page on this wiki for information about the above commands.
   yum info
This displays more information about any package installed or available. It takes the same arguments as yum list but it is best run with a specific package name or glob. Example:
     $ yum info yum
     Installed Packages
     Name       : yum
     Arch       : noarch
     Version    : 3.2.20
     Release    : 3.fc10
     Size       : 2.5 M
     Repo       : installed
     Summary    : RPM installer/updater
     URL        : http://yum.baseurl.org/
     License    : GPLv2+
     Description: Yum is a utility that can check for and automatically download and
                : install updated RPM packages. Dependencies are obtained and downloaded
                : automatically prompting the user as necessary.
  yum search
This allows you to search for information from the various metadata available about packages. It can accept multiple arguments. It will output the packages which match the most terms first followed by the next highest number of matches, etc. Specifically yum search looks at the following fields: name, summary, description, url. If you're searching for what package provides a certain command try yum provides instead.
Search example:
$ yum search python rsync ssh

Matched: python, rsync, ssh 

rdiff-backup.i386 : Convenient and transparent local/remote incremental
                  : mirror/backup


Matched: python, rsync

cobbler.noarch : Boot server configurator


Matched: python, ssh

denyhosts.noarch : A script to help thwart ssh server attacks
pexpect.noarch : Pure Python Expect-like module
python-paramiko.noarch : A SSH2 protocol library for python
python-twisted-conch.i386 : Twisted SSHv2 implementation

Matched: rsync, ssh
 
duplicity.i386 : Encrypted bandwidth-efficient backup using rsync algorithm
pssh.noarch : Parallel SSH tools
   yum provides/yum whatprovides
This command searches for which packages provide the requested dependency of file. This also takes wildcards for files. Examples:
$ yum provides MTA
2:postfix-2.5.5-1.fc10.i386 : Postfix Mail Transport Agent
Matched from:
Other       : MTA

exim-4.69-7.fc10.i386 : The exim mail transfer agent
Matched from:
Other       : MTA

sendmail-8.14.3-1.fc10.i386 : A widely used Mail Transport Agent (MTA)
Matched from:
Other       : Provides-match: MTA


$ yum provides \*bin/ls
coreutils-6.12-17.fc10.i386 : The GNU core utilities: a set of tools commonly
                            : used in shell scripts
Matched from:
Filename    : /bin/ls

   yum shell
   yum makecache
Is used to download and make usable all the metadata for the currently enabled yum repos. This is useful if you want to make sure the cache is fully current with all metadata before continuing.
   yum clean
During its normal use yum creates a cache of metadata and packages. This cache can take up a lot of space. The yum clean command allows you to clean up these files. All the files yum clean will act on are normally stored in /var/cache/yum.
Example commands and what they do:
        yum clean packages
This cleans up any cached packages in any enabled repository cache directory.
        yum clean metadata
This cleans up any xml metadata that may have been cached from any enabled repository.
        yum clean dbcache
Yum will create or download some sqlite database files as part of its normal operation. This command clean up the cached copies of those from any enabled repository cache.
        yum clean all
Clean all cached files from any enabled repository. Useful to run from time to time to make sure there is nothing using unnecessary space.
Features:

1. Package Management
2. Auto-Dependency resolution
3. Ability to specify multiple package sources
Tasks:

1. Copy 'Packages' to the local system
2. Run 'createrepo' against '/var/www/html/RHEL6' - creates sub-directory: 'repodata' and various DB files to serve packages to yum clients
a. Confirm that 'createrepo' RPM is installed
b. 'createrepo /var/www/html/RHEL6'
3. Setup first 'yum' client: localhost
a. '/etc/yum.repos.d/hindux.repo'
'[hindux]
name=hindux
baseurl=http://192.168.0.100/RHEL6 '

4. Search and install packages
a. 'rpm -e dos2unix unix2dos'
b. 'yum search unix2dos'
c. 'yum info unix2dos' returns package metadata
d. 'yum install unix2dos'
e. 'yum -y reinstall unix2dos'
f. 'yum history' - returns the yumusage history
g. 'yum -y erase unix2dos dos2unix'
h. 'yum deplist lftp' - dependencies and their providers are returned

5. Test YUM redundancy by enabling/disabling HTTPD(Apache) on both systems and installing/uninstalling packages.

No comments :

Post a Comment