Chapitre2 Partie1
Chapitre2 Partie1
Chapitre2 Partie1
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
– 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
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
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)
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
• désinstaller le pkg et ses fichier de config (ce n’est pas tjs vrai):
# dpkg --purge pkg ou # dpkg -P pkg
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.
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:
Ou
# 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)