Chapitre2 Partie1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 33

Chapitre 2

Gestion des logiciels


Qu'est-ce qu'un package ?
C'est un fichier

(une archive, un peu comme un fichier .tar ou .zip)


qui contient tous les fichiers appartenant à une application,
une bibliothèque, etc. ainsi que des scripts de contrôle qui
sont exécutés lors de l'installation ou de la désinstallation
de l'application.

Ce fichier contient également toutes les dépendances à


d'autres applications, bibliothèques, etc.

Note : on parle indifféremment de package, paquetage ou même


paquet pour désigner le fichier qui contient l'ensemble des fichiers d'un
programme
Système de gestion de packages
permet d'effectuer différentes opérations sur les paquets disponibles :

• Installation (création du paquet binaire), Maj et désinstallation ;

• Maintien de la base de données des packages;

• Utilisation des paquets provenant de supports variés (CD


d'installation, dépôts sur internet, partage réseau…) ;

• Vérification des sommes de contrôle de chaque paquet installé ;

• Vérification des dépendances logicielles afin d'obtenir une version


fonctionnelle d'un paquetage ;
La gestion des paquetages
avec RPM
• RPM (Red Hat Package Manager) est un outil de gestion de
paquetages fonctionnant sous RedHat, comme sur d’autres
distributions (Suse, Mandrake …) et UNIX
• Il permet notamment l’installation, la suppression, la mise à jour,
l’interrogation et la vérification d’un paquetage
• Il maintient une base de données des paquetages installés et de
leurs fichiers ;
• durant les mises à jour, les fichiers de configuration personnalisés
sont conservés
• Les paquetages RPM ont généralement des noms composés :

kernel-smp-2.2.12-41.i386.rpm
nom du paquetage Architecture (i586-amd64)
version Changement mineur
(maintenance)
La gestion des paquetages
avec RPM
Exemple:
samba-server-3.0.25b-4.5mdv2008.0.x86_64.rpm

Remarque:
Un package (RPM) est développé pour tourner sur une architecture
(CPU) et une distribution linux.

Vous pouvez toujours essayer d’installer un package non conçu pour une
distribution donnée. Mais attendez vous à tous types de surprises.
La commande RPM
• Utilisation: Commande en mode texte
• Syntaxe de la commande :
rpm [opération][options] [fichier-package|nom-package]
Exemples:
# rpm –Uvh samba-server-3.0.25b-4.5mdv2008.0.x86_64.rpm
# rpm –ivh samba-server-3.0.25b-4.5mdv2008.0.x86_64.rpm
# rpm –e samba-server
Exemples:
# rpm –qi samba-server

Name : samba-server Relocations: (not relocatable)


Version : 3.0.25b Vendor: Mandriva
Release : 4.5mdv2008.0 Build Date: Tue 27 May 2008➦
08:39:24 PM EDT
Install Date: Sat 31 May 2008 12:15:20 PM EDT Build Host:➦
linsec.homelinux.org
Group : Networking/Other Source RPM:➦
samba-3.0.25b-4.5mdv2008.0.src.rpm
Size : 13524400 License: GPL
Signature : DSA/SHA1, Tue 27 May 2008 09:38:42 PM EDT,➦
Key ID 9aa8d0d022458a98
Packager : Mandriva Linux Security Team <[email protected]>
URL : http://www.samba.org
Summary : Samba (SMB) server programs
Installation avec RPM
Étapes :

– Télécharger le rpm
– Utiliser la commande rpm
– Résoudre les dépendances s’il y en a !
Extraction de données d’un RPM
Exemple d’utilité: récupération d’un fichier de configuration

# rpm2cpio samba-server-3.0.25b-4.5mdv2008.0.x86_64.rpm > samba.cpio


# cpio -i --make-directories < samba.cpio

Ou
# rpm2cpio samba-server-3.0.25b-4.5mdv2008.0.x86_64.rpm | cpio –i
--make-directories

Attention: Ne pas écraser les fichiers que vous voulez garder (ne pas
extraire dans « / »)
Gestion des paquetages avec yum

• C’est un gestionnaire de paquetages évolué gérant les dépendances:

• Disons que vous voulez installer le logiciel X. Cependant il se trouve


qu'il ne peut fonctionner sans les logiciels Y et Z. RPM refusera
l'installation de X en vous signalant ce problème de dépendance.
Yum en revanche, vous proposera d'installer automatiquement les
logiciels Y et Z en même temps que le logiciel X.
Gestion des paquetages avec yum

Syntaxe:
# Yum [option] [command] [package…]

Exemple:
# yum install samba-server
# yum update samba-server
# yum remove samba-server
# yum info samba-server (= # rpm –qi samba-server)

Pour plus de détails: tableau page 53


Gestion des paquetages avec yum

Yumdownloader permet de télécharger un package et le sauver dans


le répertoire courant:
# Yumdownloader package

Interface graphique: kyum et yumex


# yum install kyum
# yum install yumex

Exercice 2.1 (page 55)


Configuration de RPM et Yum
RPM:
/usr/lib/rpm/rpmrc
Vous ne devez pas toucher à ce fichier.
Il faut créer un fichier /etc/rpmrc (pour faire des chgts glogaux)
et /home/user/.rpmrc (pour faire des chgts pour user)

Yum:
/etc/yum.conf = (entre autres URLs de téléchargement)
/etc/yum.repos.d/ (Voir le contenu du dossier)
Utilisation des packages de debian
dpkg (Debian PacKaGe) est un outil logiciel en ligne de commande chargé
de l'installation, la création, la suppression et la gestion des paquets Debian .

Quelques options

• installer le package toto.deb :


# dpkg -i toto.deb

• forcer l'installation du package toto.deb :


# dpkg -i --force-overwrite toto.deb

• avoir des infos sur fichier_pkg.deb pour un package non installé:


# dpkg -I fichier_pkg.deb (i majuscule)
Utilisation des packages de debian
• désinstaller le package toto :
# dpkg -r toto

• désinstaller le pkg et ses fichier de config (ce n’est pas tjs vrai):
# dpkg --purge pkg ou # dpkg -P pkg

• avoir des informations sur le package toto :


# dpkg -p toto

• quel package à installé le fichier titi.conf ? :


# dpkg -S titi.conf

• où sont les fichiers du package prog ? :


# dpkg -L prog
Utilisation des packages de debian
• lister tous les paquetages installés :
# dpkg –l (L minuscule)

• décompresser le package toto.deb sans l'installer :


# dpkg -x toto.deb

• lancer l'outil de reconfiguration de prog :


# dpkg-reconfigure prog
Utilisation des packages de debian
APT (Advanced Packaging Tool) : gère les dépendances entre les
différents packages et permet l’installation et la mise à jour des
packages par simple téléchargement

• mettre à jour la liste des packages disponibles :


# apt-get update

• Mettre à jour les packages en se basant sur la liste des


packages disponibles :
# apt-get upgrade

• installer le package toto et tous les packages dont il dépend


# apt-get install toto
Utilisation des packages de debian
• désinstaller le package toto avec ses dépendances mais en
gardant les fichiers de configuration :
# apt-get remove toto

• Idem, mais en supprimant les fichiers de configuration :


# apt-get remove --purge toto
Utilisation des packages de debian
apt-cache: affiche des informations à partir de la base des données
des packages installés

# apt-cache showpkg samba = informations sur samba


# apt-cache stats = statistiques sur les packages
# apt-cache unmet = informations sur les librairies ou les packages
manquants
# apt-cache depends samba = les dépendances de samba
# apt-cache pkgnames = liste de tous les packages installés sur le système
(# apt-cache pkgnames sa = liste des packages installés et commençants
par « sa »)

Exercice 2.2 page 66


Utilisation des packages de debian

ll existe d'autres outils Debian qui permettent la gestion des paquets:


synaptic, dselect et aptitude

pour les installer :


# apt-get install synaptic dselect aptitude

On les lance grâce à:


# aptitude
ou
# dselect
ou encore
# synaptic
Utilisation des packages de debian
aptitude est "quasi graphique" :

il fonctionne dans un terminal, mais les menus sont accessibles à la


souris.

Il permet de faire des recherches sur une partie du nom du paquet, de


voir pour chaque paquet ceux dont il dépend, ceux qui dépendent de
Lui, etc etc.

dselect possède un menu en mode texte, et peut être déroutant au


début. Il a tendance à laisser sa place à aptitude.
Configuration de dpkg et apt-get
La configuration initiale est suffisante. Mais il est bon de savoir que:

- /etc/dpkg/dpkg.cfg et ~/.dpkg.cfg permettent d’agir sur la


configuration de dpkg

- /etc/apt/sources.list (liste des URL des téléchargements)


et /etc/apt/apt.conf pour configurer APT.

Et
- /var/lib/dpkg : liste des packages installés.
Conversion d’un format
de packages à un autre
Utilisation de « alien »:
Conversion entre packages RPM, packages Debian, packages Stampede
et tarballs.

Remarque: La conversion entre 2 formats de packages nécessite


l’installation des 2 outils de gestion de packages correspondants.

Installation de alien:
#apt-get install alien (ou autrement en fct de la distribution)

Syntaxe:
# alien [options] file[...]
Conversion d’un format
de packages à un autre
Options:
--to-deb, --to-rpm, --to-slp et --to-tgz

Exemple:
# alien --to-rpm someprogram-1.2.3-4_i386.deb
# alien --install binary-tarball.tar.gz
Dépendances et conflits
entre packages
Problèmes de dépendances

Quelques cas:
• Librairies ou packages requis manquants.
• Librairies ou packages requis incompatibles
• Duplication des fichiers (suite à l’installation de packages différents)
• Noms de packages inadéquats (entre distributions)

Quelques solutions:
• Forcer l’installation
(# rpm -i apackage.rpm --nodeps => ignorer les dépendances)
(# rpm -i apackage.rpm --force => forcer l’installation pour d’autres cas
d’erreurs (exemple: conflit avec un autre package))
• MAJ ou remplacement du package
Dépendances et conflits
entre packages
• Reconstruire (rebuild) le package
(# rpmbuild --rebuild apackage.src.rpm = télécharger la source)
• Récupérer une autre version du package à installer

Un autre problème:
Si le package (service) est conçu pour une distribution autre que celle
Utilisée => Lancement automatique du service n’est pas assuré
Gestion des librairies partagées

Avantages:
• Programme avec une taille réduite.
• Amélioration au niveau de la librairie => impact sur le programme.

Complications:
• MAJ de la librairie => incompatibilité avec des programmes
(Linux garde les anciennes librairies (le nom contient le numéro de version) )
(Et écrasement ssi la compatibilité est sûre)
• Localisation des librairie par le programme.
(à travers un fichier de configuration ou une variable d’environnement)
• Nombre énorme de librairies
• Un problème sur une librairie => blocage de plusieurs programmes et peut
être le système en entier
Gestion des librairies partagées
Localisation des fichiers des librairies:
Si au sein du programme la librairie est appelée sans indication de son
chemin complet, l’installation du programme doit prévoir de:

-configurer le fichier de configuration des librairies (permanente)


# vi /etc/ld.so.conf (contient :include /etc/ld.so.conf.d/*.conf)
⇒ # ldconfig (pour que les chgts soit pris en considération)

Ou

-changer la variable d’environnement (volatile=>après un redémarrage)


# export LD_LIBRARY_PATH=/usr/local/testlib:/opt/newlib
⇒ # ldconfig (n’est pas nécessaire)
Gestion des librairies partagées
Commandes de gestion des librairies:

# ldd /bin/ls (Afficher les dépendances des librairies partagées)

librt.so.1 => /lib/librt.so.1 (0x0000002a9566c000)


libncurses.so.5 => /lib/libncurses.so.5 (0x0000002a95784000)
libacl.so.1 => /lib/libacl.so.1 (0x0000002a958ea000)
libc.so.6 => /lib/libc.so.6 (0x0000002a959f1000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0000002a95c17000)
/lib64/ld-linux-x86-64.so.2 (0x0000002a95556000)
libattr.so.1 => /lib/libattr.so.1 (0x0000002a95dad000)

# ldconfig
Rafraîchissement du cache des librairies
(le fichier /etc/ld.so.cache=binaire)
Gestion des librairies partagées
Un cas de problème:
Suite au lancement d’un programme => message=librairie manquante

Solution:
-Si la librairie n’est pas installé:
⇒ l’installer
Sinon:
Si elle est repérable grâce à la commande « find »
⇒configurer le fichier de config des libs ou LD_LIBRARY_PATH
Sinon:
Si le programme a utilisé la librairie sous un autre nom (# ldd)
⇒Créer un lien symbolique (# ln -s biglib.so.5.2 biglib.so.5
biglib.so.5 va être la lien symbolique de biglib.so.5.2)

Vous aimerez peut-être aussi