Préparation LPI: RPM et YUM

Linux Package Management using RPM and YUM · lab

Préparation LPI

Exam 102

102.5. RPM et YUM

Document sous licence Creative commons « by­nc­sa » http://creativecommons.org/licenses/by­nc­sa/2.0/fr/

Sommaire

RPM

rpm

rpm2cpio

rpmbuild

YUM

yum

yumdownloader

UPMC - FP – Préparation LPI - v 1.1

2

102.5 Domaines de connaissances

Poids : 3

Installer, ré­installer, mettre à jour et supprimer des

paquetages en utilisant la commande rpm et yum

Obtenir des informations sur les paquetages rpm : version,

état, dépendances, intégrité, signature

Déterminer ce qu'un paquetage fournis comme fichiers

Déterminer de quel paquetage provient un fichier

UPMC - FP – Préparation LPI - v 1.1

3

102.5 RPM

RPM ( Red Hat Package Manager)

Avantages :

Installation à partir de la ligne de commande...mais avec

une commande à lancer cette fois !

Les paquetages récupérés auprès de l'éditeur de la

distribution ou depuis d'autres sources sont censés

fonctionner sans problème

Outre l'installation, l'utilitaire rpm fournit également :

● La vérification

● La mise à jour

● La désintallation

● L'interrogation

● La genération

UPMC - FP – Préparation LPI - v 1.1

4

102.5 RPM

RPM sous GPL

Utilisé avec Mandriva (associé à urpmi)

Associé avec l'utilitaire yum

Associé avec l'utilitaire pirut

Compatibilité CPU

X86

X86_64

IA64

Alpha

Sparc

UPMC - FP – Préparation LPI - v 1.1

5

102.5 RPM

Nommage des paquets : nom­paquet­x.y.z­i.arch.rpm

x.y.z : n° de version du paquet

i : build|release number. Indique une modification faite

par le mainteneur du paquet indépendante de la version

réelle de l'application

arch

● i386 : 32 bits

● i586|i686 : optimisation Pentium

● ppc : PowerPC

● x86_64 : 64 bits

● noarch : indépendant de l'architecture

UPMC - FP – Préparation LPI - v 1.1

6

102.5 RPM

rpm [operation][options] [nom­fichier­rpm|

nom­paquet]

Installation en ligne de commande à partir d'un paquetage

récupéré

1) Récupérer (par ftp ou http) le paquetage en prenant soin

qu'il corresponde bien à la version de votre distribution.

Ex : foo­1.0­1.i386.rpm

2) Lancer la commande

rpm ­ivh foo­1.0­1.i386.rpm

3) C'est tout...ou presque !

En cas de dépendance, rpm vous avertit des paquetages

manquant. Les récupérer et les ajouter à la suite de la

commande précédente.

UPMC - FP – Préparation LPI - v 1.1

7

102.5 RPM

Pour exécuter l'application installée

Un lanceur a été ajouté automatiquement au menu

“Applications”.

Sinon, le lancer à partir de la ligne de commande (Astuce :

utiliser dans ce cas rpm pour lister la localisation des fichiers

composant le paquetage et retrouver celle de l'exécutable)

Les types d'opérations et les options associées sont spécifiés

traditionnellement par des options ajoutées à la commande rpm

UPMC - FP – Préparation LPI - v 1.1

8

102.5 RPM

Types d'opérations les plus courantes

­i : installe un paquet s'il n'existe pas déjà

­U : installe un paquet s'il n'existe pas déjà ou tente de la

mettre à jour en désinstallant les anciennes versions

­F : mise à jour si un paquet de version inférieure existe

­q : interrogation des paquets

­V : vérification du paquet

­e : désintallation du paquet

­b : construction d'un paquet

­­rebuilddb : recontruction de la base de données RPM si

endommagée

UPMC - FP – Préparation LPI - v 1.1

9

102.5 RPM

Options courantes d'installation et de mise à jour

­h : affiche le carctère # comme curseur de progression

d'exécution de la commande

­v : mode verbeux

­­force : force l'installation du paquet même si cela remplace

des paquets existants, des fichiers existants, des paquets

existants et plus récents

­­nodeps : ne fait pas la vérification des dépendances

­­oldpackage : permet lors d'un upgrade de remplacer un

paquet récent par un plus ancien

UPMC - FP – Préparation LPI - v 1.1

10

102.5 RPM

Options courantes d'interrogation

­a : interroge ou vérifie tous les paquets

­f FICHIER: interroge ou vérifie le paquet qui contient

FICHIER

­p PAQUET : interroge le paquet (non installé) PAQUET

­i : affiche les informations détaillées qur le paquet

­l : liste les fichiers du paquet

­s : associé à ­l, affiche l'état du paquet (normal, non installé

ou remplacé)

­R : liste les dépendances d'un paquet

UPMC - FP – Préparation LPI - v 1.1

11

Options d'interrogation

102.5 RPM

rpm -q nom-paquet : recherche un paquet nommé

nom-paquet

rpm -qi nom-paquet : affiche les informations du

paquet

rpm -qf nom-fichier : affiche le paquet contenant

Publicité

nom-ficher

rpm -ql nom-paquet : liste les fichiers contenus dans

le paquet

rpm -qlp nom-fichier-rpm : liste les fichiers

contenus dans le fichier rpm nom-fichier-rpm

UPMC - FP – Préparation LPI - v 1.1

12

Options d'interrogation ...

102.5 RPM

rpm -qc nom-paquet : (ou ­­changelog) affiche

uniquement les fichiers de configuration de nom-paquet

rpm -qd nom-paquet : affiche uniquement les

fichiers de documentation de nom-paquet

rpm -q --changelog nom-paquet : affiche

uniquement le changelog de  nom-paquet

rpm -qp --changelog nom-paquet.rpm : affiche

uniquement le changelog de  nom-paquet.rpm

rpm -qa [chaine*] : affiche les liste des paquets

(tous si pas de critèere de recherche ou commençant par

chaine)

rpm -qv nom-paquet : affiche les liste des paquets

en mode verbeux (mais pas plus d'info que sans ­v)

UPMC - FP – Préparation LPI - v 1.1

13

102.5 RPM

Options courantes de vérification

­V (­­verify): compare les informations entre les fichiers

réeelemnt installés et les informations collectées dans l'en­

tête du paquet située dans la base de données RPM

UPMC - FP – Préparation LPI - v 1.1

14

102.5 RPM

[franck@localhost ~]$ rpm ­q lyx

lyx­1.5.4­1.fc8

[franck@localhost ~]$ rpm ­qi lyx

Name        : lyx                          Relocations: (not relocatable)

Version     : 1.5.4                             Vendor: Fedora Project

Release     : 1.fc8                         Build Date: mar 26 fév 2008 21:41:08 CET

Install Date: ven 18 avr 2008 10:01:30 CEST      Build Host: hammer2.fedora.redhat.com

Group       : Applications/Publishing       Source RPM: lyx­1.5.4­1.fc8.src.rpm

Size        : 33966503                         License: GPLv2+

Signature   : DSA/SHA1, jeu 13 mar 2008 02:13:33 CET, Key ID b44269d04f2a6fd2

Packager    : Fedora Project

URL         : http://www.lyx.org/

Summary     : WYSIWYM (What You See Is What You Mean) document processor

Description :

LyX is a modern approach to writing documents which breaks with the

obsolete "typewriter paradigm" of most other document preparation

systems.

...

UPMC - FP – Préparation LPI - v 1.1

15

102.5 RPM

[franck@localhost ~]$ rpm ­qf /bin/vi

vim­minimal­7.1.245­1.fc8

[franck@localhost ~]$ rpm ­ql lyx

/usr/bin/lyx

/usr/bin/lyxclient

/usr/bin/tex2lyx

/usr/share/applications/lyx.desktop

...

[franck@localhost ~]$ rpm ­qlp /tmp/bittorrent­4.4.0­1.fc8.rf.noarch.rpm

/usr/bin/bittorrent­console

/usr/bin/bittorrent­curses

/usr/bin/bittorrent­tracker

/usr/bin/changetracker­console

/usr/bin/launchmany­console

/usr/bin/launchmany­curses

/usr/bin/maketorrent

/usr/bin/maketorrent­console

/usr/bin/torrentinfo­console

UPMC - FP – Préparation LPI - v 1.1

16

102.5 RPM

D'autres utilisations de la commande rpm :

Désinstallation

Ex : rpm -e nom-paquet

Pour la désinstallation, on fournit le nom du paquet et pas le

nom du fichier rpm

rpm ­U arkeia­7.0.3­1.i386.rpm

attention: /opt/arkeia/arkboot/arkboot.cf créé en tant que /opt/arkeia/arkboot/arkboot.cf.rpmnew

arkeiad is already running. Stopping it ...

arkeiad is starting ...

You have new mail in /var/spool/mail/root

rpm ­e arkeia­7.0.3­1.i386.rpm

erreur: le paquetage arkeia­7.0.3­1.i386.rpm n'est pas installé

rpm ­e arkeia­7.0.3­1.i386

arkeiad successfully stopped

attention: /opt/arkeia/arkboot/arkboot.cf sauvé en tant que /opt/arkeia/arkboot/arkboot.cf.rpmsave

UPMC - FP – Préparation LPI - v 1.1

17

102.5 RPM

[root@localhost tmp]# rpm ­ivh iozone­3.283­1.fc8.rf.i386.rpm

Préparation...              ########################################### [100%]

1:iozone                 ########################################### [100%]

[root@localhost tmp]# rpm ­q iozone­3.283­1.fc8.rf.i386

iozone­3.283­1.fc8.rf

[root@localhost tmp]# rpm ­qp iozone­3.283­1.fc8.rf.i386.rpm

iozone­3.283­1.fc8.rf

[root@localhost tmp]# rpm ­qlp iozone­3.283­1.fc8.rf.i386.rpm

/usr/bin/iozone

/usr/share/doc/iozone­3.283

/usr/share/doc/iozone­3.283/Gnuplot.txt

/usr/share/doc/iozone­3.283/IOzone_msword_98.pdf

/usr/share/doc/iozone­3.283/Iozone_ps.gz

/usr/share/iozone

/usr/share/iozone/Generate_Graphs

/usr/share/iozone/gengnuplot.sh

/usr/share/iozone/gnu3d.dem

/usr/share/man/man1/iozone.1.gz

UPMC - FP – Préparation LPI - v 1.1

18

102.5 RPM

[root@localhost tmp]# rpm ­e iozone­3.283­1.fc8.rf.i386.rpm

erreur: le paquetage iozone­3.283­1.fc8.rf.i386.rpm n'est pas

installé

[root@localhost tmp]# rpm ­e iozone­3.283­1.fc8.rf.i386

UPMC - FP – Préparation LPI - v 1.1

19

102.5 rpm2cpio

rpm2cpio

Permet d'extraire un paquetage rpm en archive cpio

Envoie le résultat de l'extraction sur stdout

Possibilité ensuite d'utiliser la commande cpio pour extraire des

fichiers de l'archive

UPMC - FP – Préparation LPI - v 1.1

20

102.5 rpm2cpio

mkdir arkeia

rpm2cpio arkeia­6.0.22­1.i386.rpm > arkeia/arkeia­6.0.22­1.i386.rpm.cpio

cd arkeia

cpio ­i ­d < arkeia­6.0.22­1.i386.rpm.cpio

103116 blocks

ls ­l

total 51628

­rw­r­­r­­   1 root root 52795380 mar  3 22:04 arkeia­6.0.22­1.i386.rpm.cpio

drwx­­­­­­  11 root root     4096 mar  3 22:04 etc

drwx­­­­­­   3 root root     4096 mar  3 22:04 opt

drwx­­­­­­   3 root root     4096 mar  3 22:04 usr

UPMC - FP – Préparation LPI - v 1.1

21

Publicité

102.5 Yum

YUM http://yum.baseurl.org/

Gestionnaire de paquetage RPM développé à la Duke University

Recherche des paquets dans plusieurs dépôts

Utilisation de dépôts sur le réseau ou « locaux » pour héberger

les applications métiers

Détection et installation des dépendances

Interface simple en ligne de commande

Front­end graphiques (pirut, yumex,...)

Remplace up2date sur RHEL/Centos

UPMC - FP – Préparation LPI - v 1.1

22

102.5 Yum

Définition des sources (dépôts)

Le fichier /etc/yum.repos.d contient les fichiers de

définition des sources des paquets avec des noms de la

forme nom-dépot.repo

Dépots obligatoires (ceux spécifiés à l'installation de la

distrib)

base

Updates

Dépots supplémentaires (ex Fedora)

livna ( pilotes matériels et multimédia)

dag, dries, rpmforge, freshrpms...

UPMC - FP – Préparation LPI - v 1.1

23

102.5 Yum

[root@localhost tmp]# cat /etc/yum.repos.d/rpmforge.repo

Name: RPMforge RPM Repository for Fedora Core 3 ­ dag

URL: http://rpmforge.net/

[rpmforge]

name = Fedora Core $releasever ­ RPMforge.net ­ dag

#baseurl = http://apt.sw.be/fedora/3/en/$basearch/dag

mirrorlist = http://apt.sw.be/fedora/3/en/mirrors­rpmforge

#mirrorlist = file:///etc/yum.repos.d/mirrors­rpmforge

enabled = 1

protect = 0

gpgkey = file:///etc/pki/rpm­gpg/RPM­GPG­KEY­rpmforge­dag

gpgcheck = 1

UPMC - FP – Préparation LPI - v 1.1

24

102.5 Yum

Commandes YUM

list / grouplist

search

info

install / groupinstall

localinstall

update / check­update

Upgrade (comme update avec option ­­obsoletes)

repolist

provides

clean

UPMC - FP – Préparation LPI - v 1.1

25

102.5 Yum

Commandes YUM ....

remove ou erase

search

info

install / groupinstall

localinstall

update / check­update

Upgrade (comme update avec option ­­obsoletes)

repolist

Provides ou whatprovides

Clean (nettoie le cahce yum des paquets téléchargés)

UPMC - FP – Préparation LPI - v 1.1

26

102.5 Yum

Recherche d'information sur les paquets :

yum list nom-appli

[root@localhost tmp]# yum list lyx

Installed Packages

lyx.i386                                 1.5.4­1.fc8            installed

Available Packages

lyx.i386                                 1.5.5­1.fc8            updates

[root@localhost tmp]# yum list iozone

Available Packages

iozone.i386                              3.279­1.fc3.rf         rpmforge

UPMC - FP – Préparation LPI - v 1.1

27

102.5 Yum

[root@localhost tmp]# yum list kernel\*

Installed Packages

kernel.i686                              2.6.24.3­12.fc8        installed

kernel.i686                              2.6.24.4­64.fc8        installed

kernel­devel.i686                        2.6.24.3­12.fc8        installed

kernel­devel.i686                        2.6.24.4­64.fc8        installed

kernel­headers.i386                      2.6.24.4­64.fc8        installed

Available Packages

kernel.i586                              2.6.25.4­10.fc8        updates

kernel.i686                              2.6.25.4­10.fc8        updates

...

kernel­debug.i686                        2.6.25.4­10.fc8        updates

kernel­debug­devel.i686                  2.6.25.4­10.fc8        updates

kernel­devel.i586                        2.6.25.4­10.fc8        updates

kernel­devel.i686                        2.6.25.4­10.fc8        updates

kernel­doc.noarch                        2.6.25.4­10.fc8        updates

kernel­headers.i386                      2.6.25.4­10.fc8        updates

kernel­xen.i686                          2.6.21.7­3.fc8         updates

kernel­xen­2.6­doc.noarch                2.6.21.7­3.fc8         updates

kernel­xen­devel.i686                    2.6.21.7­3.fc8         updates

UPMC - FP – Préparation LPI - v 1.1

28

102.5 Yum

Recherche d'information à partir d'un mot clef (pas

nécessaire de connaître le nom exact de l'appli)  :

yum search mot-clef

Recherche à partir de la description des paquets

UPMC - FP – Préparation LPI - v 1.1

29

102.5 Yum

[root@localhost tmp]# yum list iozone

Available Packages

iozone.i386                              3.279­1.fc3.rf         rpmforge

[root@localhost tmp]# yum search lyx

livna                     100% |=========================| 2.1 kB    00:00

fedora                    100% |=========================| 2.1 kB    00:00

rpmforge                  100% |=========================| 1.1 kB    00:00

adobe­linux­i386          100% |=========================|  951 B    00:00

updates                   100% |=========================| 2.3 kB    00:00

lyx.i386 : WYSIWYM (What You See Is What You Mean) document processor

polyxmass­bin.i386 : The GNU polyxmass software suite

pybliographer.noarch : Framework for working with bibliographic databases

libpolyxmass.i386 : Polymer chemistry­related functionalities

pybliographer.noarch : Framework for working with bibliographic databases

lyx.i386 : WYSIWYM (What You See Is What You Mean) frontend to LaTeX

libpolyxmass­devel.i386 : Files needed for software development with libpolyxmass

lyx.i386 : WYSIWYM (What You See Is What You Mean) document processor

latex­xft­fonts.noarch : xft­compatible versions of some LaTeX fonts

mathml­fonts.noarch : Mathematical symbol fonts

lyx.i386 : WYSIWYM (What You See Is What You Mean) document processor

mathml­fonts.noarch : Mathematical symbol fonts

linuxdoc­tools.i386 : A text formatting package based on SGML.

UPMC - FP – Préparation LPI - v 1.1

30

102.5 Yum

Installation d'un paquet  :

yum install nom-paquet

[root@localhost tmp]# yum install iozone

Publicité

Setting up Install Process

Parsing package install arguments

Resolving Dependencies

­­> Running transaction check

­­­> Package iozone.i386 0:3.279­1.fc3.rf set to be updated

­­> Finished Dependency Resolution

Total download size: 544 k

Is this ok [y/N]: y

Downloading Packages:

(1/1): iozone­3.279­1.fc3 100% |=========================| 544 kB    00:01

...

Running Transaction

Installing: iozone                       ######################### [1/1]

Installed: iozone.i386 0:3.279­1.fc3.rf

Complete!

UPMC - FP – Préparation LPI - v 1.1

31

102.5 Yum

Mise à jour d'un paquet  :

yum update nom-paquet

[root@localhost tmp]# yum update lyx

Setting up Update Process

Resolving Dependencies

­­> Running transaction check

­­­> Package lyx.i386 0:1.5.5­1.fc8 set to be updated

­­> Finished Dependency Resolution

Dependencies Resolved

Updating:

lyx                     i386       1.5.5­1.fc8      updates           9.2 M

Running Transaction

Updating  : lyx                          ######################### [1/2]

Cleanup   : lyx                          ######################### [2/2]

Updated: lyx.i386 0:1.5.5­1.fc8

Complete!

UPMC - FP – Préparation LPI - v 1.1

32

102.5 Yum

Suppression d'un paquet  :

yum remove nom-paquet

[root@localhost tmp]# yum remove iozone

Setting up Remove Process

livna                     100% |=========================| 2.1 kB    00:00

fedora                    100% |=========================| 2.1 kB    00:00

rpmforge                  100% |=========================| 1.1 kB    00:00

adobe­linux­i386          100% |=========================|  951 B    00:00

updates                   100% |=========================| 2.3 kB    00:00

Downloading Packages:

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

Erasing   : iozone                       ######################### [1/1]

Removed: iozone.i386 0:3.279­1.fc3.rf

Complete!

UPMC - FP – Préparation LPI - v 1.1

33

102.5 Yum

Recherche d'un paquet qui contient un fichier  :

yum provides nom-fichier

[root@localhost tmp]# yum provides libgfortran.so.1

libgfortran.i386 : Fortran 95 runtime

libgfortran.i386 : Fortran 95 runtime

UPMC - FP – Préparation LPI - v 1.1

34

102.5 Yum

Problème  (et solution) : Je récupère un paquet rpm et

l'installation m'affiche un message indiquant des

dépendances non satisfaites.

Solution  : option localinstall de yum qui

yum localinstall nom-fichier-rpm

rpm ­ivh hplip­3.10.2_rhel­5.0.x86_64.rpm

erreur: Dépendances requises:

libsane.so.1()(64bit) est nécessaire pour hplip­3.10.2­0.x86_64

UPMC - FP – Préparation LPI - v 1.1

35

102.5 Yum

yum ­­nogpgcheck localinstall hplip­3.10.2_rhel­5.0.x86_64.rpm

Dependencies Resolved

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

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

Package       Arch   Version               Repository                     Size

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

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

Installing:

hplip         x86_64 3.10.2­0              /hplip­3.10.2_rhel­5.0.x86_64  23 M

Installing for dependencies:

gphoto2       x86_64 2.2.0­3.el5           base                          1.4 M

libexif       x86_64 0.6.13­4.0.2.el5_1.1  base                          149 k

libieee1284   x86_64 0.2.9­4.el5           base                           33 k

libsane­hpaio x86_64 1.6.7­4.1.el5.4       base                           57 k

sane­backends x86_64 1.0.18­5.el5          base                          1.0 M

sane­backends­libs

x86_64 1.0.18­5.el5          base                          2.3 M

UPMC - FP – Préparation LPI - v 1.1

36

102.5 Yum

Recherche d'un paquet qui contient un fichier  :

yum provides nom-fichier

[root@localhost tmp]# yum provides libgfortran.so.1

libgfortran.i386 : Fortran 95 runtime

libgfortran.i386 : Fortran 95 runtime

UPMC - FP – Préparation LPI - v 1.1

37

102.5 Yum

L'onglet recherche est équivalent à la commande

yum search

Cliquer sur Appliquer pour installer le paquet choisi

UPMC - FP – Préparation LPI - v 1.1

38

102.5 Yum

... et on peut faire la même chose avec yumex

UPMC - FP – Préparation LPI - v 1.1

39

102.5 Yum

Récupération d'un paquet à partir d'un dépôt yum sans

l'installer  :

yumdownloader nom-paquet

yumdownloader lyx

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

  • addons: distrib­coffee.ipsl.jussieu.fr
  • base: distrib­coffee.ipsl.jussieu.fr
  • extras: distrib­coffee.ipsl.jussieu.fr
  • remi: iut­info.univ­reims.fr
  • rpmforge: apt.sw.be
  • updates: distrib­coffee.ipsl.jussieu.fr

Excluding Packages in global exclude list

Finished

lyx­1.5.6­1.el5.rf.i386.rpm                              |  10 MB     00:00

[root@hugin ~]# ll lyx­1.5.6­1.el5.rf.i386.rpm

­rw­r­­r­­ 1 root root 10546945 Nov 10  2008 lyx­1.5.6­1.el5.rf.i386.rpm

UPMC - FP – Préparation LPI - v 1.1

40

Quelques conseils LPI...

Connaître les options de rpm en détail + connaître les options

courtes et « longues » (ex : rpm ­qc <=> rpm ­q

­­changelog)

Connaître ce que fait rpm2cpio

Connaître les options de yum

Savoir comment mettre à jour un système avec yum (attention à la

l'homonymie de l'option avec apt­get)

UPMC - FP – Préparation LPI - v 1.1

41