Préparation LPI
Exam 102
102.5. RPM et YUM
Document sous licence Creative commons « byncsa » http://creativecommons.org/licenses/byncsa/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 : nompaquetx.y.zi.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] [nomfichierrpm|
nompaquet]
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 : foo1.01.i386.rpm
2) Lancer la commande
rpm ivh foo1.01.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
lyx1.5.41.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: lyx1.5.41.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
vimminimal7.1.2451.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/bittorrent4.4.01.fc8.rf.noarch.rpm
/usr/bin/bittorrentconsole
/usr/bin/bittorrentcurses
/usr/bin/bittorrenttracker
/usr/bin/changetrackerconsole
/usr/bin/launchmanyconsole
/usr/bin/launchmanycurses
/usr/bin/maketorrent
/usr/bin/maketorrentconsole
/usr/bin/torrentinfoconsole
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 arkeia7.0.31.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 arkeia7.0.31.i386.rpm
erreur: le paquetage arkeia7.0.31.i386.rpm n'est pas installé
rpm e arkeia7.0.31.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 iozone3.2831.fc8.rf.i386.rpm
Préparation... ########################################### [100%]
1:iozone ########################################### [100%]
[root@localhost tmp]# rpm q iozone3.2831.fc8.rf.i386
iozone3.2831.fc8.rf
[root@localhost tmp]# rpm qp iozone3.2831.fc8.rf.i386.rpm
iozone3.2831.fc8.rf
[root@localhost tmp]# rpm qlp iozone3.2831.fc8.rf.i386.rpm
/usr/bin/iozone
/usr/share/doc/iozone3.283
/usr/share/doc/iozone3.283/Gnuplot.txt
/usr/share/doc/iozone3.283/IOzone_msword_98.pdf
/usr/share/doc/iozone3.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 iozone3.2831.fc8.rf.i386.rpm
erreur: le paquetage iozone3.2831.fc8.rf.i386.rpm n'est pas
installé
[root@localhost tmp]# rpm e iozone3.2831.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 arkeia6.0.221.i386.rpm > arkeia/arkeia6.0.221.i386.rpm.cpio
cd arkeia
cpio i d < arkeia6.0.221.i386.rpm.cpio
103116 blocks
ls l
total 51628
rwrr 1 root root 52795380 mar 3 22:04 arkeia6.0.221.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
Frontend 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/mirrorsrpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrorsrpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpmgpg/RPMGPGKEYrpmforgedag
gpgcheck = 1
UPMC - FP – Préparation LPI - v 1.1
24
102.5 Yum
Commandes YUM
list / grouplist
search
info
install / groupinstall
localinstall
update / checkupdate
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 / checkupdate
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.41.fc8 installed
Available Packages
lyx.i386 1.5.51.fc8 updates
[root@localhost tmp]# yum list iozone
Available Packages
iozone.i386 3.2791.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.312.fc8 installed
kernel.i686 2.6.24.464.fc8 installed
kerneldevel.i686 2.6.24.312.fc8 installed
kerneldevel.i686 2.6.24.464.fc8 installed
kernelheaders.i386 2.6.24.464.fc8 installed
Available Packages
kernel.i586 2.6.25.410.fc8 updates
kernel.i686 2.6.25.410.fc8 updates
...
kerneldebug.i686 2.6.25.410.fc8 updates
kerneldebugdevel.i686 2.6.25.410.fc8 updates
kerneldevel.i586 2.6.25.410.fc8 updates
kerneldevel.i686 2.6.25.410.fc8 updates
kerneldoc.noarch 2.6.25.410.fc8 updates
kernelheaders.i386 2.6.25.410.fc8 updates
kernelxen.i686 2.6.21.73.fc8 updates
kernelxen2.6doc.noarch 2.6.21.73.fc8 updates
kernelxendevel.i686 2.6.21.73.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.2791.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
adobelinuxi386 100% |=========================| 951 B 00:00
updates 100% |=========================| 2.3 kB 00:00
lyx.i386 : WYSIWYM (What You See Is What You Mean) document processor
polyxmassbin.i386 : The GNU polyxmass software suite
pybliographer.noarch : Framework for working with bibliographic databases
libpolyxmass.i386 : Polymer chemistryrelated functionalities
pybliographer.noarch : Framework for working with bibliographic databases
lyx.i386 : WYSIWYM (What You See Is What You Mean) frontend to LaTeX
libpolyxmassdevel.i386 : Files needed for software development with libpolyxmass
lyx.i386 : WYSIWYM (What You See Is What You Mean) document processor
latexxftfonts.noarch : xftcompatible versions of some LaTeX fonts
mathmlfonts.noarch : Mathematical symbol fonts
lyx.i386 : WYSIWYM (What You See Is What You Mean) document processor
mathmlfonts.noarch : Mathematical symbol fonts
linuxdoctools.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.2791.fc3.rf set to be updated
> Finished Dependency Resolution
Total download size: 544 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): iozone3.2791.fc3 100% |=========================| 544 kB 00:01
...
Running Transaction
Installing: iozone ######################### [1/1]
Installed: iozone.i386 0:3.2791.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.51.fc8 set to be updated
> Finished Dependency Resolution
Dependencies Resolved
Updating:
lyx i386 1.5.51.fc8 updates 9.2 M
Running Transaction
Updating : lyx ######################### [1/2]
Cleanup : lyx ######################### [2/2]
Updated: lyx.i386 0:1.5.51.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
adobelinuxi386 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.2791.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 hplip3.10.2_rhel5.0.x86_64.rpm
erreur: Dépendances requises:
libsane.so.1()(64bit) est nécessaire pour hplip3.10.20.x86_64
UPMC - FP – Préparation LPI - v 1.1
35
102.5 Yum
yum nogpgcheck localinstall hplip3.10.2_rhel5.0.x86_64.rpm
Dependencies Resolved
================================================================
================
Package Arch Version Repository Size
================================================================
================
Installing:
hplip x86_64 3.10.20 /hplip3.10.2_rhel5.0.x86_64 23 M
Installing for dependencies:
gphoto2 x86_64 2.2.03.el5 base 1.4 M
libexif x86_64 0.6.134.0.2.el5_1.1 base 149 k
libieee1284 x86_64 0.2.94.el5 base 33 k
libsanehpaio x86_64 1.6.74.1.el5.4 base 57 k
sanebackends x86_64 1.0.185.el5 base 1.0 M
sanebackendslibs
x86_64 1.0.185.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: distribcoffee.ipsl.jussieu.fr
- base: distribcoffee.ipsl.jussieu.fr
- extras: distribcoffee.ipsl.jussieu.fr
- remi: iutinfo.univreims.fr
- rpmforge: apt.sw.be
- updates: distribcoffee.ipsl.jussieu.fr
Excluding Packages in global exclude list
Finished
lyx1.5.61.el5.rf.i386.rpm | 10 MB 00:00
[root@hugin ~]# ll lyx1.5.61.el5.rf.i386.rpm
rwrr 1 root root 10546945 Nov 10 2008 lyx1.5.61.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 aptget)
UPMC - FP – Préparation LPI - v 1.1
41