Vous êtes sur la page 1sur 31

fBest

EYROLLES

JEAN-FRANÇOIS BOUCHAUDY GILLES GOUBET

Linux

Administration

   
BOUCHAUDY GILLES GOUBET Linux Administration   © Groupe Eyrolles 2007, ISBN : 978-2-212-12074-5  

Les tar ball

Les paquetages (« packages »)rpm

La commande en mode texte rpm .

Les paquetages debian

Module 8

Objectifs

8

: L’installation d’application

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

Module 8 : L’installation d’application

Sources et paquetages

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

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

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

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.

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

Connexion vers apache.crihan.fr[195.221.21.36]:80 requête HTTP transmise, en attente de la réponse Longueur: 2,435,809 [application/x-tar]

complété.

connecté.

200

OK

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

$ diff -c f1.txt f2.txt

*** f1.txt --- f2.txt ***************

" >> f2.txt

Fri Oct 12 14:36:31 2001 Fri Oct 12 14:39:42 2001

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

$ /a_jour

find

/a_jour

/a_jour/main.c

/a_jour/libz

/a_jour/libz/mult.c

/a_jour/libz/add.c

$ diff -u -r

diff -u -r ./libz/add.c --- ./libz/add.c

+++

@@ -1,3 +1,4 @@ +/* ==== add.c === */ int add(int x, int y ) { return x+y;

/a_jour

/a_jour/libz/add.c 2004-02-18 17:08:27.897275488 +0100 2004-02-18 16:41:33.649678424 +0100

/a_jour/libz/add.c

}

diff -u -r ./main.c

--- ./main.c

/a_jour/main.c

2004-02-18 17:08:18.814656256 +0100

+++

@@ -1,3 +1,4 @@ +/* === main.c ==== */

/a_jour/main.c

main() {

int a=3,b=4,c; c = add(a,b);

2004-02-18 16:41:13.269776640 +0100

Only in .: patch.gz

$ diff -u -r

/a_jour

|gzip > patch.gz

Module 8 : L’installation d’application

Module 8 : L’installation d’application Sur le système cible, l’administrateur récupère le fichier patch.gz et

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

$ cvs login

password :

/usr/samba_src

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.

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

Module 8 : L’installation d’application

Les paquetages RedHat (RPM)

La commande rpm

d’application Les paquetages RedHat (RPM) La commande rpm Installer un paquetage # rpm -i le_paquetage.rpm Retirer

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.

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

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

porky.devel.redhat.com

Build Host:

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

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

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*

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

Module 8 : L’installation d’application

Les paquetages debian

Les paquetages Debian

La commande dpkg

Liste de paquetages installés

# dpkg -l

Lister les fichiers d’un paquetage

# dpkg –L adduser

La commande apt-get

Mettre à jour la liste des paquetages disponibles

# apt-get update

Installer un paquetage

# apt-get install adduser

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

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.

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

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

# dpkg -l | head

Desired=Unknown/Install/Remove/Purge/Hold

\*

|more

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

.

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

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

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

Module 8 : L’installation d’application

Mises à jour et dépendances

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

Installer un paquetage

TSOFT - Linux Administration

# apt-cache search ksh

# apt-cache install pdksh

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

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

/var/li/urpli/list.*

(medium dans le jargon Mandrake).

Contient la description des dépôts de paquetages.

Liste des paquetages connus d’Urpmi. Il y a une liste par dépôt

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

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

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

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

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

ftp://ftp.gwdg.de/pub/linux/suse/apt SuSE/9.0-i386 suse-

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]

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 Building Dependency Tree

Done

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 Building Dependency Tree

The following NEW packages will be installed:

Done

Done

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 Building Dependency Tree

The following NEW packages will be installed:

Done

Done

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%] ########################################### [100%]

1:pdksh

Supprimer un paquetage (et tous les paquetages dépendants)

# apt-get remove pdksh

Reading Package Lists Building Dependency Tree

The following packages will be REMOVED:

Done

Done

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)

Module 8 : L’installation d’application

Nettoyer le cache

# apt-get clean

Mettre à jour l’ensemble des paquetages

# apt-get upgrade

Reading Package Lists Building Dependency Tree

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]

Done

Done

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)

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

Module 8 : L’installation d’application

Atelier 8 : Les paquetages

Atelier 10 : La gestion des périphériques

: Les paquetages Atelier 10 : La gestion des périphériques Objectif : Apprendre à gérer les

Objectif :

Apprendre à gérer les paquetages de Linux

Durée : 25 minutes. 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).