You are on page 1of 31

12074_Linux_BestOF_V5 17/01/07 10:09 Page 1

Best o f Best of

Best o f
J . - F. B O U C H A U D Y
G. GOU BET
E Y R O L L E S

E Y R O L L E S
Linux Administration
Jean-François Bouchaudy
Après des études de doctorat
en biophysique, Jean-François
Bouchaudy s’est orienté vers
Acquérir rapidement des compétences professionnelles l’informatique en se spécialisant
en administration Linux dans le développement
d’applications en C et
Réédition au format semi-poche de la 4e édition de Linux Administra- d’applications TCP/IP sous Unix.
tion, initialement publiée dans la collection « Les guides de formation Il anime des formations sur les
Tsoft ». Considéré par de nombreux administrateurs Linux comme une thèmes suivants : administration
des meilleures références en langue française sur le sujet, ce guide Unix et Linux, programmation
système Unix, langages C, C++
d’autoformation de 800 pages vous aidera à maîtriser rapidement tous
et Perl, TCP/IP, Samba, sécurité
les aspects de l’administration d’un serveur Linux : gestion des fichiers
réseau, etc.
et des utilisateurs, sauvegarde et restauration, administration réseau, sé-
curité, optimisation des performances, etc.
Gilles Goubet
Plus de 170 exercices corrigés vous permettront de tester vos connais-
Diplômé de l’ESIEE, Gilles
sances et de vous entraîner aux tâches qui constituent le quotidien d’un
Goubet est chef de projets
administrateur système et réseau.

Administration
(développement d’applications
Les auteurs ont choisi de mettre l’accent sur le mode commande, plu- en C, d’applications réseaux
tôt que sur les outils graphiques fournis avec telle ou telle distribution.
La connaissance des fichiers et des commandes qui se cachent der-
rière ces outils est en effet indispensable aux administrateurs opérant
et d’applications temps réel).
Il anime des formations Unix,
langage C, C++, Java, ADA,
J E AN-F R ANÇO I S B O U C HAU DY

Linux
dans un contexte professionnel, et offre l’avantage d’une certaine in-
dépendance vis-à-vis des distributions.
temps réel.
GI LLES GOU BET
Au sommaire

Linux
Linux et ses distributions • Gestion des utilisateurs • Fichiers et systèmes de
fichiers • Gestion de l’espace disque • Sauvegarde • Gestion des processus
• Installation d’applications (paquetages RPM et Debian) • Arrêt et démarrage
ISBN : 978-2-212-12074-5

• Gestion de réseau (NFS et NIS, TCP/IP, DHCP, DNS, Samba…) • Gestion de


Code éditeur : G12074

9 7 8 2 2 1 2 1 2 07 4 5
Conception Nord Compo
l’impression • X-Window, Gnome et KDE • Bases de données sous Linux
(MySQL, PostgreSQL) • Le noyau (version 2.6) • Gestion des périphériques •
Installation de Linux • Gestion des performances • Sécurité Linux.

Annexes en libre téléchargement sur

@ www.editions-eyrolles.com

Commandes POSIX 2 • Shell POSIX • Korn shell •


Shell bash • Awk et sed • Fichiers d’administration •
Administration avec webmin • Guide de dépannage •
Corrigé des exercices.
25 €
Administration
© Groupe Eyrolles 2007,
ISBN : 978-2-212-12074-5

Pantone rhodamine red C - Pantone 877 (argent)


8
• Les tar ball

• Les paquetages
(« packages »)rpm

• La commande en mode
texte rpm .

• Les paquetages debian

Module 8 : L’installation
d’application
Objectifs
Après la lecture de ce module, le lecteur sait installer une application à partir de ses
sources. Il sait aussi installer une application sous forme de paquetage. Enfin, il connaît
les solutions lui permettant une résolution automatique des problèmes liés à la
dépendance des paquetages.
Contenu
Sources et paquetages
Les paquetages RedHat (RPM)
Les paquetages Debian
Mises à jour et dépendances
Références
Le manuel : rpm(8), dpkg(8), apt-get(8)
Internet :
http://rpmfind.net
http://www.debian.org/distrib/packages

© Eyrolles/Tsoft – Linux Administration 8-1


Module 8 : L’installation d’application

Sources et paquetages
Sources et paquetages

„ Installation d’application à partir des sources


z Tarball
# tar xvzf logiciel.tar.gz
# cd logiciel ; ./configure
# make ; make install
z Patch
# gunzip –c patch.gz | patch –p0
z CVS
„ Installation d’application sous forme de paquetages
z Les paquetages RedHat (RPM)
z Les paquetages Debian

TSOFT - Linux Administration Module 13 : Les paquetages - 13.2

Introduction
L’installation d’une application sur un système Linux peut être accompli
essentiellement de deux manières :
• Soit à partir des sources. Il faut donc compiler l’application.
• Soit à partir d’un paquetage contenant les binaires de l’application.

Remarque
Pour la petite histoire, il faut mentionner que l’on peut manipuler des paquetages
contenant les sources et que la distribution Gentoo est entièrement basée sur
l’installation de paquetages sources.

Chaque méthode a ses avantages et ses inconvénients :


L’installation à partir des sources permet de récupérer la dernière version d’un logiciel.
La compilation permet également d’adapter le logiciel à sa plateforme et ainsi de le
rendre plus performant. Certaines options d’utilisation ne sont permises que grâce à la
recompilation. Enfin, certains logiciels n’existent pas sous forme de paquetages.
L’installation d’une application sous forme de paquetage simplifie énormément le
travail de l’administrateur. Elle peut même quelque fois se résumez à une simple
commande ou à l’appui sur un bouton. Une application peut dépendre d’autres logiciels.
La manipulation de la version paquetage permet au moins la connaissance des
paquetages requis et éventuellement, par un processus récursif, l’installation de ces
applications.
En conclusion, l’utilisation de paquetage est la solution logique pour installer une
application, il faut la privilégier. L’installation à partir des sources sera réservée
seulement pour la principale application fonctionnant sur son système. Les avantages

8-2 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

liées à la compilation pouvant éventuellement l’emporter dans ce cas sur l’utilisation de


paquetages.
L’installation à partir des sources
Une application source se présente le plus souvent sous forme d’un fichier tar
compressé ou tarball. Un des fichiers se nomme README et donne les instructions
à suivre pour réaliser l’installation. Les paquetages GNU sont en fait des tarball
construit toujours avec les mêmes techniques.
Une des principales motivations d’installer une application à partir des sources est de
posséder la version la plus récente du logiciel. Le téléchargement et la compilation du
logiciel sont des processus lents et complexes. Il est possible de ne télécharger que les
différences par rapport à la version précédentes. Deux systèmes sont principalement
utilisés :
• CVS, un système complet de suivi de versions d’un logiciel.
• Le patch, un fichier renfermant les différences avec la dernière version.
tarball
Le format traditionnel d’une application obtenue à partir d’Internet, d’un CD-ROM, ...
est le tarball. Un fichier tarball est tout simplement un fichier tar compressé.
Ce fichier contient tous les composants de l’application : les exécutables, les
bibliothèques, les fichiers de configuration, la documentation, des fichiers de données,
des exemples …
On trouve aussi sur l’archive des fichiers qui permettent de réaliser l’installation :
README, copyright, Makefile, install.sh. Il faut d’abord lire le fichier README qui
contient des informations souvent essentielles. Il décrit le logiciel et la marche à suivre
pour réaliser l’installation. Elle utilise habituellement deux outils : le shell et make. Le
fichier install.sh est un script shell et le fichier Makefile est un fichier make.
Malheureusement, chaque développeur suit ses propres conventions et les noms des
fichiers et des procédures d’installation varient d’une personne à une autre.
La commande make
Cette commande est essentielle dans la production de logiciel. Elle se base sur un
fichier, le Makefile, qui décrit toutes les opérations à effectuer pour créer une
application. Ce sont essentiellement des compilations qui sont exécutées par un
makefile, mais tout ce qui concourt à l’édification d’un logiciel peut être utilisé.
L’intérêt majeur de la commande make réside dans le fait qu’elle n’accomplit, du
makefile, que les opérations nécessaires en se basant sur les dates de dernière
modification des fichiers.
Dans l’exemple qui suit, on utilise un fichier Makefile pour construire l’application
décrite dans le chapitre concernant les bibliothèques dynamiques :
$ more Makefile
# Makefile

a.out : main.o libz.so


gcc main.o libz.so

libz.so : add.o mult.o


gcc -shared -o libz.so add.o mult.o

main.o : main.c

© Eyrolles/Tsoft – Linux Administration 8-3


Module 8 : L’installation d’application

gcc -c main.c

add.o : add.c
gcc -c add.c

mult.o : mult.c
gcc -c mult.c

$ make
gcc -c add.c
gcc -c mult.c
gcc -shared -o libz.so add.o mult.o
gcc main.o libz.so
$ make
make: `a.out' est à jour.
$

Paquetage GNU
Un paquetage GNU est en fait un tarball. La procédure d’installation suit toujours les
mêmes étapes :
- récupération du tarball
- décompression avec l’outil gzip du GNU
- restauration avec tar
- déplacement dans le répertoire principal créé à l’étape précédente
- activation du script shell configure
- compilation de l’application via la commande make
- installation du logiciel via la commande make install
L’exécution du script configure est l’étape essentielle de l’opération. L’installateur l’a
créé avec l’outil GNU autoconf. Il génère le fichier Makefile qui permet la
compilation du produit avec, comme intérêt majeur, de fabriquer un Makefile spécifique
de la plate-forme. Il prend en compte les outils de développement installés (ld, as, ar,
m4, make, lex, yacc...), leur emplacement, les options de compilation liées à
l’architecture matérielle, l’emplacement des fichiers et des commandes… Le même
tarball peut être utilisé pour les différentes plates-formes UNIX existantes et pour les
différentes distributions Linux. La portabilité UNIX, dans ce cas, n’est pas un vain mot.
Syntaxe d’utilisation d’un script configure
Un script configure peut être activé avec des options qui précisent notamment
l’emplacement des fichiers, ou bien le comportement du logiciel.
Nous mentionnons quelques options d’installation d’Apache.
--help : affiche la liste de toutes les directives de configuration, et la liste des modules
disponibles et leur état d’inclusion.
--quiet : mode silencieux.
--verbose : mode verbeux.
--show-layout : affiche les emplacements utilisés.
--prefix=/usr/httpd : spécifie la racine d’installation, par défaut /usr/local/apache.
--enable-shared=max : Apache utilise l’édition de liens dynamique, par défaut, il utilise
l’édition de liens statique.

8-4 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

Exemple : l’installation d’Apache


On prend comme exemple l’installation d’Apache. Elle nécessite de disposer du
compilateur c.
On récupère Apache.
# wget 'http://apache.crihan.fr/dist/httpd/apache_1.3.29.tar.gz'
--16:10:56-- http://apache.crihan.fr/dist/httpd/apache_1.3.29.tar.gz
=> `apache_1.3.29.tar.gz.1'
Résolution de apache.crihan.fr... complété.
Connexion vers apache.crihan.fr[195.221.21.36]:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 2,435,809 [application/x-tar]

100%[=========================>] 2,435,809 62.92K/s ETA 00:00

16:11:34 (62.92 KB/s) - « apache_1.3.29.tar.gz.1 » sauvegardé


[2435809/2435809]
On le décompresse et on le « détare » :
# tar xzf apache_1.3.29.tar.gz
On active le script configure :
# cd apache_1.3.29
# ./configure
Configuring for Apache, Version 1.3.29
+ Warning: Configuring Apache with default settings.
+ This is probably not what you really want.
...
On compile Apache :
# make
On l’installe :
# make install
On teste son fonctionnement :
# /usr/local/apache/bin/apachectl start
# ps -e |grep httpd

La commande patch
La commande patch, créée par Larry Wall, le concepteur de PERL, effectue la mise à
jour de fichiers sources répartis dans une arborescence de fichiers. La commande
applique les modifications mémorisées dans un fichier créé par la commande
diff -c. Cette dernière génère les modifications qu’il faut apporter à un fichier pour
obtenir la version modifiée. Contrairement à la commande diff –e qui crée un script
ed, l’option –c ou –u génère une différence contextuelle qui prend en compte les lignes
qui entourent les lignes modifiées. Dans certains cas, la commande échoue et le précise
avec des balises qui encadrent les zones indécises.
Les mises à jour de sources sont disponibles sous forme de fichiers patch compressés.
Exemple simple d’utilisation de la commande patch :
$ cal > f1.txt
$ cp f1.txt f2.txt
$ echo "Salut ..." >> f2.txt
$ diff -c f1.txt f2.txt
*** f1.txt Fri Oct 12 14:36:31 2001
--- f2.txt Fri Oct 12 14:39:42 2001
***************

© Eyrolles/Tsoft – Linux Administration 8-5


Module 8 : L’installation d’application

*** 6,8 ****


--- 6,9 ----
21 22 23 24 25 26 27
28 29 30 31

+ Salut ...
$ diff -c f1.txt f2.txt > patch.txt
$ patch -p0 f1.txt < patch.txt
Ressemble à une opération new-style context diff.
terminé
$ cat f1.txt
octobre 2001
S M Tu W Th F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Salut ...
$
Voici un exemple plus réaliste : Le système du développeur possède deux
arborescences, old et a_jour. Le programmeur crée le fichier patch qui permet de passer
de l’arborescence old à a_jour.
$ cd old
$ find .
.
./patch.gz
./main.c
./libz
./libz/mult.c
./libz/add.c
$ find ../a_jour
../a_jour
../a_jour/main.c
../a_jour/libz
../a_jour/libz/mult.c
../a_jour/libz/add.c
$ diff -u -r . ../a_jour
diff -u -r ./libz/add.c ../a_jour/libz/add.c
--- ./libz/add.c 2004-02-18 17:08:27.897275488 +0100
+++ ../a_jour/libz/add.c 2004-02-18 16:41:33.649678424 +0100
@@ -1,3 +1,4 @@
+/* ==== add.c === */
int add(int x, int y ) {
return x+y;
}
diff -u -r ./main.c ../a_jour/main.c
--- ./main.c 2004-02-18 17:08:18.814656256 +0100
+++ ../a_jour/main.c 2004-02-18 16:41:13.269776640 +0100
@@ -1,3 +1,4 @@
+/* === main.c ==== */
main() {
int a=3,b=4,c;
c = add(a,b);
Only in .: patch.gz
$ diff -u -r . ../a_jour |gzip > patch.gz

8-6 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

Sur le système cible, l’administrateur récupère le fichier patch.gz et l’installe dans son
répertoire a_jour qui correspond en fait chez le développeur au répertoire old. Grâce à
la commande patch il installe la mise à jour des sources.
$ gunzip -c patch.gz | patch -p0
patching file ./libz/add.c
patching file ./main.c
$

Le système CVS
CVS (Concurrent Version System) est un système de gestion de version qui peut
fonctionner en réseau. Ce logiciel est libre, sous licence GPL. Il est destiné à remplacer
RCS, pour des cas complexes. Beaucoup de logiciels libres sont développés sur Internet
grâce à CVS. Ce produit est d’abord destiné aux développeurs. Il peut être utilisé par
toute personne qui récupère la dernière version d’un logiciel ou les dernières
modifications dans le cas où l’on dispose déjà d’une version antérieure.
Exemple : récupération de Samba
Après avoir récupéré le logiciel CVS, il faut créer la variable d’environnement
CVSROOT qui donne l’adresse du serveur CVS, le compte sous lequel on se connecte
et le répertoire où se trouvent les fichiers CVS.
$ CVSROOT=":pserver:cvs@cvs.samba.org:/cvsroot"
$ export CVSROOT
On se déplace dans le répertoire qui est destiné à recevoir les sources de Samba, et on se
connecte au serveur en donnant le mot de passe « cvs ».
$ cd /usr/samba_src
$ cvs login
password : cvs
On télécharge les dernières modifications (ou tout le logiciel, si c’est la première fois).
La commande cvs checkout va automatiquement mettre à jour les fichiers (de
manière similaire à la commande patch).
$ cvs -z3 checkout samba
Enfin, il ne reste plus qu’à compiler Samba comme un paquetage GNU. Le script
configure se trouve dans le répertoire « source ».
Les paquetages
Les paquetages GNU apportent une solution à la portabilité d’une application UNIX,
mais elle ne résout en rien la gestion et la mise à jour d’un serveur Linux comportant
des dizaines d’applications et des centaines d’utilitaires, de documentation, de
bibliothèques partagées… La notion de paquetage (« package ») attendu alors doit être
plus évoluée. Un paquetage ne doit pas seulement contenir les fichiers d’une
application, mais doit reposer sur un format strict qui permet sa manipulation
automatique par l’intermédiaire d’un ensemble de commandes.
On veut notamment disposer des fonctionnalités suivantes :
• Installer automatiquement une application.
• Connaître les paquetages installés.
• Avoir des informations générales sur un paquetage.
• Désinstaller un paquetage.

© Eyrolles/Tsoft – Linux Administration 8-7


Module 8 : L’installation d’application

• Vérifier avant l’installation les dépendances d’un paquetage.


• Avant, durant ou après l’installation, connaître les conflits associés à l’installation
d’un paquetage.
• Vérifier la bonne installation d’un paquetage, l’intégrité de ses fichiers, l’authenticité
du paquetage.
• Mettre à jour un paquetage.
• Connaître les composants du paquetage.
Cette liste n’est pas exhaustive, elle ne fait que mettre en exergue quelques intérêts
marquants des paquetages.
Panorama des solutions
Chaque distribution Linux, dispose d’un format de paquetage et de commandes
permettant de gérer l’installation et la désinstallation de paquetages. Malheureusement,
il n’existe pas de standard. Voici les principaux :
• Le système de paquetage RedHat (RPM).
• Le système de paquetage Debian.
• Le système de paquetage Gentoo dérivant des Portage BSD
• Le système de paquetage Slackware (.tgz).
Le système RPM est le plus répandu, il est utilisé notamment par les distributions
RedHat, Fedora, Mandrake, SuSE, Connectiva, YellowDog, PLD, Maindeinlinux, …
Les RPM et les paquetages Debian font chacun l’objet d’un chapitre complet.
Mise à jour et dépendances
A l’usage, le problème majeur de l’utilisation des paquetages est la résolution des
dépendances. Le système Debian fut le premier à le résoudre avec son architecture APT.
Actuellement, les systèmes basés sur les RPM offrent des solutions comparables. Le
chapitre « Mise à jour et dépendances » traite de ce sujet.
Références
Man
tar(1), make(1), gzip(1), autoconf(1), make(1), wget(1), patch(1), diff(1),cvs(1), cvs(5),
ci(1), co(1),
Info
info make,
Livre
Programmer avec les outils GNU, par M. Loukides & A. Oram
Ce livre traite notamment du compilateur gcc, de make, de RCS, …

8-8 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

Les paquetages RedHat (RPM)


La commande rpm

La
Lamise
miseen
enœuvre
œuvrede
derpm
rpm

„ Installer un paquetage
# rpm -i le_paquetage.rpm
„ Retirer un paquetage
# rpm -e le_paquetage
„ Afficher les paquetages installés
# rpm -qa
„ Afficher les caractéristiques d’un paquetage
# rpm -qpi le_paquetage.rpm
„ Afficher les composants d’un paquetage
# rpm -qpl le_paquetage.rpm

TSOFT - Linux Administration Module 13 : Les paquetages - 13.3

Introduction
Le RPM (Red Hat Package Manager) est un système qui permet de gérer l’installation
ou la désinstallation d’applications fournies sous forme de paquetages (package). Ce
système, bien que créé par la société Red Hat, est un logiciel ouvert sous licence GPL
(cf. http://www.rpm.org).
Un paquetage se présente sous forme d’un fichier au format RPM. Ce fichier a
l’extension « .rpm ». Il contient les fichiers à installer, mais aussi des informations
générales sur le paquetage, comme la version, la description, et le script d’installation
du paquetage.
La gestion des paquetages est principalement réalisée par la commande rpm. Les
commandes KPackage, Glint et Gnome-RPM sont des interfaces graphique à la
commande rpm. Elles en simplifient l’usage par la convivialité du mode graphique.
Elles ne peuvent évidemment être exécutées que dans un environnement X (cf. Module
13 : X-Window).
La commande rpm2cpio convertit un fichier au format rpm en un fichier au format
cpio.
La commande rpm
La commande rpm gère les paquetages au format rpm.
Syntaxe
rpm -option_principale [ options_secondaires] [le_paquetage]
Options
Le tableau qui suit donne la liste essentielle des options « option_principale » de la
commande rpm, hormis celles de construction de paquetage.

© Eyrolles/Tsoft – Linux Administration 8-9


Module 8 : L’installation d’application

Option Description
-i Installe un paquetage.
-U Mise à jour d’un paquetage.
-e Désinstalle un paquetage.
-q Affiche des informations sur un paquetage. L’option complémentaire « -
p » permet de préciser le nom d’un paquetage non installé. Le nom doit
alors être fourni sous la forme d’une URL pour FTP.
-V Vérifie un paquetage.
--version Affiche la version.
--help Affiche les options de la commande rpm.
--checking Vérifie la signature d’un paquetage.

Où trouvez les paquetages ?


Avant d’installer un paquetage, il faut récupérer le fichier .rpm correspondant. Où
trouver ce fichier ? Voici les principaux lieux (dépôts) où l’on peut trouver un
paquetage :
• Les cdrom d’installation. Dans le cas de la distribution RedHat, ils sont sous le
répertoire RedHat/RPMS de chaque cdrom.
• Le site officiel de la distribution. Dans le cas de la distribution RedHat, le site
http://www.redhat.com.
• Le site officiel du logiciel considéré. Par exemple http://www.webmin.com dans le
cas de l’application Webmin.
• Le site http://rpmfind.net regroupe les paquetages disponibles pour les principales
distributions.
Parmi ce choix, il faut privilégier le site officiel de la distribution. Les paquetages y sont
à jour et les dépendances sont résolues au sein des autres paquetages de la distribution.

Ce qu’il faut savoir faire


Récupérer un paquetage
La commande wget permet de récupérer un fichier en utilisant le protocole ftp ou httpd.
On donne en argument l’URL du fichier à télécharger.
# wget 'http://heanet.dl.sourceforge.net/sourceforge/webadmin
/webmin-1.130-1.noarch.rpm'
Installer un paquetage
# cd /mnt/cdrom/RedHat/RPMS # le répertoire où réside les paquetages
# ls *77*
compat-egcs-g77-5.2-1.0.3a.1.i386.rpm make-3.77-6.i386.rpm
egcs-g77-1.1.2-12.i386.rpm
# rpm -i egcs-g77-1.1.2-12.i386.rpm
Installer un paquetage en visualisant la progression de l'installation.
# rpm -ivh webmin-1.130-1.noarch.rpm
warning: webmin-1.130-1.noarch.rpm: V3 DSA signature: NOKEY, key ID
11f63c51
Preparing... ########################################### [100%]

8-10 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

1:webmin ########################################### [100%]


Webmin install complete. You can now login to
http://carapuce.pokemon:10000/
as root with your root password.
Mettre un jour un paquetage ou l’installer si il ne l’était pas
# rpm -Uvh egcs-g77*.rpm
Est-ce qu’un paquetage est installé ?
# rpm -qa | grep egcs-g77
egcs-g77-1.1.2-12
Désinstaller un paquetage
# rpm -e egcs-g77-1.1.2-12
Visualiser les caractéristiques d’un paquetage déjà installé
# rpm -qi egcs-g77
Name : egcs-g77 Relocations: (not relocateable)
Version : 1.1.2 Vendor: Red Hat Software
Release : 12 Build Date: dim 21 mar 1999 22:41:39 CET
Install date: sam 16 oct 1999 12:37:34 CEST Build Host:
porky.devel.redhat.com
Group : Development/Languages Source RPM: egcs-1.1.2-12.src.rpm
Size : 4742626 License: GPL
Packager : Red Hat Software http://developer.redhat.com/bugzilla/
URL : http://egcs.cygnus.com/
Summary : Fortran 77 support for the gcc compiler.
Description :
The egcs-g77 package provides support for compiling Fortran 77
programs with the GNU gcc compiler.
You should install egcs-g77 if you are going to do Fortran development
and
you would like to use the gcc compiler. You will also need to install
the
gcc package.
Visualiser les caractéristiques d’un paquetage non encore installé
# rpm -qpi egcs-g77*.rpm
Connaître le paquetage d’origine d’un fichier
# rpm -qf /usr/sbin/pwconv
shadow-utils-980403-12
Connaître la liste des fichiers, composants d’un paquetage
# rpm -qpl egcs-g77*.rpm
/usr/bin/f77
/usr/bin/g77
/usr/info/g77.info.gz
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/f771
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/g2c.h
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/libg2c.a
/usr/man/man1/f77.1
/usr/man/man1/g77.1

Pour aller plus loin


Connaître la liste des paquetages installés
# rpm -qa |more
yp-tools-2.2-1

© Eyrolles/Tsoft – Linux Administration 8-11


Module 8 : L’installation d’application

ypbind-3.3-20
zlib-1.1.3-5
zlib-devel-1.1.3-5
XFree86-SVGA-3.3.3.1-49
XFree86-VGA16-3.3.3.1-49
XFree86-Mach32-3.3.3.1-49
XFree86-Mach64-3.3.3.1-49
XFree86-AGX-3.3.3.1-49
egcs-g77-1.1.2-12

Installer un paquetage stocké sur une autre machine (via FTP)
# rpm -i ftp://venus/RPMS/le_package.rpm
Forcer l’installation si le paquetage est déjà installé ou dépend d’autres
paquetages
# rpm -ivh --nodeps --force egcs-g77*.rpm
Connaître les dépendances d’un paquetage (-R ou --requires)
# rpm -qR egcs-g77
egcs = 1.1.2
/sbin/install-info
/bin/sh
ld-linux.so.2
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
Connaître les versions d’un paquetage, du gestionnaire rpm
# file egcs-g77*.rpm
egcs-g77-1.1.2-12.i386.rpm: RPM v3 bin egcs-g77-1.1.2-12
# rpm --version
RPM version 3.0
Afficher les scripts qui seront déclenchés automatiquement
# rpm -q --scripts pdksh
postinstall script (through /bin/sh):
if [ ! -f /etc/shells ]; then
echo "/bin/ksh" > /etc/shells
else
if ! grep '^/bin/ksh$' /etc/shells > /dev/null; then
echo "/bin/ksh" >> /etc/shells
fi
fi
postuninstall script (through /bin/sh):
if [ ! -f /bin/ksh ]; then
grep -v /bin/ksh /etc/shells > /etc/shells.new
mv /etc/shells.new /etc/shells
fi
Afficher les caractéristiques des fichiers : chemin, taille, date de
modification et signature md5
# rpm -q -l --dump -p egcs-g77*.rpm
/usr/bin/f77 3 922052494 0120777 root root 0 0 0 g77
/usr/bin/g77 68640 922052491 815e6c0fbd6de5459ecfc697fb203ae9 0100755
root
oot 0 0 0 X
/usr/info/g77.info.gz 265867 922052444

8-12 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

c2bbbe856c529e09d52be1e7c9aac694
100644 root root 0 1 0 X
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/f771 1881484 922052491
cc0e0f0993ef948a34eaf946058d05f2 0100755 root root 0 0 0 X
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/g2c.h 5614
922052489 26ccd6b28810977b3b0a5b53c1527965 0100644 root root 0 0 0 X
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/libg2c.a 2511742
922052489 9f78549164e2e0aa0b16edc6811f006f 0100644 root root 0 0 0 X
/usr/man/man1/f77.1 5 922052494 0120777 root root 0 1 0 g77.1
/usr/man/man1/g77.1 9271 922052439 c73cdd2b562212d0e720526ac277070d
0100644 root root 0 1 0 X
Vérifier un paquetage (cf. l'option --dump ci-dessus)
# rpm -V egcs-g77
# ls -l /usr/man/man1/f77.1g
-rw-r--r-- 1 root root 9271 Mar 21 1999 /usr/man/man1/g77.1
# chmod g+w /usr/man/man1/g77.1
# rpm -V egcs-g77
.M...... /usr/man/man1/g77.1
Afficher la liste des fichiers de documentation d’un paquetage
# rpm -q -d egcs-g77
/usr/info/g77.info.gz
/usr/man/man1/F77.1
/usr/man/man1/g77.1
Vérifier l’ensemble des paquetages installés
# rpm –Va
Vérifier la signature d’un fichier paquetage
On peut vérifier, avec l’option checksig, si un fichier paquetage a été modifié. La
commande rpm recalcule la somme MD5 et la compare avec celle incluse dans le
paquetage.
# rpm --checksig --nopgp egcs-g77*.rpm
egcs-g77-1.1.2-12.i386.rpm: size md5 OK
Si l’on a installé GPG, on peut se prémunir contre les chevaux de Troie. Il faut d’abord
installer la clé publique associée au logiciel ou à la distribution. Dans l’exemple suivant,
on installe la clé de la distribution Fedora, elle se trouve à la racine du premier CD-
ROM. On peut également la télécharger à partir du site RedHat. Ensuite, grâce à
l’option --checksig, on vérifie la signature numérique du fichier RPM.
# rpm --import RPM-GPG-KEY-fedora
# rpm --checksig cpio-2.5-5.i386.rpm
cpio-2.5-5.i386.rpm: (sha1) dsa sha1 md5 gpg OK

La base de données des RPM


La commande rpm gère une base de données où elle conserve les informations
concernant les paquetages installés. Cette base est répartie dans un ensemble de fichiers
présents dans le répertoire /var/lib/rpm. Il est important de sauvegarder cette base. En
effet, si elle est altérée, l’ajout ou le retrait de logiciels n’est plus possible.
Réparer la base RPM
Dans certains cas, on est obligé de tuer une tâche rpm. Redémarrer le système suffit le
plus souvent à régler les problèmes. On peut être parfois amené à réparer la base. Il faut
supprimer les fichiers DBM et les reconstruire grâce à la commande rpm.
# rm –f /var/lib/rpm/--db*

© Eyrolles/Tsoft – Linux Administration 8-13


Module 8 : L’installation d’application

# rpm –vv –-rebuilddb


Certaines erreurs ne peuvent être réparées de cette manière. Nous renvoyons le lecteur à
une recherche sur Internet pour trouver les astuces permettant de solutionner ses
problèmes. La sauvegarde régulière de cette base est évidemment la meilleure des
préventions.
Références
Man
rpm(8), rpm2cpio(8), rpmbuild(8)
Internet
Le site officiel du logiciel RPM
http://www.rpm.org
Rpmfind.net, le principal site où l’on trouve tout type de rpm
http://rpmfind.net
Howto
RPM-HOWTO

8-14 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

Les paquetages debian


Les paquetages Debian

„ La commande dpkg
z Liste de paquetages installés
# dpkg -l
z Lister les fichiers d’un paquetage
# dpkg –L adduser
„ La commande apt-get
z Mettre à jour la liste des paquetages disponibles
# apt-get update
z Installer un paquetage
# apt-get install adduser
z Rechercher un paquetage
# apt-cache search chess

TSOFT - Linux Administration Module 13 : Les paquetages - 13.4

Introduction
Les paquetages Debian sont, avec les RPM, les paquetages les plus utilisés par les
systèmes Linux. Outre Debian, d’autres distributions comme Knoppix les utilisent. La
facilité de mise à jour en réseau grâce à la commande apt-get les a rendu populaires.
Les paquetages debian
Un paquetage Debian est un fichier qui contient les fichiers d’une application et les
données nécessaires à son installation.
Il y a deux types de paquetages : les paquetages sources et les paquetages binaires. Ces
derniers sont directement installables. Ils ont l’extension « .deb ». Les paquetages
sources sont composés de plusieurs fichiers dont les fichiers de contrôle qui possèdent
l’extension « .dsc ».
Le nom d’un paquetage suit une logique rigoureuse. L’exemple suivant
ethtool-1.8-2.deb
désigne la deuxième version (2) du paquetage (.deb) de la version 1.8 du logiciel
ethtool.
Les commandes de gestions de paquetage
dpkg
C’est la commande de gestion de paquetage de bas-niveau en mode ligne de commande.
Elle est similaire à la commande rpm. Elle permet l’installation d’un paquetage, sa
désinstallation, …

© Eyrolles/Tsoft – Linux Administration 8-15


Module 8 : L’installation d’application

apt-get
C’est une commande haut-niveau en mode ligne de commande qui est une interface à la
commande dpkg. L’utilisateur précise le logiciel à installer et la commande le
recherche toute seule à partir de différentes sources configurées au préalable.
dselect
Cette commande de gestion de paquetage fonctionne en mode texte plein écran. Elle est
utilisée lors de l’installation du système Debian. C’est une interface à la commande
apt-get. Elle liste les paquetages installés et disponibles. Son utilisation est complexe.
tasksel
Cette commande en mode texte plein écran peut-être utilisée en complément ou en
alternative à dselect lors de l’installation du système. Elle permet l’installation de
grand groupes de logiciels (l’interface X, KDE, l’environnement C/C++, …). Son
utilisation est élémentaire.
Les distributions Debian
Les différentes distributions
Les distributions Debian se répartissent en fonction de la stabilité des logiciels :
Stable
Les logiciels de la distribution Stable sont tout à fait testés. S’ils sont modifiés, c’est
principalement pour corriger des problèmes liés à la sécurité.
Frozen
La distribution antérieurement en état « testing » est « gelée » (frozen). Plus aucun ajout
n’est effectué. Après une nouvelle phase de tests, elle deviendra la nouvelle distribution
« stable ».
Testing
Les logiciels en état testing fonctionnent mais sont toujours en phase de test. Aucun
effort particulier lié à la sécurité n’est effectué.
Unstable
Les logiciels en état unstable correspondent aux versions les plus récentes. Après la
correction des principaux bugs, ils peuvent passer dans la zone « Testing ».
Les noms de codes
Chaque distribution Debian (stable, testing, …) se voit attribuer un nom de code :
« potato », « woody », « sid » … Avec le temps, (après moult correctifs) une
distribution évolue de unstable en testing et enfin en stable. Durant ces évolutions, son
nom de code est conservé. Il y a une exception, le nom sid désigne toujours la
distribution unstable courante.
Actuellement la distribution stable a pour nom de code « woody » (Debian version 3).
L’ancienne version, Debian version 2.2, avait pour nom de code « potato ». La
prochaine version, actuellement en état « testing », a pour nom de code « sarge ». La
version en état « unstable » a pour nom de code « sid ».
Les distributions et les licences
Chaque distribution Debian (stable, testing, …) est divisée en plusieurs
composants basés sur le type de licence :
Main
Contient uniquement des logiciels libres, elle constitue la distribution officielle Debian.

8-16 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

Contrib
Les logiciels sont libres mais dépendent des paquetages qui ne le sont pas.
Non-Free
Les logiciels sont soit payant soit possédant des licences très restrictives.
Non-US/Main
Contient uniquement des logiciels libres mais qui ne peuvent être téléchargés à partir
des Etats-Unis comme par exemple des logiciels cryptographiques.
Non-US/Non-Free
Contient des logiciels soit payant soit possédant des licences très restrictives. Ces
logiciels ne peuvent être téléchargé à partir des Etats-Unis.
L’organisation d’une archive Debian
Un site FTP ou un CD-ROM Debian est composé d’une hiérarchie de répertoires qui
reflète les différentes distributions et leurs sections. La racine est le répertoire ./debian,
le sous-répertoire dists contient l’arborescence des distributions et le sous-répertoire
pool contient l’arborescence des paquetages.
Dans le répertoire dists, il y a un sous-répertoire par distribution (stable, testing, …).
Les archives comportent également des répertoires associés aux noms de codes, mais ce
sont en fait des liens symboliques vers les différentes distributions.
Chaque sections (main, contrib, …) est composé notamment des répertoires suivant :
./binary-i386/ Contient les binaires spécifiques d’une plate-forme.
./source/ Contient les sources.
Un répertoire binary* contient essentiellement le fichier Paquetage.gz qui décrit les
paquetages de la distribution ainsi que leur emplacement à partir de la racine de
l’archive.
Les fichiers paquetages eux, sont habituellement dans l’arborescence pool. Ce répertoire
contient un sous-répertoire par distribution (main, …). Ces répertoires contiennent un
répertoire par application. Ces répertoires sont répartis chacun dans un répertoire qui
reprend l’initiale du nom du logiciel, par exemple nessus est dans le répertoire. /n. Enfin
le répertoire associé à une application contient les fichiers paquetages (.deb).
Exemples de chemin :
./debian/dists/stable/main/binary-i386/Packages
./debian/pool/main/a/adduser/adduser*.deb
La commande dpkg
La commande dpkg est l’outil de bas niveau des paquetages Debian. On l’utilisera
exceptionnellement pour installer un paquetage. On lui préfère apt-get. Cette dernière
n’est en fait qu’une interface de haut niveau et fait donc appel à dpkg. On utilise
principalement dpkg pour afficher des informations sur un paquetage (liste des fichiers,
dépendances…).
Exemples
Afficher l’aide en ligne (-h ou --help).
# dpkg –h |more
Installer un paquetage (-i ou--install).
# dpkg –i adduser-3.11-1.deb

© Eyrolles/Tsoft – Linux Administration 8-17


Module 8 : L’installation d’application

Supprimer un paquetage (-r ou --remove).


# dpkg –r adduser
Lister les paquetages installés (-l ou --list).
# dpkg –l |more
# dpkg –l \* |more
# dpkg -l | head
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-
installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err:
uppercase=bad)
||/ Name Version Description
+++-==============-==============-
=======================================
ii adduser 3.47 Add and remove users and groups
ii afio 2.4.7-3 Archive file manipulation program.
ii apt 0.5.4 Advanced front-end for dpkg
ii apt-utils 0.5.4 APT utility programs
ii at 3.1.8-11 Delayed job execution and batch
processing
#
Est-ce q’un paquetage particulier est installé ?
# dpkg –l |grep adduser
# dpkg –l ’*user’
Visualiser les caractéristiques d’un paquetage (-s ou --status).
# dpkg -s adduser
Package: adduser
Status: install ok installed
Priority: important
Section: base
Installed-Size: 408
Maintainer: Roland Bauerschmidt <rb@debian.org>
Version: 3.47
Depends: perl-base (>= 5.6.0), passwd (>= 961025), debconf
Suggests: liblocale-gettext-perl, perl-modules
Conffiles:
/etc/deluser.conf bf73b4e76066381cd3caf80369ce1d0e
Description: Add and remove users and groups
This package includes the adduser and deluser commands for creating
and removing users.
.
o Adduser can create new users and groups and add existing users to
existing groups.
o Deluser can remove users and groups and remove users from a given
group.
.
Adding users with adduser is much easier than adding them by hand.
Adduser will choose appropriate UID and GID values, create a home
directory, copy skeletal user configuration, allow you to set an
initial password and the GECOS field.
.
Deluser can optionally remove and backup the user's home directory
and mail spool or all files on the system owned by him.
.

8-18 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

Optionally a custom script can be executed after each of the


commands.
Lister les fichiers composants un paquetage (-L ou –listfiles).
# dpkg -L adduser | head
/.
/etc
/etc/deluser.conf
/usr
/usr/sbin
/usr/sbin/adduser
/usr/sbin/deluser
/usr/share
/usr/share/doc
/usr/share/doc/adduser
Rechercher l’appartenance d’un fichier à un paquetage (-S ou --search).
# dpkg -S /usr/sbin/deluser
adduser: /usr/sbin/deluser
Lister les paquetages partiellement installés (-C ou --audit).
# dpkg -C
Visualiser les caractéristiques d’un paquetage non-installé (-I --info).
# dpkg-deb –I adduser*.deb
Visualiser les fichiers composants un paquetage non-installé (-c ou --contents).
# dpkg-deb –c adduser*.deb
Afficher les informations concernant la licence d’un paquetage non-installé.
# dpkg-deb --licence adduser*.deb

L’environnement APT
Introduction
L’environnement APT (Advanced Packaging Tool) offre à l’administrateur une solution
simple à la gestion des paquetages. L’installation d’un paquetage est triviale : les
dépendances et les conflits sont résolues automatiquement. De même, l’emplacement du
paquetage n’a pas être précisé.
Les commandes
apt-get C’est la commande principale de gestion de paquetage.
apt-cdrom Met à jour la liste des paquetages disponibles stockés sur un cdrom.
apt-cache Manipule le cache d’APT.
dselect Commande de haut-niveau interface à apt-get. Malheureusement assez
complexe.
Le fichier sources.list
Le fichier /etc/apt/sources.list contient les emplacements où sont recherché les
paquetages à installer.
Chaque ligne a la forme suivante :
(deb | deb-src ) <URL> <distribution> {<composant>}
<URL> ::= protocole://<hote>/<chemin>
<protocole> ::= cdrom | file | http | ftp | rsync | nfs
<distribution> ::= stable | testing | unstable | frozen
<composant> ::= main | contrib | non-free | non-US/main | non-US/contrib

© Eyrolles/Tsoft – Linux Administration 8-19


Module 8 : L’installation d’application

Exemple de fichier
Dans le fichier suivant, les dernières lignes sont en commentaire. Elles correspondent
aux emplacements des paquetages source.
carapuce:~# more /etc/apt/sources.list
# Stable
deb http://ftp2.de.debian.org/pub/debian stable main contrib non-free
deb http://ftp2.de.debian.org/pub/debian-non-US stable/non-US main
contrib non-free
# Security updates for "stable"
deb http://security.debian.org stable/updates main contrib non-free
# Sources (Uncomment if you want the apt-get source function to work)
#deb-src http://ftp2.de.debian.org/pub/debian stable main contrib non-
free
#deb-src http://ftp2.de.debian.org/pub/debian-non-US stable/non-US
main contrib non-free
Les autres fichiers
/var/lib/dpkg/available
Ce fichier texte contient la liste des paquetages disponibles (installés, …).
/var/lib/dpkg/status
Ce fichier texte, complémentaire du précédent, donne l’état des paquetages disponibles
(installés, …).
/var/lib/apt/lists/
Ce répertoire contient les informations concernant les paquetages récupérables par apt-
get. Pour chaque couple source/distribution il y a deux fichiers *_Packages et
*_Release. Ces fichiers sont créés ou mis à jour par la commande « apt-get update ».
Exemples
Mettre à jour les informations concernant les paquetages disponibles. Cette opération
est un préalable aux actions suivantes (installation, mise à jour, …). Elle doit être
accomplit régulièrement.
# apt-get update
Simuler l’installation d’un paquetage.
# apt-get –s install adduser
Installer (ou mettre à jour) un paquetage.
# apt-get install adduser
Mettre à jour l’ensemble des paquetages.²
# apt-get -u upgrade
Mettre à jour le système par rapport à rapport à la dernière release.
# apt-get dist-upgrade
Visualiser l’emplacement d’un paquetage.
# apt-get --print-uris install adduser
Supprimer un paquetage et ses fichiers de configuration. Les paquetages
dépendants seront également supprimés.
# apt-get --purge remove adduser
Ajouter un cd-rom spécifique à la liste des emplacements de paquetage (au lieu
d’utiliser le réseau).

8-20 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

# apt-cdrom add
Récupère un paquetage (dans /var/cache/apt/archives/) sans l’installer.
# apt-get –d install netselect
Réinstaller un paquetage (endommagé par exemple).
# apt-get --reinstall install netselect
Supprime les éléments présents dans le cache (par exemple les fichiers paquetages
récemment installés).
# apt-get clean
Rechercher des paquetages.
# apt-cache search chess | head
xboard - An X Window System Chess Board.
xarchon - An X11 version of the game Archon.
phalanx - Chess playing program.
gnome-chess - GNOME Chess
3dchess - 3D chess for X11
gnushogi - A program to play shogi, the Japanese version of chess.
scid - Chess database
pgn-extract - a Portable Game Notation (PGN) extractor
cil - Chess In Lisp. A library for cmucl.
eboard - A graphical chessboard program (BETA VERSION)
Visualiser des informations concernant un paquetage.
# apt-cache show gnome-chess

Références
Man
apt-get(8), dselect(8), dpkg(8), apt-get-cache(8), apt-cdrom(8), dpkg-deb(8), deb(5),
sources.list(5).
Internet
Rechercher des paquetages Debian : http://www.debian.org/distrib/packages
APT-HOWTO : http://www.debian.org/doc/manuals/apt-howto/
Liste des mirroirs Debian : http://www.debian.org/mirror/mirrors_full
Manuel expliquant l’utilisation de la commande dselect :
http://www.debian.org/doc/manuals/dselect-beginner/
Manuel expliquant comment créer un dépôt Debian :
http://www.debian.org/doc/manuals/repository-howto/repository-howto.html

© Eyrolles/Tsoft – Linux Administration 8-21


Module 8 : L’installation d’application

Mises à jour et dépendances


Mise à jour et dépendances

„ Urpmi (Mandrake)
z Rechercher un paquetage: # urpmq ksh
z Installer un paquetage # urpmi pdksh
„ Yum (YellowDog, Fedora, …)
z Rechercher un paquetage # yum search ksh
z Installer un paquetage # yum install pdksh
„ Apt4rpm (Connectiva, RedHat, SuSE, …)
z Rechercher un paquetage # apt-cache search ksh
z Installer un paquetage # apt-cache install pdksh

TSOFT - Linux Administration Module 13 : Les paquetages - 13.5

Introduction
L’installation d’un paquetage échoue si ce dernier nécessite la présence d’autres
paquetages. C’est le grave problème de la gestion des dépendances. D’autre part,
toujours lors de l’installation ou de la mise à jour d’un paquetage, il faut d’abord
récupérer les fichiers paquetages avant de les installer. Dans un monde idéal, ces
différentes opérations, recherche des paquetages disponibles, téléchargement et
installation du paquetage ainsi que des paquetages dépendants, devraient s’effectuer de
manière transparente.
Le système APT de la distribution Debian fut le premier à régler ces problèmes.
Maintenant, pour chaque distribution, il existe des systèmes similaires. L’objet du
présent chapitre est de vous les présenter, principalement Urpmi, Yum et Apt4rpm.
L’outil APT ayant déjà été étudié.
Panorama des solutions
Apt Outil de Debian, repose sur les paquetages Debian (.deb).
Urpmi Outil de Mandrake, repose sur le système RPM.
Yum Outil de Yellowdogs, s’applique aux distributions à base de RPM.
Apt4rpm Outil de Connectiva, c’est une adaptation de APT aux RPM.
Up2date Outil de RedHat destiné aux versions commerciales.
Emerge Outil de Gentoo, c’est une adaptation du système Portage de BSD. Les
paquetages sont sous forme de source. L’installation provoque leur
compilation.
Urpmi
L’outil Urpmi de Mandrake est un logiciel libre (GPL) qui facilite l’installation et la
configuration des paquetages RPM principalement en résolvant les dépendances. L’outil

8-22 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

graphique rmpdrake simplifie à l’extrême son utilisation. Les exemples qui suivent
sont basés sur les commandes en mode texte (urpmi, urpme, …). Les paquetages
peuvent être stockés sur cdrom, dans des fichiers ou sur des sites distants accessibles via
FTP ou HTTP.
Un des grands avantage d’urpmi, c’est que, comme APT dans le cas de Debian, c’est un
outil natif. Il est présent dés l’installation et les sites dépôts de paquetages sont gérés
officiellement par Mandrake.
Fichiers
/etc/urpmi/urpmi.cfg Contient la description des dépôts de paquetages.
/var/li/urpli/list.* Liste des paquetages connus d’Urpmi. Il y a une liste par dépôt
(medium dans le jargon Mandrake).
Exemples
Rechercher le nom d’un paquetage
# urpmq ksh
Les paquetages suivants contiennent ksh :
kdegraphics-kuickshow
libkdegraphics0-kuickshow
pdksh
Installer un paquetage (et tous les paquetages dépendants)
# urpmi pdksh
Veuillez insérer le medium nommé « Installation CD 2 (x86) (cdrom2) »
dans le périphérique [/dev/hdc]
Appuyez sur la touche Entrée quand vous êtes prêts...

installation de /var/cache/urpmi/rpms/pdksh-5.2.14-15mdk.i586.rpm
Préparation... ##################################################
1:pdksh ##################################################
Tester une installation (vérifier si elle est possible)
# urpmi --test telnet-server
installation de /var/cache/urpmi/rpms/telnet-server-krb5-1.3-
3mdk.i586.rpm
Préparation... ##################################################
L'installation est possible
Mettre à jour l’ensemble des paquetages installés
Attention : l’opération peut être longue !
# urpmi --auto --auto-select
tout est déjà installé
Supprimer un paquetage (et tous les paquetages dépendants)
# urpme pdksh
désinstallation de pdksh-5.2.14-15mdk.i586
Ajouter un dépôt de paquetage
# urpmi.addmedia updates \
ftp://ftp.free.fr/pub/Distributions_Linux/Mandrake/\
updates/9.2/RPMS with ../base/hdlist.cz
Mettre à jour les informations concernant les paquetages disponibles
# urpmi.update -a

© Eyrolles/Tsoft – Linux Administration 8-23


Module 8 : L’installation d’application

Connaître l’origine d’un fichier


# urpmf httpd2.conf
apache-conf:/etc/httpd/conf/httpd2.conf

Yum
L’outil Yum (Yellowdog Updater Modified) gère automatiquement les mises à jour des
logiciels des distributions Linux basées sur les RPM. Comme Apt ou Urpmi, il gère les
dépendances des paquetages. Yum est un logiciel libre (GPL) crée par des développeurs
de la distribution Yellowgdog. Il est disponible en standard et prêt à l’emploi dans la
distribution Fedora.
La commande principale est yum. Elle sert à installer, désinstaller, rechercher un
paquetage, etc. A chaque fois que l’on active, elle vérifie si sa base est à jour. Si elle ne
l’est pas, le logiciel télécharge la description des nouveaux paquetages disponibles
Fichiers
/etc/yum.conf Le fichier de configuration de Yum.
/var/cache/yum Les données gérées par Yum.
Exemples
Rechercher un paquetage
# yum search ksh
Gathering header information file(s) from server(s)
Server: Fedora Core 1 - i386 - Base
Server: Fedora Core 1 - i386 - Released Updates
Finding updated packages
Downloading needed headers
Looking in available packages for a providing package
Available package: zsh.i386 0:4.0.7-1.1 from base matches with
Shell semblable à ksh, mais avec des améliorations.
Available package: pdksh.i386 0:5.2.14-23 from base matches with
Clone du domaine public du shell Korn (ksh).
Available package: pdksh.i386 0:5.2.14-23 from base matches with
pdksh
3 results returned
Looking in installed packages for a providing package
No packages found
# yum –C search ksh # la recherche se fait à partir du cache
Installer un paquetage
# yum install pdksh
Gathering header information file(s) from server(s)
Server: Fedora Core 1 - i386 - Base
Server: Fedora Core 1 - i386 - Released Updates
Finding updated packages
Downloading needed headers
Resolving dependencies
Dependencies resolved
I will do the following:
[install: pdksh 5.2.14-23.i386]
Is this ok [y/N]: y
Getting pdksh-5.2.14-23.i386.rpm
pdksh-5.2.14-23.i386.rpm 100% |===================| 180 kB 00:05
Running test transaction:
Test transaction complete, Success!
pdksh 100 % done 1/1

8-24 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

Installed: pdksh 5.2.14-23.i386


Transaction(s) Complete
Mettre à jour un paquetage
# yum update pdksh
...
pdksh is installed and the latest version.
No actions to take
Mettre à jour l’ensemble des paquetages installés
# yum update
...
Resolving dependencies
Dependencies resolved
I will do the following:
[install: kernel 2.4.22-1.2149.nptl.i686]
[update: initscripts 7.42.2-1.i386]
...
[update: pam_krb5 2.0.5-1.i386]
[update: rsync 2.5.7-2.i386]
Is this ok [y/N]: y
Liste des paquetages disponibles
# yum list
...
Name Arch Version Repo
----------------------------------------------------------------
4Suite i386 1.0-0.0.a3 base
Canna i386 3.6-24 base
Canna-devel i386 3.6-24 base
Canna-libs i386 3.6-24 base
ElectricFence i386 2.2.2-16 base
FreeWnn i386 1.11-39 base
FreeWnn-common i386 1.11-39 base
FreeWnn-devel i386 1.11-39 base
...
Supprimer un paquetage
# yum remove pdksh
...
Resolving dependencies
Dependencies resolved
I will do the following:
[erase: pdksh 5.2.14-23.i386]
Is this ok [y/N]: y
Running test transaction:
Test transaction complete, Success!
Erasing: pdksh 1/1
Erased: pdksh 5.2.14-23.i386
Transaction(s) Complete
Nettoyer le cache
# yum clean
...
Cleaning packages and old headers

© Eyrolles/Tsoft – Linux Administration 8-25


Module 8 : L’installation d’application

Apt4rpm
Apt4rpm est une adaptation du logiciel APT de la distribution Debian, pour les
distributions basés sur les RPM de RedHat. Ce logiciel libre a été développé par
l’équipe de la distribution Connectiva.
Le fichier sources.list
Le fichier source.list décrit les dépôts de paquetages.
Redhat
L’exemple qui suit est adapté à des distributions RedHat. Les dépôts mentionnés
correspondent aux dernières versions libres de RedHat. Toute les lignes sont en
commentaire sauf celle correspondant à la version installé (9.0).
# more /etc/apt/sources.list
# List of available apt repositories available from ayo.freshrpms.net.
# This file should contain an uncommented default suitable for your
system.
#
# See http://ayo.freshrpms.net/ for a list of other repositories and
mirrors.
#
# $Id: sources.list,v 1.8 2003/04/16 09:59:58 dude Exp $

# Red Hat Linux 9


rpm http://ayo.freshrpms.net redhat/9/i386 os updates freshrpms
#rpm-src http://ayo.freshrpms.net redhat/9/i386 os updates freshrpms

# Red Hat Linux 8.0


#rpm http://ayo.freshrpms.net redhat/8.0/i386 os updates freshrpms
#rpm-src http://ayo.freshrpms.net redhat/8.0/i386 os updates freshrpms

# Red Hat Linux 7.3


#rpm http://ayo.freshrpms.net redhat/7.3/i386 os updates freshrpms
#rpm-src http://ayo.freshrpms.net redhat/7.3/i386 os updates freshrpms
SuSE
L’exemple qui suit est adapté à une distribution SuSE 9.0.
# more /etc/apt/sources.list
rpm ftp://ftp.gwdg.de/pub/linux/suse/apt SuSE/9.0-i386 suse-
people base update-prpm update kde gnome2 xfree86 mozilla suser-rbos
usr-local-bin suser-kpietrz suser-tcousin suser-scorot suser-sbarnin
suser-ollakka funktronics packman packman-i686 wine suse-projects kde-
unstable security-prpm security
rpm-src ftp://ftp.gwdg.de/pub/linux/suse/apt SuSE/9.0-i386 suse-
people base update-prpm update kde gnome2 xfree86 mozilla suser-rbos
usr-local-bin suser-kpietrz suser-tcousin suser-scorot suser-sbarnin
suser-ollakka funktronics packman packman-i686 wine suse-projects kde-
unstable security-prpm security
Exemples
Mettre à jour la liste des paquetages disponibles
# apt-get update
Get:1 http://ayo.freshrpms.net redhat/9/i386 release [1170B]
Fetched 1170B in 0s (1568B/s)
Get:1 http://ayo.freshrpms.net redhat/9/i386/os pkglist [1357kB]
Get:2 http://ayo.freshrpms.net redhat/9/i386/os release [140B]

8-26 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

Get:3 http://ayo.freshrpms.net redhat/9/i386/updates pkglist [350kB]


Get:4 http://ayo.freshrpms.net redhat/9/i386/updates release [153B]
Get:5 http://ayo.freshrpms.net redhat/9/i386/freshrpms pkglist [151kB]
Get:6 http://ayo.freshrpms.net redhat/9/i386/freshrpms release [157B]
Fetched 1858kB in 30s (60,4kB/s)
Reading Package Lists... Done
Building Dependency Tree... Done
Rechercher un paquetage
# apt-cache search ksh
kdegames - K Desktop Environment - Games
pdksh - A public domain clone of the Korn shell (ksh).
tora - A GUI-based database development program.
zsh - A shell similar to ksh, but with improvements.
bash - The GNU Bourne Again shell (bash) version 2.05b.
kdebase - K Desktop Environment - core files
kdegraphics - K Desktop Environment - Graphics Applications
postgresql-tcl - A Tcl client library for PostgreSQL.
Simuler l’installation d’un paquetage
# apt-get -s install pdksh
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
pdksh
0 packages upgraded, 1 newly installed, 0 removed and 88 not upgraded.
Inst pdksh (5.2.14-21 Red Hat Linux 9:9/Red Hat Freshrpms)
Conf pdksh (5.2.14-21 Red Hat Linux 9:9/Red Hat Freshrpms)
Installer un paquetage (et tous les paquetages dépendants)
# apt-get install pdksh
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
pdksh
0 packages upgraded, 1 newly installed, 0 removed and 88 not upgraded.
Need to get 184kB of archives.
After unpacking 341kB of additional disk space will be used.
Get:1 http://ayo.freshrpms.net redhat/9/i386/os pdksh 5.2.14-21
[184kB]
Fetched 184kB in 3s (48,6kB/s)
Executing RPM (-Uvh)...
warning: /var/cache/apt/archives/pdksh_5.2.14-21_i386.rpm: V3 DSA
signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
1:pdksh ########################################### [100%]
Supprimer un paquetage (et tous les paquetages dépendants)
# apt-get remove pdksh
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
pdksh
0 packages upgraded, 0 newly installed, 1 removed and 88 not upgraded.
Need to get 0B of archives.
After unpacking 341kB disk space will be freed.
Do you want to continue? [Y/n] y
Executing RPM (-e)...

© Eyrolles/Tsoft – Linux Administration 8-27


Module 8 : L’installation d’application

Nettoyer le cache
# apt-get clean
Mettre à jour l’ensemble des paquetages
# apt-get upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be upgraded
XFree86 XFree86-100dpi-fonts XFree86-75dpi-fonts XFree86-Mesa-libGL
XFree86-Mesa-libGLU XFree86-base-fonts XFree86-font-utils XFree86-libs
XFree86-libs-data XFree86-tools XFree86-truetype-fonts XFree86-twm
XFree86-xauth XFree86-xdm XFree86-xfs bash cdda2wav cdrecord coreutils
cups cups-libs cvs eog ethereal evolution foomatic gaim gdm
ghostscript glibc glibc-common glibc-devel gnupg gstreamer gstreamer-
tools gtkhtml hpijs httpd iproute kdebase kdegraphics kdelibs krb5-
devel krb5-libs lftp libpcap mkisofs mutt net-snmp netpbm netpbm-
progs nfs-utils nmap nscd openssh openssh-askpass openssh-askpass-
gnome openssh-clients openssh-server openssl openssl-devel pam_smb pan
perl perl-CPAN printman redhat-config-date redhat-config-network
redhat-config-network-tui redhat-config-printer redhat-config-printer-
gui rhpl rsync samba samba-client samba-common sane-backends sendmail
slocate tcpdump unzip up2date up2date-gnome xinetd xpdf
The following packages have been kept back
grip gstreamer-plugins gthumb
85 packages upgraded, 0 newly installed, 0 removed and 3 not upgraded.
Need to get 174MB of archives.
After unpacking 2649kB of additional disk space will be used.
Do you want to continue? [Y/n]

Références
Man – Urpmi
urpmi(8), urpme(8), urpmi.addmedia(8), urpmi.update(8), urpmi.removemedia(8),
gurpmi(8), urpmf(8), urpmq(8), rpmdrake(8)
Internet – Urpmi
Une introduction à Urpmi :
http://www.linux-mandrake.com/cooker/urpmi.html
Le site officiel de Urpmi :
http://www.urpmi.org/
Howto :
http://myweb.tiscali.co.uk/eggnbacon/docs/urpmi-howto/index.html
Man –Yum
Yum(8), yum-arch(8), yum.conf(5)
Internet –Yum
Howto :
http://www.phy.duke.edu/~rgb/General/yum_HOWTO/yum_HOWTO/
Téléchargement
http://apt.freshrpms.net
Man – apt4rpm
apt-cache(8), apt-get(8), apt.conf(5), sources.list(5)

8-28 © Eyrolles/Tsoft – Linux Administration


Module 8 : L’installation d’application

Internet – apt4rpm
Téléchargement :
http://apt.freshrpms.net
Howto :
http://bazar.conectiva.com.br/~godoy/apt-howto/
Dépôts libres pour Redhat et Fedora :
http://apt-rpm.tuxfamily.org

© Eyrolles/Tsoft – Linux Administration 8-29


Module 8 : L’installation d’application

Atelier 8 : Les paquetages


Atelier 10 : La gestion des périphériques

Objectif :
„ Apprendre à gérer les paquetages de
Linux

Durée : 25 minutes.

TSOFT - Linux Administration Module 13 : Les paquetages - 13.7

Exercice n°1
Affichez les paquetages installés, combien sont-ils ?

Exercice n°2
Affichez les paquetages du CD-ROM d’installation, combien sont-ils ?

Exercice n°3
Affichez les informations du paquetage dont la commande bash fait partie.

Exercice n°4
Installez le paquetage « gnuchess ». Affichez sa description au préalable !

Exercice n°5
Désinstaller le paquetage gnuchess.

Exercice n°6
Installez le paquetage « gnuchess » en utilisant un outil de type APT (urpmi, yum ou
apt-get).

8-30 © Eyrolles/Tsoft – Linux Administration

You might also like