Outils pour utilisateurs

Outils du site


distributions_rpm:introduction_a_rpm

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
distributions_rpm:introduction_a_rpm [2009/03/15 00:03] – créée rootdistributions_rpm:introduction_a_rpm [2010/01/15 17:04] (Version actuelle) root
Ligne 1: Ligne 1:
-== Gestion des paquets RPM ==+====== Gestion des paquets RPM ======
  
-'''Installation de package :'''+**Installation de package :**
 commandes : commandes :
-* rpm -i/--install : installe sans remplacer une version précédente+  * **rpm -i/--install** : installe sans remplacer une version précédente
  
-'''Options :''' +**Options :** 
-* -vh : pour voir la progression de l'installation +  * **-vh** : pour voir la progression de l'installation 
-* --test : teste juste les conflits potentiels+  * **--test** : teste juste les conflits potentiels.
  
-utilisation +  * **rpm -U/--upgrade** : installe ou remplace un package 
-très peu utilisé, sauf pour l'installation d'un nouveau noyau, sans supprimer l'ancien +  * **rpm -F/--freshen** : installe (et remplace) un package seulement si une version était déjà installée
-mise a jour +
-commandes+
  
-rpm -U/--upgrade installe ou remplace un package +**Attention il y a des sécurités :** 
-rpm -F/--freshen installe (et remplace) un package seulement si une version était déjà installée+  conflits de fichiers : un fichier ne peut appartenir a plusieurs packages 
 +  * gestion des versions : on ne peut mettre a jour qu'avec une version >= a l'ancienne
  
-'''Attention il y a des sécurités :''' +Les fichiers de configuration ne sont pas écrasés ils sont renommés soit en //.rpmsave//, soit en //.rpmnew//
-* conflits de fichiers : un fichier ne peut appartenir a plusieurs packages +
-* gestion des versions on ne peut mettre a jour qu'avec une version >= a l'ancienne+
  
-Les fichiers de configuration ne sont pas écrasés : ils sont renommés soit en .rpmsave, soit en .rpmnew +**Options :**
- +
-'''Options :'''+
  
 Les mêmes que pour l'installation avec en plus : Les mêmes que pour l'installation avec en plus :
-* --oldpackage : force un retour arrière sur la version +  * **--oldpackage** : force un retour arrière sur la version 
-* --replacepkgs : force une réinstallation +  * **--replacepkgs** : force une réinstallation 
-* --relocate : permet de "reloger" des fichiers, c'est-à-dire les installer a un autre emplacement que celui prévu par le packager. Ne marche pas avec tous les packages, ni avec toutes les versions de rpm.+  * **--relocate** : permet de "reloger" des fichiers, c'est-à-dire les installer a un autre emplacement que celui prévu par le packager. Ne marche pas avec tous les packages, ni avec toutes les versions de rpm.
  
 options fortement déconseillées, sinon risque de se trouver avec un système instable a court terme ! options fortement déconseillées, sinon risque de se trouver avec un système instable a court terme !
-* --nodeps : ne pas tenir compte des dépendances +  * **--nodeps** : ne pas tenir compte des dépendances 
-* --force : forcer l'installation+  * **--force** : forcer l'installation
  
-'''Suppression de package :''' +**Suppression de package :** 
-* rpm -e/--uninstall+  * **rpm -e/--uninstall**
  
-'''Sécurité souvent négligées, mais a mon avis très importantes :'''+**Sécurité souvent négligées, mais a mon avis très importantes :**
  
-* rpm -K/--checksig : à faire avant toute installation, permet de vérifier la signature du package, et donc que le package n'a pas été corrompu par un pirate +  * **rpm -K/--checksig** : à faire avant toute installation, permet de vérifier la signature du package, et donc que le package n'a pas été corrompu par un pirate 
-* rpm -V/--verify : a faire pour voir si quelqu'un/quelque chose n'a pas modifié des fichiers du package (taille, droits, checksum ...)+  * **rpm -V/--verify** : a faire pour voir si quelqu'un/quelque chose n'a pas modifié des fichiers du package (taille, droits, checksum ...)
  
-Attention : +**Attention :** 
-* pour utiliser rpm -K, il faut avoir "importé" la clef publique du packager dans la base de l'usager courant (gpg --import RPM-GPG-KEY pour la distribution). +  * pour utiliser rpm -K, il faut avoir "importé" la clef publique du packager dans la base de l'usager courant (gpg --import RPM-GPG-KEY pour la distribution). 
-* en cas de problème du type "mon logiciel x ne marche plus", rpm -V permet de contrôler ce qui a changé depuis l'installation+  * en cas de problème du type "mon logiciel x ne marche plus", rpm -V permet de contrôler ce qui a changé depuis l'installation
  
-'''Interrogation :'''+**Interrogation :**
  
-* rpm -q/--query+  * **rpm -q/--query**
  
 Utilisations simples : Utilisations simples :
-* rpm -q package : renvoie $nom-$version-$release +  * **rpm -q package** : renvoie $nom-$version-$release 
-* rpm -qi package : affiche une page d'information sur le package +  * **rpm -qi package** : affiche une page d'information sur le package 
-* rpm -ql package : affiche la liste des fichiers du package +  * **rpm -ql package** : affiche la liste des fichiers du package 
-* rpm -qf fichier : affiche le package propriétaire du fichier +  * **rpm -qf fichier** : affiche le package propriétaire du fichier 
-* rpm -q --requires package : affiche les dépendance du package +  * **rpm -q --scripts package** : affiche les scripts pré et post-installation du paquet 
-* rpm -q --provides package : affiche ce que fournit le package +  * **rpm -q --requires package** : affiche les dépendance du package 
-* rpm -q --whatrequires /usr/bin/ogg123 : affiche les packages qui ont besoin de "/usr/bin/ogg123" +  * **rpm -q --provides package** : affiche ce que fournit le package 
-* rpm -q --whatprovides /usr/bin/ogg123 : affiche le package qui fournit "/usr/bin/ogg123" +  * **rpm -q --whatrequires /usr/bin/ogg123** : affiche les packages qui ont besoin de "/usr/bin/ogg123" 
-* rpm -q --changelog package : affiche l'historique des modifications du package +  * **rpm -q --whatprovides /usr/bin/ogg123** : affiche le package qui fournit "/usr/bin/ogg123" 
-* rpm -qa : renvoie la liste de tous les packages installés. utilise souvent avec un grep : rpm -qa | grep -i rpm +  * **rpm -q --changelog package** : affiche l'historique des modifications du package 
-* rpm -qa --last : pour trier par date d'installation +  * **rpm -qa** : renvoie la liste de tous les packages installés. utilise souvent avec un grep : rpm -qa | grep -i rpm 
-* rpm -qp fichier_rpm : interroge un fichier plutôt que la base, par exemple pour connaître ses dépendances : rpm -qpR fichier_rpm+  * **rpm -qa --last** : pour trier par date d'installation 
 +  * **rpm -qp fichier_rpm** : interroge un fichier plutôt que la base, par exemple pour connaître ses dépendances : rpm -qpR fichier_rpm
  
  
-'''shell-script :'''+ 
 +**shell-script :**
 Toutes les commandes d'interrogation sont en fait des macros, pour simplifier les requêtes courantes. En fait chaque package est décrit par un ensemble d'attributs (117) dans la base de données rpm, qui peuvent être interrogés séparément. Toutes les commandes d'interrogation sont en fait des macros, pour simplifier les requêtes courantes. En fait chaque package est décrit par un ensemble d'attributs (117) dans la base de données rpm, qui peuvent être interrogés séparément.
 Exemples : Exemples :
-* récupérer la liste ordonnée par taille des packages installés : 
- rpm -qa --queryformat "%{SIZE} %{NAME} %{VERSION}\n" | sort -n 
-* recuperer la liste ordonnée par date des packages installés : 
- rpm -qa --queryformat "%{INSTALLTIME:date} %{NAME} %{VERSION}\n" | sort -n 
-* pour plus d'informations sur les queryformat : 
- rpm -q --querytags 
  
 +  * récupérer la liste ordonnée par taille des packages installés :
 +
 +  rpm -qa --queryformat "%{SIZE} %{NAME} %{VERSION}\n" | sort -n
 +
 +  * recuperer la liste ordonnée par date des packages installés :
 +
 +  rpm -qa --queryformat "%{INSTALLTIME:date} %{NAME} %{VERSION}\n" | sort -n
 +
 +  * pour plus d'informations sur les queryformat :
 +
 +  rpm -q --querytags
 +
 +
 +====== Interrogation ======
 +
 +Pour interroger la base de données sur les packages installés, utilisez la commande rpm -q. Utilisez rpm -q foo pour afficher le nom, la version et le numéro de release du package foo :
 +
 +$ rpm -q foo
 +
 +rpm-2.0-1
 +
 +Au lieu d'indiquer le nom du package, vous pouvez utilisez les options suivantes :
 +
 +* -a interroge tous les packages installés
 +
 +* -f <file> interroge tous les packages qui possèdent le fichier <file>
 +
 +* -F effectue la même fonction que -f mais utilise l'entrée standard pour le nom de fichier (ex : find /usr/bin | rpm -qF)
 +
 +* -p <packagefile> interroge le package <packagefile>
 +
 +* -P effectue la même fonction que -p mais utilise l'entrée standard pour le nom de package (ex : find /mnt/cdrom/RedHat/RPMS | rpm -qP)
 +
 +Pour préciser les information à afficher, utilisez les options suivantes :
 +
 +* -i affiche le nom, la description, le numéro de release, la date de création, la date d'installation, ... du package
 +
 +* -l affiche la liste de fichiers contenus dans le package
 +
 +* -s décrit l'état des fichiers du packages (normal ou absent)
 +
 +* -d affiche la liste des fichiers de documentations (pages du man, pages info, REDAME, ...)
 +
 +* -c affiche la liste des fichiers de configuration (sendmail.cf, passwd, inittab, ...)
 +
 +Pour obtenir les listes de fichiers dans le même format qu'utilise la commande ls -l, utilisez l'option -v.
 +
 +====== Vérification ======
 +
 +
 +La vérification permet de comparer les fichiers installés avec ceux du package d'origine. La comparaison se fait sur la taille, sur la somme MD5, sur les permissions, sur le type, sur le propriétaire et sur le groupe de chaque fichier.
 +
 +rpm -V vérifie un package. Vous pouvez combiner la vérification avec d'autres options. La commande rpm -V foo vérifie que tous les fichiers de ce package sont identiques à ceux d'origine. Exemples :
 +
 +* Pour vérifier qu'un package contient un fichier :
 +
 +rpm -Vf /bin/vi
 +
 +* Pour vérifier tous les packages installés :
 +
 +rpm -Va
 +
 +* Pour vérifier un package installé :
 +
 +rpm -Vp foo-1.0-1.i386.rpm
 +
 +Ceci peut être utile si vous pensez que votre base données est corrompue.
 +
 +Si toutes les vérifications se sont passées correctement, aucun résultat n'apparaît. Par contre, si des différences sont rencontrées, un résultat apparaît. Le format du résultat est une chaîne de huit caractères, un c peut dénoter un fichier de configuration, suivie du nom du fichier. Chacun des caractères représente le résultat de la comparaison, si un point (.) apparaît cela signifie que la comparaison n'a pas échouée. Les caractères utilisés sont les suivants :
 +
 +* 5 Somme MD5
 +
 +* S Taille du fichier
 +
 +* L Lien symbolique
 +
 +* T Date de modification du fichier
 +
 +* D Périphérique
 +
 +* U Utilisateur
 +
 +* G Groupe
 +
 +* M Mode (permissions et type de fichier)
 +
 +Si un résultat apparaît, c'est à vous de choisir quoi faire (supprimer le package, le réinstaller, corriger le problème, ...).
  
-== Intallation des pasquets .src.rpm ==+====== Intallation des pasquets .src.rpm ======
  
-es paquetages SRPM (Source RPM) contiennent les sources d'un logiciel prêtes à être recompilées et transformées en paquetage rpm.+Les paquetages SRPM (Source RPM) contiennent les sources d'un logiciel prêtes à être recompilées et transformées en paquetage rpm.
 Afin de reconstruire un paquetage rpm à partir d'un srpm (fichier .src.rpm), il faut utiliser la commande : Afin de reconstruire un paquetage rpm à partir d'un srpm (fichier .src.rpm), il faut utiliser la commande :
- rpmbuild --rebuild paquetage.src.rpm+  rpmbuild --rebuild paquetage.src.rpm
 Le paquetage rpm résultant se trouvera dans /usr/src/RPM/RPMS/<arch> où <arch> est i386, i586, ppc, etc. suivant votre architecture. Le paquetage rpm résultant se trouvera dans /usr/src/RPM/RPMS/<arch> où <arch> est i386, i586, ppc, etc. suivant votre architecture.
  
 Pour simplement installer le paquetage, sans reconstruire le fichier .rpm, faire : Pour simplement installer le paquetage, sans reconstruire le fichier .rpm, faire :
- rpmbuild --recompile paquetage.src.rpm+  rpmbuild --recompile paquetage.src.rpm
  
 Cela peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes des votres et qui refuse donc de s'installer, tout en conservant l'intégrité de votre base de données des rpm (tout programme installé devrait être dans la base, mais si vous installez à partir des sources .tar.gz par ./configure && make install, cela ne sera pas le cas.) Cela peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes des votres et qui refuse donc de s'installer, tout en conservant l'intégrité de votre base de données des rpm (tout programme installé devrait être dans la base, mais si vous installez à partir des sources .tar.gz par ./configure && make install, cela ne sera pas le cas.)
  
- Quelle est la différence entre "installer" et "mettre à jour" ?+  Quelle est la différence entre "installer" et "mettre à jour" ?
  
 La mise à jour (upgrade en anglais) remplace l'ancien paquetage par le nouveau, tandis que l'installation conserve si possible l'ancienne version du programme et installe la nouvelle en parallèle. La mise à jour (upgrade en anglais) remplace l'ancien paquetage par le nouveau, tandis que l'installation conserve si possible l'ancienne version du programme et installe la nouvelle en parallèle.
distributions_rpm/introduction_a_rpm.1237075408.txt.gz · Dernière modification : 2009/03/15 00:03 de root