RPM(8)

NOM
rpm - Gestionnaire de Paquetages Red Hat.

SYNOPSIS
rpm [options]

DESCRIPTION
rpm est un puissant gestionnaire de paquetages, qui peut être utilisé pour construire, installer, interroger, vérifier, mettre à jour, et désinstaller des paquetages de logicies individuels. Un paquetage consiste en une archive de fichiers, et en de l'information sur ce paquetage, incluant le nom, la version et la description du paquetage.

Un des modes de base suivants doit être sélectionné : Initialiser Base De Données, Reconstruire Base De Données, Construire Paquetage, Recompiler Paquetage, Construire Paquetage à partir Tarball, Interroger, Montrer Etiquettes de Requêtes, Installer, Rafraîchir, Désinstaller, Vérifier, Vérifier Signature, Resigner, Ajouter Signature, fixer propriétaires et groupes et Montrer Configuration.

Maintenance de la Base De Données :
rpm -i [--initdb]
rpm -i [--rebuiddb]

Construction :
rpm [-b|t] [spec_paquetage]+
rpm [--rebuild] [source_rpm]+
rpm [--tarbuild] [source_tarrée]+

Requêtes :
rpm [--query] [options_de_requête]
rpm [--querytags]

Maintenir les paquetages installés :
rpm [--install] [options] [fichier_paquetage]+
rpm [--freshen|-F] [options_installation] [fichier_paquetage]+
rpm [--uninstall|-e] [options_désinstallation] [paquetage]+
rpm [--verify|-V] [options_vérification] [paquetage]+

Signatures:
rpm [--verify|-V] [options_vérification] [paquetage]+
rpm [--resign] [fichier_paquetage]+
rpm [--addsign] [fichier_paquetage]+

Divers :
rpm [--showrc]
rpm [--setperms] [paquetage]+
rpm [--setgids] [paquetage]+

OPTIONS GENERALES
Ces options peuvent être utilisées dans différents modes.

-vv Afficher un tas d'horribles informations de déboggage.

--quiet
    Afficher le moins possible ; normalement seuls les messages d'erreur seront affichés.

--help
    Afficher un message d'utilisation plus long que d'habitude.

--version
    Afficher une seule ligne contenant le numéro de version utilisé par rpm.

--rcfile <liste_fichiers>
    Chacun des fichiers dans la <liste_fichiers> séparés par des deux-point est lu séquentiellement par rpm pour obtenir des informations de configuration. La <liste_fichiers> par défaut est /usr/lib/rpm/rpmrc:/etc/rpmrc:~/.rpmrc. Seul le premier fichier dans la liste doit exister, les tildes sont étendues à $HOME.

--root <répertoire>
    Utiliser le système "enraciné" dans <répertoire> pour toutes les opérations. Notez que cela signifie que la base de données sera lue ou modifiée dans <répertoire> et que chacun des scripts pre et post seront lancés après un chroot() vers <répertoire>.

--dbpath <chemin>
    Utiliser la base de données RPM située dans <chemin>.

--justdb
    Mettre à jour uniquement la base de données, pas le système de fichiers.

--ftpproxy <hôte>, --httpproxy <hôte>
    Utiliser <hôte> en tant qu'hôte proxy FTP ou HTTP. Voir OPTIONS FTP/HTTP.

--ftpport <port>, --httpport <port>
    Utiliser <port> comme port FTP ou HTTP sur l'hôte proxy. Voir OPTIONS FTP/HTTP.

--pipe <cmd>
    Envoyer la sortie de rpm à la commande <cmd> par l'intermédiaire d'un tube.

OPTIONS D'INSTALLATION ET DE MISE A NIVEAU
La forme de la commande d'installation rpm est

    rpm -i [options_installation] <fichier_paquetage>+

Ceci installe un nouveau paquetage. La forme générale d'une commande de mise à niveau rpm est

    rpm -U [options_installation] <fichier_paquetage>+

Ceci met à jour ou installe le paquetage installé actuellement à la version du nouveau RPM. Ceci est la même chose que l'installation, sauf que les autres versions du paquetage sont supprimées du système.

    rpm [-F|--rafraîchir] [options_installation] <fichier_paquetage>+

Ceci mettra à niveau les paquetages, mais uniquement si une version plus ancienne existe actuellement.

Le <fichier_paquetage> peut être spécifié par une URL ftp ou http, auquel cas le paquetage sera téléchargé avant d'être installé. Voir OPTIONS FTP/HTTP pour obtenir des informations sur le support intégré de ftp et http par RPM.

--force
    Idem que --replacepkgs, --replacefiles, et --oldpaquetage.

-h, --hash
    Afficher 50 marques de hachage quand l'archive du paquetage est déballée. A utiliser avec -v pour un bel affichage.

--oldpackage
    Permettre à une mise à niveau de remplacer un paquetage par un paquetage plus ancien.

--percent
    Afficher les pourcentages quand les fichiers sont extraits de l'archive du paquetage, ceci dans le but de rendre RPM facile à lancer à partir d'autres outils.

--replacefiles
    Installer les paquetages même s'ils remplacent des fichiers d'autres paquetages déjà installés.

--replacepkgs
    Installer les paquetages même si certains d'entre eux sont déjà installés sur ce système.

--allfiles
    Installer ou mettre à niveau tous les fichiers manquants du paquetage, même s'ils existent déjà.

--nodeps
    Ne pas effectuer de vérification de dépendances avant d'installer ou de mettre à niveau un paquetage.

--noscripts
    Ne pas exécuter les scripts de pré- et post- installation.

--notriggers
    Ne pas exécuter les scripts qui sont déclenchés par l'installation de ce paquetage.

--ignoresize
    Ne pas examiner les systèmes de fichiers montés pour vérifier qu'il y ait un espace disque suffisant avant d'installer ce paquetage.

--excludepath <chemin>
    Ne pas installer les fichiers dont les noms commencent par <chemin>.

--excludedocs
    Ne pas installer de fichiers qui sont marqués comme documentation (ce qui inclut les pages de manuel et les documents texinfo).

--includedocs
    Installer les fichiers de documentation. C'est le comportement par défaut.

--test
    Ne pas installer le paquetage, uniquement le vérifier et rapporter les conflits potentiels.

--ignorearch
    Ceci permet l'installation ou la mise à niveau même si l'architecture du binaire RPM et de l'hôte ne correspondent pas.

--ignoreos
    Ceci permet l'installation ou la mise à niveau même si les systèmes d'exploitation du binaire RPM et de l'hôte ne correspondent pas.

--prefix <chemin>
    Ceci fixe le préfixe d'installation à <chemin> pour les paquetages relogeables.

--relocate <ancien_chemin>=<nouveau_chemin>
    Pour les paquetages relogeables, traduit les fichiers qui seraient mis dans <oldchemin> par <newchemin>.

--badreloc
    A utiliser en conjonction avec --relocate, ceci force le relogement même si le paquetage n'est pas relogeable.

--noorder
    Ne pas réordonner les paquetages pour une installation. La liste des paquetages devrait normalement être réordonnée pour satisfaire aux dépendances.

OPTIONS DE REQUETE
La forme générale d'une commande de requête rpm est

    rpm -q [options_de_requête]

Vous pouvez spécifier le format d'information de paquetage qui sera affiché. Pour cela, utilisez l'option [--queryformat|-qf], suivie de la chaîne de caractères de format.

Les formats de requête sont des versions modifiées du formattage standard printf(3). Ce format est constitué de chaînes de caractères statiques (qui peuvent inclure les séquences d'échappement du C standard pour les sauts de lignes, les tabulations, et d'autres caractères spéciaux) et les formatteurs du type de ceux de printf(3). Comme rpm connaît déjà les types à afficher, le spécificateur de type doit néanmoins être omis, et remplacé par le nom de l'étiquette (tag) d'entête à afficher, enfermé dans des caractères {}. La partie RPMTAG_ du nom de l'étiquette peut être omise.

Des formats de sortie alternatifs peuvent être requis en faisant suivre l'étiquette par :typetag. Actuellement, les types suivants sont supportés : octal, date, shescape, perms, fflags, et depflags.

Par exemple, pour afficher uniquement les noms des paquetages requis, vous pouvez utiliser %{NOM} comme chaîne de caractères de format. Pour afficher de l'information de nom et de distribution en deux colonnes, vous pouvez utiliser %-30{NOM}%{DISTRIBUTION}.

rpm affichera une liste de toutes les étiquettes qu'il connaît quand il est invoqué avec l'argument --querytags.

Il y a deux sous-ensembles d'option pour les requêtes : la sélection de paquetages et la sélection d'information.

Options de sélection de paquetages :

<nom_paquetage>
    Interroger le paquetage intallé nommé <nom_paquetage>.

-a, --all
    Interroger tous les paquetages intallés.

--whatrequires <capacité>
    Interroger tous les paquetages qui ont besoin de <capacité> pour leur fonctionnement propre.

--whatprovides <virtuel>
    Interroger tous les paquetages qui fournissent la capacité <virtuel>.

-f <fichier>, --fichier <fichier>
    Interroger le paquetage possédant <fichier>.

-g <groupe>, --groupe <groupe>
    Interroger les paquetages dont le groupe est <groupe>.

-p <fichier_paquetage>
    Interroger un paquetage <fichier_paquetage> non installé . Le <fichier_paquetage> peut être spécifié comme une URL de type ftp ou http, auquel cas l'entête du paquetage sera téléchargée et interrogée. Voir OPTIONS FTP/HTTP pour obtenir de l'information sur le support intégré d'un client ftp et http par RPM.

--specfile <fichier_de_specs>
    Analyse syntaxiquement (parse) et interroge <fichier_de_specs> comme s'il était un paquetage. Bien que toutes les informations (p.ex. les listes de fichiers) ne soient pas disponibles, ce type d'interrogation permet à rpm d'être utilisé pour extraire de l'information de fichiers de spécifications sans avoir à écrire un parseur de fichiers de spécifications.

--querybynombre <nombre>
    Interroger la <nombre>ième entrée de la base de données directement; ceci est utile à des fins de déboggage.

--triggeredby <pkg>
    Interroger les paquetages qui sont déclenchés par les paquetages <pkg>.

Options de sélection d'information :

-i  Afficher l'information du paquetage, incluant son nom, sa version, et sa description. Cette option utilisera --queryformat s'il a été spécifié.

-R, --requires
    Lister les paquetages desquels dépend ce paquetage.

--provides
    Lister les capacités que fournit ce paquetage.

--changelog
    Lister les informations de modifications de ce paquetage.

-l, --list
    Lister les fichiers du paquetage.

-s, --state
    Afficher les états des fichiers du paquetage (implique -l). L'état de chaque fichier est soit normal, non installé, ou remplacé.

-d, --docfiles
    Lister uniquement les fichiers de documentation (implique -l).

-c, --configfiles
    Lister uniquement les fichiers de configuration (implique -l).

--scripts
    Lister les scripts shell spécifiques au paquetage qui sont utilisés comme une partie des processus d'installation et de désinstallation, s'il y en a.

--triggers, --triggerscripts
    Afficher les scripts de déclenchement, s'il y en a, qui sont contenus dans le paquetage.

--dump
    Afficher l'information du fichier comme suit : chemin taille mtime somme_md5 mode propriétaire groupe isconfig isdoc rdev symlink. Ceci doit être utilisé avec au moins une option parmi -l, -c, -d.

--last
    Ordonner le listing des paquetages par date d'installation de sorte que les derniers fichiers installés soient au sommet.

--filesbypkg
    Lister tous les fichiers de chaque paquetage.

--triggerscripts
    Montrer tous les scripts de déclenchement pour les paquetages sélectionnés.

OPTIONS DE VERIFICATION
La forme générale d'une commande de vérification rpm est

    rpm -V|-y|--verify [verify-options]

Vérifier un paquetage compare les informations sur les fichiers installés dans le paquetage avec les informations sur les fichiers obtenues à partir du paquetage original et conservées dans la base de données rpm. Entre autres choses, la vérification compare la taille, la somme MD5, les permissions, le propriétaire et les groupes de chaque fichier. Toutes les discordances sont affichées. Les options de spécification de paquetage sont les mêmes que pour l'interrogation de paquetages.

Les fichiers qui n'étaient pas installés en provenance du paquetage, par exemple les fichiers de documentation exclus à l'installation en utilisant l'option "--excludedocs", sont ignorés silencieusement.

Options pouvant être utilisées en mode de vérification :

--nomd5
    Ignore les erreurs de somme de contrôle MD5 pendant la vérification.

--nopgp
    Ignore les erreurs de contrôle PGP pendant la vérification.

--nofiles
    Ignore les fichiers manquants pendant la vérification.

    Le format de sortie est constitué d'une chaîne de caractères de 8 caractère, d'un "c" éventuel dénottant un fichier de configuration, et ensuite du nom du fichier. Chacun des 8 caractères dénote le résultat d'une comparaison d'un attribut du fichier avec la valeur de cet attribut enregistré dans la base de données rpm. Un simple "." (point) signifie que le test s'est bien passé. Les caractères suivants dénote l'échec à certains tests :

5   Somme MD5

S   Taille du fichier

L   Lien symbolique

T   Mtime

D   Périphérique

U   Utilisateur

G   Groupe

M   Mode (inclut les permissions et le type de fichier)

VERIFICATION DE SIGNATURE
La forme générale d'une commande de vérification d'une signature rpm est

    rpm --checksig <fichier_paquetage>+

Ceci vérifie la signature PGP du paquetage <fichier_paquetage> pour s'assurer de son intégrité et de son origine. Les informations de configurations de PGP sont lues à partir des fichiers de configuration. Voir la section sur les SIGNATURES PGP pour les détails.

OPTIONS DE DESINSTALLATION
La forme générale d'une commande de désinstallation rpm est

        rpm -e <nom_paquetage>+

--allmatches
    Supprimer toutes les versions du paquetage auquel correspond <nom_paquetage>. Normalement, une erreur est émise si <paquetage_nom> correspond à de multiples paquetages.

--noscripts
    Ne pas exécuter les scripts de pré- et de post- désinstallation.

--notriggers
    Ne pas exécuter les scripts qui sont déclenchés par la suppression de ce paquetage.

--nodeps
    Ne pas vérifier les dépendances avant de désinstaller les paquetages.

--test
    Ne pas réellement désinstaller quoi que ce soit, juste effectuer un test pour voir si c'est possible. Utile en conjonction avec l'option -vv.

OPTIONS DE CONSTRUCTION
La forme générale d'une commande de construction rpm est

    rpm -[b|t]O [options_de_construction] <spec_paquetage>+

L'argument utilisé est -b si un fichier de spécifications est utilisé pour construire le paquetage et -t si RPM devrait regarder à l'intérieur d'un fichier gzippé (ou tarré) pour obtenir le fichier de spécifications à utiliser. Après le premier argument, l'argument suivant (O) spécifie les étapes de construction et de mise en paquets à effectuer et est un argument parmi :

-bp Exécute l'étape "%prep" du fichier de spécifications. Normalement, ceci implique de déballer les sources et d'appliquer tous les patchs.

-bl Faire une "vérification de liste". La section "%files" du fichier de spécifications subit l'expansion des macros, et des vérifications sont effectuées pour vérifier que chaque fichier existe.

-bc Effectuer l'étape "%build" du fichier de spécifications (après avoir effectué l'étape prep). Cela implique en général l'équivalent d'un "make".

-bi Effectuer l'étape "%install" du fichier de spécifications (après avoir effectué les étapes prep et build). Cela implique en général l'équivalent d'un "make install".

-bb Construire un paquetage binaire (après avoir effectué les étapes prep, build, et install).

-bs Construire uniquement le paquetage source (après avoir effectué les étapes prep, build, et install).

-ba Construire les paquetages paquetages binaires et sources (après avoir effectué les étapes prep, build, et install).

Les options suivantes peuvent également être utilisées :

--short-circuit
    Passer directement à l'étape spécifiée (çàd, passer toutes les étapes menant à l'étape spécifiée). Uniquement valide avec -bc et -bi.

--timecheck
    Fixer l'âge de "timecheck" (0 pour le désactiver). Cette valeur peut également être configurée en définissant la macro "_timecheck". La valeur de timecheck exprime, en secondes, l'âge maximum d'un fichier en train d'être mis en paquetage. Des avertissements seront affichés pour tous les fichiers au-delà de l'âge de timecheck.

--clean
    Supprimer l'arbre de construction après que les paquetages aient été créés.

--rmsource
    Supprimer les sources et le fichier de spécifications après la construction (peut également être utilisé seul, p.ex. "rpm --rmsource foo.spec").

--test
    N'exécuter aucune étape de construction. Utile pour tester en profondeur les fichiers de spécifications.

--sign
    Incorpore une signature PGP dans le paquetage. Cette signature peut être utilisée pour vérifier l'intégrité et l'origine du paquetage. Voir la section sur les SIGNATURES PGP pour les détails de configuration.

--buildroot <répertoire>
    Pendant la construction du paquetage, surcharger l'étiquette de Construction de Racine avec le répertoire <répertoire>.

--target <plate-forme>
    Pendant la construction du paquetage, interpréter <plate-forme> comme arch-vendor-os et fixer les macros _target, _target_arch et _target_os en conséquence.

--buildarch <arch>
    Pendant la construction du paquetage, fixer l'architecture à <arch>. Cette option a été rendue obsolète par --target dans RPM 3.0.

--buildos <se>
    Pendant la construction du paquetage, fixer l'architecture à <os>. Cette option a été rendue obsolète par --target dans RPM 3.0.

OPTIONS DE RECONSTRUCTION ET DE RECOMPILATION

Il y a deux autres façons d'invoquer une construction avec rpm:

rpm --recompile <fichier_paquetage_sources>+

rpm --rebuild <fichier_paquetage_sources>+

Quand il est invoqué de cette façon, rpm installe le paquetage de sources désigné, et effectue une préparation, une compilation et une installation. En plus, --rebuild construit un nouveau paquetage bianire. Quand la construction est terminée, le répertoire de construction est supprimé (comme avec --clean) et les sources ainsi que le fichier de spécifications du paquetage sont supprimés.

SIGNATURE D'UN RPM EXISTANT

rpm --resign <fichier_paquetage_binaires>+

Cette option génère et insère de nouvelles signatures pour les paquetages spécifiés. Toute signature existante est supprimée.

rpm --addsign <fichier_paquetage_binaires>+

Cette option génère et concatène les nouvelles signatures des paquetages spécifiés à celles qui existaient déjà.

SIGNATURES PGP

Pour utiliser la caractéristique des signatures, RPM doit être configuré pour lancer PGP, et il doit être capable de trouver un groupe de clés publiques (keyring) avec des clés publiques RPM à l'intérieur. Par défaut, RPM utilise les comportements par défaut de PGP pour trouver les keyrings (en utilisant PGPPATH). Si vos keyrings ne sont pas situées là où PGP s'attend à ce qu'elles soient, vous aurez besoin de configurer la macro

_pgp_path
    pour fournir la localisation des keyrings PGP à utiliser.

Si vous voulez être capable de signer les paquetages que vous avez créés vous-même, vous devrez également créer votre propre paire clé publique/clé secrète (voir le manuel PGP). Vous devrez également configurer les macros suivantes :

_signature
    Le type de la signature. Actuellement, seule celle de pgp est supportée.

_pgp_name
    Le nom de l'"utilisateur" dont vous voulez utiliser la clé pour signer vos paquetages.

Pendant la construction de paquetages, vous ajouterez ensuite le signe -- à la ligne de commandes. On vous demandera votre phrase de passe, et votre paquetage sera construit et signé.

Par exemple, pour être capable d'utiliser PGP pour signer les paquetages en tant qu'utilisateur "John Doe <jdoe@foo.com>" à partir des key rings situées dans /etc/rpm/.pgp en utilisant l'exécutable /usr/bin/pgp, vous devriez inclure

%_signature pgp

%_pgp_path /etc/rpm/.pgp

%_pgp_name John Doe <jdoe@foo.com>

%_pgpbin /usr/bin/pgp

dans un fichier de configuration de macros. Utilisez /etc/rpm/macros pour une configuration par système et ~/.rpmmacros pour une configuration par utilisateur.

OPTIONS DE RECONSTRUCTION DE LA BASE DE DONNEES

La forme générale d'une commande de reconstruction d'une base de données rpm est

    rpm --rebuiddb

Pour reconstuire une nouvelle base de données, tapez :

    rpm --initdb

Les seules options pour ces modes sont --dbchemin et --root.

SHOWRC

Lancer

    rpm --showrc

montrera les valeurs que va utiliser RPM pour toutes les options qui peuvent être fixées dans les fichiers rpmrc.

OPTIONS FTP/HTTP

RPM inclut des simples clients FTP et HTTP pour simplifier l'installation et l'interrogation de paquetages qui sont disponibles sur internet. Les fichiers de paquetage pour l'installation, la mise à niveau et les opérations d'interrogation peuvent être spécifiés dans une URL du style ftp ou http :

    ftp://<utilisateur>:<mot_de_passe>@nom_hôte:<port>/chemin/vers/paquetage.rpm

Si la partie :mot_de_passe est omise, le mot de passe sera demandé (une seule fois par paire utilisateur/nom_hôte). Si l'utilisateur et le mot de passe sont omis, le ftp anonyme est utilisé. Dans tous les cas, des transferts ftp passifs (PASV) sont utilisés.

RPM permet d'utiliser les options suivantes avec les URLs ftp :

--ftpproxy <nom_hôte>
    L'hôte <nom_hôte> sera utilisé comme un serveur délégué (proxy) pour tous les transferts ftp, ce qui permet aux utilisateurs d'effectuer des connexions au travers des gardes-barrière qui utilisent des systèmes de proxies. Cette option peut également être spécifiée en configurant la macro _ftpproxy.

--ftpport <port>
    Le port TCP numéro <port> à utiliser pour les connexions ftp sur le serveur proxy ftp au lieu du port par défaut. Cette option peut également être spécifiée en configurant la macro _ftpport.

RPM permet d'utiliser les options suivantes avec les URLs http :

--httpproxy <nom_hôte>
    L'hôte <nom_hôte> sera utilisé comme un serveur délégué (proxy) pour tous les transferts http. Cette option peut également être spécifiée en configurant la macro _httpproxy.

--httpport <port>
    Le port TCP numéro <port> à utiliser pour les connexions http sur le serveur proxy ftp au lieu du port par défaut. Cette option peut également être spécifiée en configurant la macro _httpport.

FICHIERS
/usr/lib/rpm/rpmrc
/etc/rpmrc
~/.rpmrc
/usr/lib/rpm/macros
/etc/rpm/macros
~/.rpmmacros
/var/lib/rpm/conflictsindex.rpm
/var/lib/rpm/fileindex.rpm
/var/lib/rpm/groupindex.rpm
/var/lib/rpm/nameindex.rpm
/var/lib/rpm/packages.rpm
/var/lib/rpm/providesindex.rpm
/var/lib/rpm/requiredby.rpm
/var/lib/rpm/triggerindex.rpm
/tmp/rpm*

VOIR AUSSI
glint(8) , rpm2cpio(8) , http://www.rpm.org/

AUTEURS
Marc Ewing <marc@redhat.com>
Jeff Johnson <jbj@redhat.com>
Erik Troan <ewt@redhat.com>

TRADUCTION
Frédéric Delanoy, 2000.