+ All Categories
Home > Education > Yum (Linux)

Yum (Linux)

Date post: 15-Jul-2015
Category:
Upload: raghu-nath
View: 217 times
Download: 1 times
Share this document with a friend
38
yum INSTALLING AND REMOVING PACKAGES USING YUM
Transcript

yumINSTALLING AND REMOVING PACKAGES USING YUM

A software package, or simply package, is the collection of scripts, programs, files, and directories required to install and run an application, utility, server, or system software.

A package also includes a list of other packages the package depends on (dependencies). Using software packages makes it easier to install, update, and uninstall software.

A package contains either executable files or source code files. Executable files are precompiled for a specific processor architecture and operating system, whereas source files need to be compiled but will run on a wide range of machines and operating systems.

A PMS, or package management system, is a set of utilities that allow you to install, upgrade,

remove, and search software packages easily and in a consistent manner. It is based on a local

database that holds information about each installed package, including its dependencies and

version information.

PackageKit (www.packagekit.org) is a front end for several PMSs, providing a uniform interface.

Fedora, Kubuntu, and SUSE use PackageKit. The gnome-packagekit package holds graphical tools

designed for the GNOME desktop; each of these tools is named gpk*.

/etc/yum.repos.d

The following example calls yum to install the tcsh shell, which is part of the tcsh package. After yum determines what it needs to do, it asks for confirmation. Reply y if you want to continue or n to quit.

# yum install tcsh

Loaded plugins: langpacks, presto, refresh-packagekit

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package tcsh.i686 0:6.17-15.fc15 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package Arch Version Repository Size

================================================================================

Installing:

tcsh i686 6.17-15.fc15 updates-testing 403 k

Transaction Summary

================================================================================

Install 1 Package(s)

Total download size: 403 k

Installed size: 1.1 M

Is this ok [y/N]: y

Downloading Packages:

Setting up and reading Presto delta metadata

Processing delta metadata

Package(s) data still to download: 403 k

tcsh-6.17-15.fc15.i686.rpm | 403 kB 00:01

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : tcsh-6.17-15.fc15.i686 1/1

Installed:

tcsh.i686 0:6.17-15.fc15

Complete!

Automatically Installs dependencies

The next command installs the ypbind (NIS) package. Because this package depends

on other packages that are not installed (rpcbind and yp-tools), yum lists the package

under Installing for dependencies and installs them automatically. The yum utility

asks for confirmation before installing the packages.

# yum install ypbind

Loaded plugins: langpacks, presto, refresh-packagekit

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package ypbind.i686 3:1.32-5.fc15 will be installed

--> Processing Dependency: yp-tools for package: 3:ypbind-1.32-5.fc15.i686

--> Processing Dependency: rpcbind for package: 3:ypbind-1.32-5.fc15.i686

--> Running transaction check

---> Package rpcbind.i686 0:0.2.0-10.fc15 will be installed

---> Package yp-tools.i686 0:2.12-4.fc15 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package Arch Version Repository Size

================================================================================

Installing:

ypbind i686 3:1.32-5.fc15 fedora 55 k

Installing for dependencies:

rpcbind i686 0.2.0-10.fc15 fedora 47 k

yp-tools i686 2.12-4.fc15 fedora 69 k

Transaction Summary

================================================================================

Install 3 Package(s)

Total download size: 171 k

Installed size: 345 k

Is this ok [y/N]: y

yum remove You can also use yum to remove packages, using a similar syntax. The following

example removes the tcsh package:

# yum remove tcsh

Loaded plugins: langpacks, presto, refresh-packagekit

Setting up Remove Process

Resolving Dependencies

--> Running transaction check

---> Package tcsh.i686 0:6.17-15.fc15 will be erased

--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package Arch Version Repository Size

================================================================================

Removing:

tcsh i686 6.17-15.fc15 @updates-testing 1.1 M

Transaction Summary

================================================================================

Remove 1 Package(s)

Installed size: 1.1 M

Is this ok [y/N]: y

Downloading Packages:

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Erasing : tcsh-6.17-15.fc15.i686 1/1

Removed:

tcsh.i686 0:6.17-15.fc15

Complete!

Automatically

removes

dependencies

When yum removes a package, it also removes packages that are dependent on the

package it is removing. The following example removes ypbind and its dependency,

yp-tools. It does not remove rpcbind because another installed package might

depend on rpcbind.

# yum remove ypbind

Loaded plugins: langpacks, presto, refresh-packagekit

Setting up Remove Process

Resolving Dependencies

--> Running transaction check

---> Package ypbind.i686 3:1.32-5.fc15 will be erased

--> Processing Dependency: ypbind for package: yp-tools-2.12-4.fc15.i686

--> Running transaction check

---> Package yp-tools.i686 0:2.12-4.fc15 will be erased

--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package Arch Version Repository Size

================================================================================

Removing:

ypbind i686 3:1.32-5.fc15 @fedora 91 k

Removing for dependencies:

yp-tools i686 2.12-4.fc15 @fedora 167 k

Transaction Summary

================================================================================

Remove 2 Package(s)

Installed size: 258 k

Is this ok [y/N]: y

Finding the Package That Holds an Application or File You NeedFinding a package with a name that sounds like...

The yum search command (next page) searches package names, descriptions, and summaries.

The yum list command (next page) searches package names only.

$ yum whatprovides "*X11/Xlib.h"

Loaded plugins: langpacks, presto, refresh-packagekit

...

libX11-devel-1.4.2-1.fc15.i686 : Development files for libX11

Repo : fedora

Matched from:

Filename : /usr/include/X11/Xlib.h

The most likely candidate is the entry shown in the preceding example, which is the

most generic. You can install this package using the following command:

# yum install libX11-devel

yum search The yum search command searches for a string in the package description, summary,

and name fields. The following example searches for packages that have the string

vim in these fields:

$ yum search vim

Loaded plugins: langpacks, presto, refresh-packagekit

updates-testing/pkgtags | 44 kB 00:00

=============================== N/S Matched: vim ===============================

glusterfs-vim.i686 : Vim syntax file

perl-Text-VimColor.noarch : Syntax color text in HTML or XML using Vim

uzbl-vim.i686 : Vim highlighting for uzbl's config

vim-X11.i686 : The VIM version of the vi editor for the X Window System

vim-clustershell.noarch : VIM files for ClusterShell

vim-common.i686 : The common files needed by any version of the VIM editor

The yum list command searches for a package name field that matches a string.

Specify list available without an argument to list all packages that can be installed

from the yum repositories. The following example searches for packages whose

name fields match the string *emacs*:

$ yum list '*emacs*'

Loaded plugins: langpacks, presto, refresh-packagekit

Available Packages

clips-emacs.noarch 6.30.0-0.3.20090722svn.fc15 fedora

coq-emacs.i686 8.2pl1-1.fc12 fedora

crm114-emacs.i686 0-2.14.20100106.fc15 fedora

cvc3-emacs.noarch 2.2-3.fc15 fedora

cvc3-emacs-el.noarch 2.2-3.fc15 fedora

cvc3-xemacs.noarch 2.2-3.fc15 fedora

cvc3-xemacs-el.noarch 2.2-3.fc15 fedora

emacs.i686 1:23.2-17.fc15 fedora

yum: Keeps the System Up-to-DateThis section continues to describe yum. It covers updating installed packages, yum

commands and groups, downloading RPM package files, configuring yum, and

adding a repository specification. Refer to yum.baseurl.org for more information.

Updating PackagesThe yum update command, without additional parameters, updates all installed packages.

# yum update

Loaded plugins: langpacks, presto, refresh-packagekit

Setting up Update Process

Resolving Dependencies

--> Running transaction check

---> Package gnome-games.i686 1:2.91.93-1.fc15 will be updated

---> Package gnome-games.i686 1:2.91.94-0.20110331.1.fc15 will be an update

---> Package xorg-x11-server-Xorg.i686 0:1.10.0-3.fc15 will be updated

---> Package xorg-x11-server-Xorg.i686 0:1.10.0-7.fc15 will be an update

--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package Arch Version Repository Size

================================================================================

Updating:

gnome-games i686 1:2.91.94-0.20110331.1.fc15 updates-testing 2.4 M

xorg-x11-server-Xorg i686 1.10.0-7.fc15 updates-testing 1.4 M

Transaction Summary

================================================================================

Upgrade 2 Package(s)

Total download size: 3.8 M

Is this ok [y/N]: y

Downloading Packages:

Setting up and reading Presto delta metadata

Processing delta metadata

Download delta size: 1.2 M

(1/2): gnome-games-2.91.93-1.fc15_2.91.94-0.20110331.1.f | 341 kB 00:02

(2/2): xorg-x11-server-Xorg-1.10.0-3.fc15_1.10.0-7.fc15. | 870 kB 00:06

Finishing rebuild of rpms, from deltarpms

<delta rebuild> | 3.8 MB 00:02

Presto reduced the update size by 69% (from 3.8 M to 1.2 M).

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Updating : 1:gnome-games-2.91.94-0.20110331.1.fc15.i686 1/4

Updating : xorg-x11-server-Xorg-1.10.0-7.fc15.i686 2/4

Cleanup : 1:gnome-games-2.91.93-1.fc15.i686 3/4

Cleanup : xorg-x11-server-Xorg-1.10.0-3.fc15.i686 4/4

Updated:

gnome-games.i686 1:2.91.94-0.20110331.1.fc15

xorg-x11-server-Xorg.i686 0:1.10.0-7.fc15

Complete!

yum CommandsThis section describes a few commonly used yum commands. The yum man page contains a complete list.

check Reports on problems in the local RPM database.

check-update Lists packages that are installed on the local system and have updates available in the yum repositories.

clean all Removes header files that yum uses for resolving dependencies. Also removes cached packages. However, because yum removes packages after they have been installed, typically no cached packages exist

clean metadata Removes the files yum uses to determine remote package availability. Using this command forces yum to download all metadata the next time you run it.

grouplist Lists yum groups (next).

groupinfo group Lists information about the yum group named group (next).

groupinstall group Installs the packages in the yum group named group (next).

info word Displays information about packages in the yum repositories named word. Specify

word as "*word*" to search for word anywhere in the package name.

list word Lists packages in the yum repositories whose name is word. Specify word as

"*word*" to search for word anywhere in the package name. See page 538 for an

example.

list available Lists all packages that can be installed from the yum repositories. Use a pipe and

grep to search for packages (e.g., yum list available | grep samba).

provides Same as whatprovides.

search word Lists packages in the yum repositories that have word in their descriptions, summaries,

or names. See page 538 for an example.

whatprovides word

Searches repositories and displays a list of packages that provides a feature or file

that matches word. Specify word as "*word*"

yum GroupsIn addition to working with single packages, yum can work with groups of packages.

The next example shows how to display a list of installed and available groups:

$ yum grouplist

Loaded plugins: langpacks, presto, refresh-packagekit

Setting up Group Process

Installed Groups:

Administration Tools

Dial-up Networking Support Fonts

GNOME Desktop Environment

...

Window Managers

X Window System

Installed Language Groups:

Arabic Support [ar]

Armenian Support [hy]

Available Groups:

...

MySQL Database

...

Done

The command yum groupinfo followed by the name of a group displays information

about the group, including a description of the group and a list of mandatory,

default, and optional packages. The next example displays information

about the MySQL Database group of packages. You must quote group names

that include SPACEs.

# yum groupinfo "MySQL Database"

Loaded plugins: langpacks, presto, refresh-packagekit

Setting up Group Process

Group: MySQL Database

Description: This package group contains packages useful for use with MySQL.

Mandatory Packages:

mysql

Default Packages:

MySQL-python

libdbi-dbd-mysql

mysql-connector-odbc

mysql-server

perl-DBD-MySQL

unixODBC

Optional Packages:

mod_auth_mysql

mysql-bench

mysql-devel

mysqlreport

mysqltuner

php-mysql

qt-mysql

qt3-MySQL

Downloading RPM Package Files with yumdownloaderThe yumdownloader utility (yum-utils package) locates and downloads—but does

not install—RPM files. Because it does not install software, you do not need to

work with root privileges to run it; you need only permission to write to the

working directory

The following example downloads the samba RPM file to the working directory:

$ yumdownloader samba

Loaded plugins: langpacks, presto, refresh-packagekit

samba-3.6.0-64pre1.fc15.1.i686.rpm | 4.5 MB 00:04

Downloading

source files

You can use yumdownloader with the ––source option to download RPM source

package files. The yumdownloader utility automatically enables the necessary source

repositories. See page 586 for an example that downloads in the working directory

the RPM file for the latest version of the kernel source code for the release installed

on the local system. Without the ––source option, yumdownloader would have

downloaded an executable RPM file. See page 551 for information on installing this

type of file.

yum.conf: Configures yum

You do not need to configure yum: As installed, it is ready to use. This section

describes the yum configuration files for users who want to modify them. The primary

configuration file, /etc/yum.conf, holds global settings. As distributed with

Fedora/RHEL, files in the /etc/yum.repos.d directory define repositories. Following

is the default yum.conf file:

$ cat /etc/yum.conf

[main]

cachedir=/var/cache/yum/$basearch/$releasever

keepcache=0

debuglevel=2

logfile=/var/log/yum.log

exactarch=1

obsoletes=1

gpgcheck=1

plugins=1

installonly_limit=3

color=never

...

# PUT YOUR REPOS HERE OR IN separate files named file.repo

# in /etc/yum.repos.d

The section labeled [main] defines global configuration options. The cachedir specifies

the directory where yum stores downloaded packages, although with keepcache

set to 0, yum does not store these packages after installing them. The amount of

information logged is specified by debuglevel, with a value of 10 producing the

most information. The logfile specifies where yum keeps its log.

Setting exactarch to 1 causes yum to update packages only with packages of the

same architecture, thereby preventing an i686 package from replacing an i386

package, for example. You can use retries to specify the number of times yum will

try to retrieve a file before returning an error (the default is 6). Set this parameter to

0 to cause yum to continue trying forever.

yum RepositoriesAs noted in /etc/yum.conf, Fedora/RHEL stores information about each repository

in a separate file in the /etc/yum.repos.d directory:

$ ls /etc/yum.repos.d

fedora.repo fedora-updates.repo fedora-updates-testing.repo

The next example shows part of the fedora.repo file that specifies the parameters

for the fedora repository:

$ cat /etc/yum.repos.d/fedora.repo

[fedora]

name=Fedora $releasever - $basearch

failovermethod=priority

#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch

enabled=1

#metadata_expire=7d

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch


Recommended