31
Linux Administration JEAN-FRANÇOIS BOUCHAUDY GILLES GOUBET E Y R O L L E S Best f o

Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

  • Upload
    buianh

  • View
    231

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Linux Administration

E Y R O L L E S

Best f o

J.-F

.B

OU

CH

AU

DY

G.

GO

UB

ET

Acquérir rapidement des compétences professionnellesen administration Linux

Réédition au format semi-poche de la 4e édition de Linux Administra-tion, initialement publiée dans la collection « Les guides de formationTsoft ». Considéré par de nombreux administrateurs Linux comme unedes meilleures références en langue française sur le sujet, ce guided’autoformation de 800 pages vous aidera à maîtriser rapidement tousles aspects de l’administration d’un serveur Linux : gestion des fichierset des utilisateurs, sauvegarde et restauration, administration réseau, sé-curité, optimisation des performances, etc.

Plus de 170 exercices corrigés vous permettront de tester vos connais-sances et de vous entraîner aux tâches qui constituent le quotidien d’unadministrateur système et réseau.

Les auteurs ont choisi de mettre l’accent sur le mode commande, plu-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érantdans un contexte professionnel, et offre l’avantage d’une certaine in-dépendance vis-à-vis des distributions.

Au sommaire

Linux et ses distributions • Gestion des utilisateurs • Fichiers et systèmes defichiers • Gestion de l’espace disque • Sauvegarde • Gestion des processus• Installation d’applications (paquetages RPM et Debian) • Arrêt et démarrage• Gestion de réseau (NFS et NIS, TCP/IP, DHCP, DNS, Samba…) • Gestion del’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.

Jean-François Bouchaudy Après des études de doctorat en biophysique, Jean-FrançoisBouchaudy s’est orienté versl’informatique en se spécialisantdans le développementd’applications en C etd’applications TCP/IP sous Unix. Il anime des formations sur lesthèmes suivants : administrationUnix et Linux, programmationsystème Unix, langages C, C++ et Perl, TCP/IP, Samba, sécuritéréseau, etc.

Gilles Goubet Diplômé de l’ESIEE, Gilles Goubet est chef de projets(développement d’applications en C, d’applications réseaux et d’applications temps réel). Il anime des formations Unix,langage C, C++, Java, ADA,temps réel.

Best

fo

Linu

xA

dmin

istr

atio

n

Cod

e éd

iteur

: G

12074

ISB

N :

978-2

-212-1

2074-5

25 €

97

82

21

21

20

74

5

Con

cept

ion

Nor

d Com

po

Pantone rhodamine red C - Pantone 877 (argent)

Annexes en libre téléchargement surwww.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.

@Linux

Administration

J E AN-FR ANÇOI S B O U C HAU DYG I LLE S G O U B ET

E Y R O L L E S

Bestf o12074_Linux_BestOF_V5 17/01/07 10:09 Page 1

Page 2: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

© Eyrolles/Tsoft – Linux Administration 8-1

8Module 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

• Les tar ball

• Les paquetages (« packages »)rpm

• La commande en mode texte rpm .

• Les paquetages debian

Page 3: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-2

Sources et paquetages

Module 13 : Les paquetages - 13.2TSOFT - Linux Administration

Sources et paquetages

Installation d’application à partir des sources

Tarball# tar xvzf logiciel.tar.gz# cd logiciel ; ./configure# make ; make install

Patch# gunzip –c patch.gz | patch –p0

CVS

Installation d’application sous forme de paquetages

Les paquetages RedHat (RPM)

Les paquetages Debian

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

Page 4: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-3

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

Page 5: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-4

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.

Page 6: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-5

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 ***************

Page 7: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-6

*** 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

Page 8: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-7

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:[email protected]:/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.

Page 9: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-8

• 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, …

Page 10: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-9

Les paquetages RedHat (RPM)

Module 13 : Les paquetages - 13.3TSOFT - Linux Administration

La commande 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

La mise en œuvre de rpmLa mise en œuvre de rpm

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.

Page 11: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-10

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%]

Page 12: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-11

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

Page 13: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-12

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

Page 14: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-13

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*

Page 15: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-14

# 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

Page 16: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-15

Les paquetages debian

Module 13 : Les paquetages - 13.4TSOFT - Linux Administration

Les paquetages Debian

La commande dpkgListe de paquetages installés# dpkg -lLister les fichiers d’un paquetage# dpkg –L adduser

La commande apt-getMettre à jour la liste des paquetages disponibles# apt-get updateInstaller un paquetage# apt-get install adduserRechercher un paquetage# apt-cache search chess

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, …

Page 17: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-16

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.

Page 18: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-17

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

Page 19: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-18

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 <[email protected]> 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. .

Page 20: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-19

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

Page 21: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-20

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).

Page 22: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-21

# 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

Page 23: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-22

Mises à jour et dépendances

Module 13 : Les paquetages - 13.5TSOFT - Linux Administration

Mise à jour et dépendances

Urpmi (Mandrake)

Rechercher un paquetage: # urpmq ksh

Installer un paquetage # urpmi pdksh

Yum (YellowDog, Fedora, …)

Rechercher un paquetage # yum search ksh

Installer un paquetage # yum install pdksh

Apt4rpm (Connectiva, RedHat, SuSE, …)

Rechercher un paquetage # apt-cache search ksh

Installer un paquetage # apt-cache install pdksh

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

Page 24: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-23

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

Page 25: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-24

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

Page 26: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-25

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

Page 27: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-26

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]

Page 28: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-27

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)...

Page 29: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-28

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)

Page 30: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-29

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

Page 31: Eyrolles Linux Administration V4 · les aspects de l’administration d’un serveur Linux : gestion des fichiers et des utilisateurs, sauvegarde et restauration, administration réseau,

Module 8 : L’installation d’application

© Eyrolles/Tsoft – Linux Administration 8-30

Atelier 8 : Les paquetages

Module 13 : Les paquetages - 13.7TSOFT - Linux Administration

Atelier 10 : La gestion des périphériques

Objectif :

Apprendre à gérer les paquetages de Linux

Durée : 25 minutes.

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).