From Mageia wiki
Jump to: navigation, search


Drakconf multiflag.png
Autres langues
Deutsch ; English ; Español ; Français ; Nederlands ;
Résumé :
urpmi est l’outil en ligne de commande de Mageia pour la gestion des paquets et des dépôts (médias). Par exemple, vous pouvez installer, mettre à jour ou supprimer des logiciels avec ce dernier. urpmi gère automatiquement les dépendances, en vérifiant et en résolvant ces dernières si nécessaire. Pour les débutants, l’outil graphique rpmdrake est recommandé par rapport à urpmi car rpmdrake est plus convivial pour les utilisateurs peu expérimentés.

Contents

Généralités

Pour avoir une idée globale de urpmi voici une présentation de son interface en ligne de commande et de certains cas d’utilisation.

L’interface en ligne de commande

La ligne de commande de urpmi se répartit entre les commandes de base suivantes :

Command Description
urpmi Installe ou met à jour un paquetage
urpme Supprime un paquetage
urpmq Recherche des paquetages ou des informations sur eux
urpmf Recherche des paquetages qui contiennent un certain fichier
urpmi.update Met à jour un dépôt/support c’est-à-dire met à jour la liste des paquetages disponibles sur le système local
urpmi.addmedia Ajoute un nouveau dépôt/support au système local
urpmi.removemedia Supprime un dépôt/support du système local-

Cas d’utilisation fréquents

La liste suivante fournit un bref aperçu des cas d’utilisation habituels de urpmi :

Commandes de base : installer, supprimer, mettre à jour

Command Description
urpmi PAQUETAGE Installe ou met à jour le(s) paquetage(s) indiqué(s). PAQUETAGE peut également se référer à un fichier RPM en local, qui sera dès lors installé. Si aucun paquetage correspondant n’est trouvé alors une recherche est effectuée et des propositions seront affichées.
urpme PAQUETAGE Supprime le(s) paquetage(s) indiqué(s) et tous les paquetages qui en dépendent. S’il n’y a aucun paquetage dénommé PAQUETAGE, une recherche sera effectuée et des propositions seront affichées.
urpmi --auto-update Mettre tout à jour : Met d'abord à jour tous les médias (avec urpmi.update -a (voir ci-dessous)) et sélectionnent automatiquement les paquets qui peuvent être mis à jour et les installent (avec urpmi --auto-select).

Commandes de Dépôt/Média

Command Description
urpmi.update -a Met à jour tous les média c’est-à-dire met à jour la liste locale des paquetages disponibles.
urpmi.update NOM Met à jour le média dont le NOM est indiqué c’est-à-dire met à jour la liste locale des paquetages disponibles pour ce média spécifique.
urpmq --list-url Affiche tous les dépôts et leurs URLs.
urpmq --list-media active Affiche tous les dépôts actifs
urpmq --list-media active --list-url Affiche tous les dépôts actifs et leurs adresses
urpmi.addmedia NOM URL Ajoute un nouveau média avec son NOM et son URL.
urpmi.removemedia NOM Supprime le dépôt NOM.

Commandes de recherche

Command Description
urpmq PAQUETAGE Recherche Un paquet par son nom exact (le terme de recherche PAQUET et le nom du paquet doivent correspondre exactement).
urpmq -Y --summary PAQUETAGE Recherche un paquetage par son nom en ignorant la casse (-Y) et affiche un résumé de ce paquetage.
urpmq -i PAQUETAGE Affiche des informations sur un PAQUETAGE. Ce paquetage peut aussi se référer à un fichier RPM local.
urpmq --requires PAQUETAGE Affiches les dépendances du PAQUETAGE.
urpmf FICHIER Recherche les paquetages qui contiennent un fichier dénommé FICHIER

urpmi.addmedia

C’est ici que tout commence. Vous devez ajouter un dépôt (appelé aussi miroir) grâce à la commande urpmi.addmedia. Le format pour ajouter un nouveau dépôt est le suivant :

urpmi.addmedia NomDuMiroir ftp://ftp.site.com/path/to/Mageia/RPMS

Mais en réalité, vous travaillez en coulisses comme si vous utilisiez drakrpm-edit-media qui est l'interface graphique dans le Centre de contrôle Mageia sous Gestion des logiciels --> Configurer les sources pour installer et mettre à jour des logiciels

Les paquets de logiciels pour Mageia sont disponibles dans trois différents dépôts (ou média selon la licence qui les régit).

  • dépôt core Le dépôt Core (de base) contient des logiciels libres et open source.
  • dépôts nonfree Le dépôt Nonfree (non-libres) contient certains logiciels propriétaires.
  • dépôts tainted Le dépôt Tainted (corrompu, contaminé) comprend des logiciels qui peuvent faire l'objet de revendications de brevet dans certains pays.

Ici vous trouverez plus d’information sur ces catégories.

Chaque média comporte 5 dépôts :

  • release Ce sont les dépôts principaux qui contiennent tous les paquetages à partir du jour de la publication.
  • updates Contiennent toutes les mises à jour de sécurité ou de correction de bogues et des mises à jour importantes (comme les navigateurs web). Tout le monde devrait disposer de ce support, même avec une connexion internet très lente. Lorsque vous ajoutez un support de mise à jour, ajoutez le commutateur --update pour que urpmi puisse le distinguer d'un support ordinaire.
  • update testing est utilisé pour les tests temporaires des nouvelles mises à jour, afin de permettre aux personnes qui signalent les bogues de confirmer les corrections.
  • backports certains paquets de nouvelles versions provenant de cauldron, ou des mises à jour qui peuvent nécessiter une assistance manuelle afin qu'elles ne soient pas dans les mises à jour (par exemple le serveur Nextcloud)
  • backports testing Ne sont utilisés que par des traqueurs de bogues. Ces dépôts ne sont pas activés par défaut et sont réservés aux utilisateurs avertis (il est vivement déconseillé de les activer si vous ne savez pas ce que vous faites).

Veuillez consulter Règles de gestion des miroirs pour un aperçu complet de leur structure, que l'on peut trouver sur la plupart de ceux-ci.

Copier un CD ou un DVD dans le répertoire /home puis utiliser cette copie avec URPMI

Si vous n’aimez pas utiliser les CD ou DVD pour mettre votre système à jour et que vous avez prévu un espace spécifique sur votre disque dur, créez un répertoire (par exemple : /home/uid/repo/), copiez le dossier x86_64/media ou i586/media récursivement depuis le CD ou DVD dedans. Après avoir retiré le CD ou DVD d'installation, ouvrez un terminal et tapez en tant que root :

# cd /home/uid/repo
# genhdlist2

Maintenant, vous pouvez ajouter un dépôt, soit avec urpmi.addmedia :

# urpmi.addmedia --distrib HD file://home/uid/repo

ou aussi passer par le gestionnaire de source Centre de Contrôle de Mageia > Gestion de logiciels > Configurer les sources pour installer et mettre à jour des logiciels pour paramétrer votre nouveau répertoire et désactiver toutes les entrées provenant du CD ou DVD.

Copier un dépôt RPM (dont l’installation CD ou DVD) dans un répertoire et utiliser la copie avec URPMI

Créer un répertoire, par exemple ~/RPMS, pour y déposer tous les RPM.

Pour copier un ensemble de RPM (depuis une installation CD ou DVD par exemple) tapez :

find /INSTALL_CD/ -name *.rpm -print -exec cp {} ~/RPMS \;

Si vous avez copié l’installation CD ou DVD sur votre disque dur, ou que vous avez leur image ISO sur le périphérique (regardez Copier le CD ou le DVD vers le disque dur pour apprendre à les monter), cela peut être fait en une seule étape.

Dans cet exemple, le CD ou DVD sont montés comme ceci /INSTALL_CD/.

$ cd ~/RPMS
$ genhdlist2

Cela va ensuite créer un fichier hdlist.cz et un fichier sythesis.hdlist.cz basé sur ce qu’il trouvera dans le répertoire dans lequel il se trouve.

Trouvez-les « pubkeys » des RPM et copiez-les dans ~/RPMS/pubkey. Elles devraient être dans le dossier INSTALL_CD/media/media_info :

$ mkdir ~/RPMS/pubkey
$ cp /INSTALL_CD/media/media_info/pubkey* ~/RPMS/pubkey/


Ajoutez ensuite le dépôt (en root) :

# urpmi.addmedia local_rpms file://home/uid/RPMS/

Ajouter des dépôts pour votre distribution

urpmi peut ajouter de nombreuses sources (main, updates, contrib…) depuis un miroir que vous avez choisi grâce à une simple commande dans un terminal en tant que root. La forme de la commande se présente comme ceci :

urpmi.addmedia --distrib 'ftp://SITE_MIROIR/miroir/mageia/distrib/VERSION/ARCH'

Dans lequel on saisit les données suivantes :

  • « SITE_MIROIR » est le lien URL du serveur FTP.
  • « VERSION » est la version en cours (ou une autre) de Mageia dans laquelle vous souhaitez ajouter la source.
  • « ARCH » peut être : « i586 », « x86_64 » ou d’autres possibilités qui n’existent pas pour toutes les versions de Mageia (par exemple sparc, pcc, etc.)

Choisir un miroir manuellement

Les miroirs sont répertoriés sur https://mirrors.mageia.org/ - Choisissez celui qui est le plus proche de chez vous (en fonction de la bande passante) La page d'état https://mirrors.mageia.org/status vous aide à éviter les miroirs de mauvaise qualité.

Sélectionner un miroir automatiquement en utilisant aria2

Il est possible de sélectionner automatiquement un miroir en utilisant l’option --mirrorlist. Cette commande ajoutera automatiquement les sources depuis le miroir choisi :

# urpmi.addmedia --distrib --mirrorlist '$MIRRORLIST'

Trouver des miroirs près de chez vous en utilisant rsync et URPMI pour vos mises à jour

Jetez un œil ICI(en)

Vous trouverez une liste des miroirs ICI.

urpmi.update

La commande urpmi.update met à jour la liste des paquetages depuis un dépôt. Cette liste change à chaque fois que les paquetages dans le serveur changent. Vous aurez donc besoin de le mettre à jour à chaque fois que vous voudrez installer un nouveau paquetage depuis un dépôt modifiable, comme Mageia Cauldron.

Attention !
Soyez très prudent avec les paquetages de Cauldron ; ils peuvent fonctionner, mais leur installation pose généralement des problèmes plus tard sur une version stable !

Si vous utilisez un dépôt destiné à une version définitive, cela ne devrait rien changer. Vous n’avez ainsi pas besoin de mettre la liste à jour à chaque installation.

Pour mettre à jour tous les dépôts activés, utiliser la commande

# urpmi.update -a

Pour mettre à jour un ou plusieurs dépôts spécifiques :

# urpmi.update nameofmedia1 nameofmedia2 ...

C'est-à-dire un dépôt spécifique : urpmi.update 'Nonfree 32bit Updates', ou deux : urpmi.update 'Nonfree 32bit Updates' 'Nonfree Updates'. Veuillez respecter les guillemets.

En fait, les noms donnés correspondent à n'importe quel dépôts, donc urpmi.update Upd mettra à jour tous les médias contenant "Upd", autrement dit tous les dépôts de mise à jour - même ceux qui ne sont pas activés !

Parfois, vous souhaitez installer à partir de dépôts non activés, c'est-à-dire des backports, et mettre à jour tous les médias configurés, y compris les non activés, une astuce consiste à utiliser :

# urpmi.update e

Cela fonctionne parce que les mots : core, nonfree, et tainted, contiennent tous la lettre e.

urpmi.removemedia

Attention !
Assurez-vous d’avoir bien pris note des sources que vous souhaitez mettre par la suite. Dans le cas contraire vous risquez de vous retrouver nu comme un ver. :-D

Si vous voulez vous débarrasser d’une source, cette commande vous aidera :
urpmi.removemedia nom_de_la_source

Pour supprimer toutes les sources :

# urpmi.removemedia -a

urpmf

urpmf est l’un des outils de recherche d’URPMI. C’est le meilleur moyen d’explorer le système de gestion des paquets. Avec ceci vous pouvez trouver n’importe quel fichier souhaité, savoir ce qu’il contient, voir sa description et un tas d’autre chose !

Supposons que vous voulez compiler un programme C et que votre compilateur se plaint à propos de l’absence de jpeglib.h. Tout ce que vous avez à faire c’est urpmf jpeglib.h.

Voilà ce qui apparaîtra :

$ urpmf jpeglib.h
perl-Tk:/usr/share/doc/perl-Tk/JPEG/jpeg/jpeglib.h mingw32-libjpeg-turbo:/usr/i686-w64-mingw32/sys-root/mingw/include/jpeglib.h mingw64-libjpeg-turbo:/usr/x86_64-w64-mingw32/sys-root/mingw/include/jpeglib.h lib64jpeg-devel:/usr/include/jpeglib.h lib64openshot-audio-devel:/usr/include/libopenshot-audio/JuceLibraryCode/modules<br>/juce_graphics/image_formats/jpglib/jpeglib.h lib64jpeg-devel:/usr/include/jpeglib.h lib64jpeg-devel:/usr/include/jpeglib.h lib64jpeg-devel:/usr/include/jpeglib.h

Cela signifie que le fichier d’en-tête de jpeglib fait partie du paquetage lib64jpeg-devel, et peut maintenant être installé avec :

# urpmi lib64jpeg-devel

Un autre exemple : vous pouvez installer un client de messagerie, mais vous ne connaissez pas de client de messagerie pour Linux. Vous effectuez donc une recherche sur le résumé des paquets avec les termes « mail » et « client ». Voici la commande :

$ urpmf --summary mail -a client

qui renverra :

… kmail:Email client, supporting POP3 and IMAP mailboxes evolution:Integrated GNOME mail client, calendar and address book claws-mail:The user-friendly, lightweight and fast GTK2 based email client thunderbird:Full-featured email, RSS, and newsgroup client thunderbird:Full-featured email, RSS, and newsgroup client thunderbird:Full-featured email, RSS, and newsgroup client claws-mail:The user-friendly, lightweight and fast GTK2 based email client …

L’option --summary est utilisée pour améliorer la recherche sur le résumé, et le commutateur -a traduit un « et ».

urpmi

Il s’agit de la commande principale de gestion des paquets, que l’on utilise pour installer le paquet que l’on souhaite ainsi que ceux dont il dépend :

urpmi nomdupaquet

Par exemple, si vous pensez que Sylpheed est un bon client de courriel parce qu’il se décrit lui-même comme « léger », vous l’installez avec : urpmi sylpheed

Avertissement : réaliser un urpmi nondupaquet installe habituellement – mais pas toujours – la dernière version du paquet. Urpmi comparera le numéro de version du paquet installé avec celui présent dans le média activé. Le cas exceptionnel se produit quand une mise à niveau d’un paquet est disponible avec un nom légèrement différent, alors que l’ancienne comme la nouvelle version sont présentes dans le média activé. Ceci est parfois nécessaire pour des raisons de rétro-compatibilité.

Un exemple notable de ce cas est urpmi autoconf qui n’installera pas la dernière version du paquet, dont le numéro de version le plus élevé est autoconf2.5-2.60. Il faudra utiliser à la place la commande urpmi autoconf2.5, qui installera la dernière version de la branche 2.5*. Remarquez que sur votre système Mageia, n’importe laquelle des deux versions sera installée : Mageia sélectionnera automatiquement la plus appropriée. Consulter /usr/share/doc/autoconf-2.13/IMPORTANT.README.MDK pour plus d’explications sur cet exemple précis.

Voir ci-dessous plusieurs remarques à propos de urpmq --fuzzy pour apprendre à éviter de tels problèmes de version.

Mise à jour du système

Un autre exemple d'utilisation de urpmi consiste à mettre à jour votre système avec les dernières mises à jour de sécurités/ corrections de bogues

# urpmi --auto-update

La commande ci-dessus met le système à jour pour faire la même chose que la séquence de commande suivante :

# urpmi.update -a && urpmi --auto-select

Les caractères && signifient "SI la première commande réussit, alors exécutez la deuxième commande". La première commande (urpmi.update -a) met à jour pour tous les médias la liste des paquetages disponibles. La deuxième commande (urpmi --auto-select) sélectionne toutes les mises à jour disponibles des paquets déjà installés et lance le processus de mise à jour. Urpmi dressera la liste des paquets évolutifs et vous demandera si vous souhaitez poursuivre. Si vous voulez continuer, tapez simplement y pour oui ou n pour non et appuyez ensuite sur Entrée. Lorsque le processus de mise à jour est terminé, une nouvelle invite apparaît à la fin de l'installation.

Si vous préférez utiliser l'interface graphique ('IGU') utiliser rpmdrake dans le centre de contrôle de Mageia: Gestion des logiciels --> Consulter les mises à jour disponibles et appliquer les correctifs ou les mises à niveau aux paquets installés

Mise à niveau du système vers la dernière version de Mageia

urpmi peut également être utilisé pour mettre à niveau votre système vers une version plus récente de Mageia.

Pour faire court

Retirer les anciens miroirs :

# urpmi.removemedia -a

Ajouter les miroirs des nouvelles versions (ici comme exemple Mageia 8)

# urpmi.addmedia --distrib --mirrorlist 'http://mirrors.mageia.org/api/mageia.8.$ARCH.list'

Lancer la mise à niveau :

# urpmi --auto-update --auto --force

Important : Avant de commencer, lisez les instructions plus complètes dans les notes de version !

(Et comme d'habitude, parcourez également le reste des notes de version et des errata.)

À Lire aussi, comment choisir la meilleure méthode de mise à niveau.

urpmi --parallel envoie les mises à jour vers les machines de votre réseau

Les mises à jour sont téléchargées sur l’une des machines (le “serveur”) puis à partir d’elle sont renvoyées vers les autres machines de votre réseau.

urpmi --parallel mettra à jour toutes les machines que vous indiquerez. Cf. man urpmi et man urpmi.files pour plus de précisions, ainsi que : https://www.happyassassin.net/2005/05/04/a-quick-guide-to-urpmi-parallel.

Le mode parallèle de urpmi fait ce à quoi il semble destiné : vous lancez une commande urpmi et elle s’exécute en parallèle sur plusieurs machines. Dans le détail, la machine sur laquelle vous lancez la commande teste son résultat sur chaque autre machine du groupe une par une, télécharge tous les paquets nécessaires pour toutes les machines du groupe, répartit les paquets appropriés entre elles, puis exécute urpmi sur chacune d’elle pour effectuer l’installation réelle. C’est très efficace pour une installation rapide de logiciels sur toutes vos machines ou bien pour les conserver à jour avec seulement une paire de commandes. Cela économise de la bande passante puisque chaque paquet nécessaire est téléchargé une seule fois. Le seul inconvénient à ce jour est que vous ne pouvez pas inclure la machine-serveur dans le groupe, ce qui rend ce mode un peu moins bon pour les petits réseaux privés.

Son utilisation est simple. Tout d’abord, assurez-vous que vous pouvez faire un ssh du serveur vers chaque machine cliente en tant que superutilisateur (vous devez saisir une phrase de passe ou un mot de passe, mais peut-être avez-vous configuré votre système pour utiliser les bonnes touches et ssh-add et donc éviter la saisie manuelle). Ensuite installez urpmi-parallel-ssh sur le serveur. Modifiez le fichier /etc/urpmi/parallel.cfg pour qu’il ressemble à ceci :

local:ssh:toy:htpc

Le premier paramètre est le nom du groupe, son choix est libre. Laissez ssh pour le second. Les paramètres suivants sont les noms d’hôtes des machines dans le groupe, saisissez-en autant que vous voulez (sauf le serveur lui-même, sinon urpmi tombera sur ses propres fichiers verrouillés et sera bloqué).

Maintenant vous pouvez l’utiliser. Sur le serveur, lancez :

urpmi --parallel local noms_des_paquets

Aussi longtemps que urpmi sur le serveur accède à partir de son média urpmi à tous les paquets dont ont besoin toutes les machines clientes, tout fonctionnera sans problèmes. Le moyen le plus facile pour arriver à ce résultat est que toutes les machines - serveur et clientes - utilisent le même média urpmi.

Installer à partir d’un dépôt non activé, p.ex. Backports

Pour ne pas installer les paquets des dépots backports par erreur, vous devez ne pas avoir activé le dépôt backport.

Vous pouvez dire à urpmi d’installer un dépôt non activé lorsque vous le souhaitez.

(Bien sûr, les dépôts doivent être configurés et mis à jour, voir urpmi.update).

Voici un exemple pour installer le programme gnucash à partir du dépôt Backports testing

# urpmi --search-media 'Backports Testing' gnucash

urpme

Cette commande permet de désinstaller un paquetage avec toutes ses dépendances et vous indique si un logiciel installé sur votre machine dépend de ce que vous souhaitez désinstaller, vous donnant ainsi la possibilité d’interrompre la procédure ou de continuer en désinstallant le paquetage et ceux qui en dépendent. Pour l’utiliser, faites urpme.

Par exemple, VLC est si bon que vous souhaitez vous débarrasser de votre ancien lecteur multimédia. Vous pouvez faire de la place sur votre disque dur avec urpme votre_ancien_lecteur_multimédia.

Utilisation avancée

Pour supprimer tous les paquets apparemment inutilisés, ou pour supprimer une tâche entière comme un environnement de bureau, voir Supprimer des paquets.

Faites attention aux avertissements concernant la possibilité de supprimer trop de paquets !

urpmq

En utilisant urpmq vous pouvez trouver beaucoup d’informations sur un rpm.

  • urpmq -i peut vous donner des informations sur les rpm que vous pouvez installer. Essayez urpmq -i bash
  • urpmq -d fournit une liste de tous les rpm nécessaires à l’installation d’un logiciel.
  • urpmq -d bash vérifie les rpm nécessaires.
  • ajouter le commutateur -m pour voir ceux qui ne sont pas installés sur le système pour le moment.
  • --sources récupérera les sources.
  • Ainsi, avec urpmq -d -m --sources vous pouvez facilement obtenir une liste d’url correspondant aux rpm que vous souhaitez obtenir : très pratique si vous n’avez pas une bonne connexion à Internet.
  • urpmq --list-media liste tous les médias configurés, y compris les médias inactifs.

Pour lister uniquement les médias actifs, ajoutez « active » sur la ligne de commande, et vous pouvez ajouter l’option « --list-url » pour connaitre la source de ces médias :

$ urpmq --list-media active --list-url
Core Release http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/8/x86_64/media/core/release Core Updates http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/8/x86_64/media/core/updates Core Updates Testing http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/8/x86_64/media/core/updates_testing Nonfree Release http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/8/x86_64/media/nonfree/release Nonfree Updates http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/8/x86_64/media/nonfree/updates

Cet exemple montre uniquement un système 64 bits. Aucun autre media n’est configuré.

Pour éditer les médias, lancez la configuration des médias drakrpm-edit-media, (ou utilisez le centre de controle Mageia). Si vous souhaitez également sélectionner ou désélectionner un média pour les mises à jour (c’est-à-dire que vous faites tourner Cauldron), lancez drakrpm-edit-media --expert

Remarque :
  • urpmq cherche uniquement dans les dépôts actifs – Vous devez configurer et rendre actifs les médias de distribution complets pour que urpmq puisse trouver tous nos paquets.
  • Utilisez les dépôts 32 bits sur les systèmes 64 bits uniquement si nécessaire (par exemple pour Steam), et si un paquet provenant d’un dépôt 32 bits a été installé, conservez ce dépôt et son dépôt de mise à jour activée afin de ne pas entraver potentiellement les futures mises à jour.
  • Les dépôts Tainted contiennent des programmes qui peuvent être couverts par des brevets, vérifiez la légalité dans votre pays.
  • Backport ne contient en fait que les paquets rapatriés de la prochaine version de Mageia.
Attention !
Quand vous utilisez urpmq pour chercher des paquetages, soyez sûr de bien saisir la différence entre l’utilisation de cette commande avec ou sans l’option --fuzzy. Vous risquez de manquer certains paquetages si vous ne faites pas attention. Si urpmq trouve un paquetage avec exactement le même nom, vous n’aurez que celui-ci comme retour, vous ne verrez pas d’autres paquets qui contiennent le même nom.

Par exemple : Imaginez que votre meilleur ami vous parle de 0ad, un jeu de stratégie en temps réel (STR) sur la guerre antique.

$ urpmq -r 0ad
0ad-0.0.23b-16.mga8|0ad-0.0.25-1.mga8|0ad-0.0.25b-1.mga8|0ad-0.0.25b-1.1.mga8

Super ! Il y a un paquetage Mageia avec un nom similaire ! Mais vous ne voyez pas les autres paquetages contenant ce nom ! Nous recherchons à nouveau : notez qu’il manque le « d » à la fin du nom du paquetage.

$ urpmq -r 0a
Pas de paquetage nommé 0a

Cette fois, le résultat de la recherche est très différent : Nous ne voyons plus un mais deux paquetages Comparez la requête suivante avec les deux précédentes.

$ urpmq -r --fuzzy 0ad
0ad-0.0.25b-1.1.mga8 0ad-data-0.0.25b-1.mga8

Vous voyez la différence qu’apporte l’option « --fuzzy ».

urpmq --fuzzy est également formidable pour voir quels sont les autres paquetages disponibles : parfois une nouvelle version majeure ne fournit pas de rétrocompatibilité. Pour cette raison, la nouvelle version sera distribuée sous un nom de paquet légèrement différent. Maintenant, vous êtes sûr de ne rien manquer.

Remarque :
--fuzzy » permet de désactiver la recherche rapide du nom exact du paquetage, par exemple, cela donnera tous les paquetages contenant le mot à chercher, même si un seul a le nom donné (-y remplit la même fonction).
$ urpmq -r --fuzzy fvwm
fvwm-crystal-3.7.0-1.mga8 fvwm2-2.6.9-4.mga8 fvwm2-config-mageia-2.6.9-4.mga8 fvwm2-doc-2.6.9-4.mga8 fvwm3-1.0.2-1.1.mga8 fvwm3-config-mageia-1.0.2-1.1.mga8 fvwm3-doc-1.0.2-1.1.mga8 task-fvwm2-1-7.mga8

Vous voyez : la nouvelle version est empaquetée sous un autre nom (nom incluant le numéro de version croissante)

Utiliser les interfaces graphiques

gurpmi

gurpmi est l’interface graphique pour urpmi et peut être en ligne de commande pour intaller/rechercher un paquetage depuis un médium ou un prompt (un terminal). Il est également utilisé par rpmdrake pour afficher les messages en interaction avec l’utilisateur.

rpmdrake

Mageia propose un ensemble d’outils graphiques agréable pour effectuer les mêmes tâches. Rpmdrake est celui appelé depuis le Centre de contrôle Mageia pour ajouter/supprimer des programmes. Vous pouvez également y lancer une mise à jour et sélectionner des dépôts. Voir notre documentation officielle.

manatools

Une réécriture partielle du centre de contrôle Mageia inclut depuis Mageia 5.Un essai peut être fait en choisissant les programmes mpan ou mana.

dnfdragora

DNF est l’étoile montante de la gestion des paquetages. Dnfdragora est l’interface graphique.

Consultez la page Utilisation de DNF pour savoir comment le configurer et l'utiliser, et prenez note des mises en garde actuelles.

Une question de sécurité

Quels sont les problèmes de sécurité ?

Urpmi doit être lancé en tant qu’administrateur afin d’installer les paquetages. Une personne intelligente mais malveillante pourrait éventuellement inciter un utilisateur Mageia crédule à installer un paquet qui ressemble à un paquet régulier utilisé par beaucoup d’utilisateurs, mais qui contient un Troyen, du code malveillant. Une fois installé, l’application peut libérer un virus, un ver ou un logiciel espion… Jusqu’ici, il n’y a pas eu d’informations qu’un tel exploit ait été tenté, mais dans quelque temps, quand GNU / Linux sera le système d’exploitation le plus largement utilisé, il est possible que certaines personnes veuillent essayer de réaliser un tel un exploit. Heureusement ils échoueront, car une saine préoccupation pour la sécurité a toujours fait partie de la communauté GNU/Linux. La plupart des paquets sont signés par les mainteneurs pour prouver leur authenticité. Veuillez consulter GnuPG plus de détails.

Outre une personne essayant de vous tromper pour installer son programme malveillant, ce qui peut se produire le plus souvent est que vous essayez d’installer un paquet corrompu, soit durant le transfert FTP, soit à cause d’une rayure sur votre CD/DVD… Avant l’installation, urpmi vérifiera l’intégrité du paquet en utilisant le chiffrement MD5 et la clé GPG incluse dans le paquet. Voir la section concernée ci-dessous pour plus de détails.

Parfois, quand on utilise urpmi, cela peut se terminer avec les lignes suivantes :

rpmdb : /var/lib/rpm/Pubkeys : unexpected file type or format rpmdb : /var/lib/rpm/Pubkeys : unexpected file type or format rpmdb : /var/lib/rpm/Pubkeys : unexpected file type or format rpmdb : /var/lib/rpm/Pubkeys : unexpected file type or format rpmdb : /var/lib/rpm/Pubkeys : unexpected file type or format rpmdb : /var/lib/rpm/Pubkeys : unexpected file type or format rpmdb : /var/lib/rpm/Pubkeys : unexpected file type or format rpmdb : /var/lib/rpm/Pubkeys : unexpected file type or format

L’origine du problème n’est pas claire : soit le fichier a été corrompu lors d’une mise à niveau, soit le processus urpmi a été terminé par un utilisateur impatient.

La solution est d’effacer le fichier rpmdb /var/lib/rpm/Pubkeys et d’importer à nouveau les clés publiques. Cf. GnuPG.

Somme MD5

La somme MD5 est le résultat d’une opération mathématique sur chaque bit du paquet placé à l’intérieur du paquet RPM. Ceci permet à rpm de vérifier si l’intégrité du paquet est valide ou non. Si pour une raison quelconque le fichier est corrompu, rpm (et urpmi) refuseront de l’installer. rpmdrake affichera un message à l’utilisateur pour demander si l’installation doit continuer.

Voici un exemple :

[root@localhost votre_nom_utilisateur]# urpmi kdesdk rpmdb : /var/lib/rpm/Pubkeys : unexpected file type or format error : cannot open Pubkeys index using db3 - Invalid argument (22) The following packages have bad signatures: /var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm : Invalid signature ((SHA1) DSA sha1 MD5 GPG GPG#70771ff3 NOT OK) Do you want to continue installation ? (y/N) y installing /var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm error : /var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm : MD5 digest : BAD Expected(97f2ba5a91888cd3af40f89be6b65868) != (393221db35071aa90eaa73816a9a5ba8) unable to install package /var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm

Remarquez les deux lignes Invalid signature ((SHA1) DSA sha1 MD5 GPG GPG#70771ff3 NOT OK) et MD5 digest : BAD Expected (97f2ba5a91888cd3af40f89be6b65868) != (393221db35071aa90eaa73816a9a5ba8). Le fichier kdesdk-3.1.3-9mdk.i586.rpm est corrompu et ne sera pas installé.

La solution est de supprimer le fichier /var/cache/urpmi/rpms/ et de le télécharger à nouveau, il est possible de supprimer tous les fichiers dans ce cache avec la commande urpmi --clean. Essayez de le réinstaller avec urpmi ou rpm --import <filename>.

Si ça ne fonctionne toujours pas, cela signifie que votre miroir comporte un fichier corrompu. Essayez de le télécharger manuellement à partir de deux ou trois autres miroirs et de l’enregistrer dans le répertoire /var/cache/urpmi/rpms/. Toujours manuellement, supprimez le fichier téléchargé précédemment avant d’avoir essayé d’utiliser un autre miroir. Puis installez-le à nouveau avec urpmi.

Il peut arriver que le même fichier corrompu soit présent sur tous les serveurs FTP. Si vous avez essayé plusieurs serveurs et que vous rencontrez toujours le même problème, Vérifiez sur un forum Mageia ou une liste de diffusion si d’autres utilisateurs ont le même problème avec ce fichier. Si c’est le cas, il est probable qu’un nouveau fichier sera prochainement publié.

Correction des problèmes

Base de données RPM verrouillée

Si vous obtenez « Une erreur fatale est survenue : la base de donnée est verrouillée » en cours d’installation d’un paquetage, cela signifie généralement qu’un autre processus utilise la base de données urpmi. Ce peut être par exemple :

  • une des applications Mageia de gestion des logiciels :
    • Drakrpm : alias « Installer et supprimer des logiciels »,
    • Drakrpm-Edit-media : « Configurer les sources pour installer et mettre à jour des logiciels ».
  • mgaapplet, l’appliquette de notification des mises à jour, qui est déjà en train de mettre à jour la base de données urpmi en tâche de fond (il s’agit de l’appliquette qui affiche l’icône dans la zone de notification, informant les utilisateurs de la disponibilité de mises à jour).
  • Un processus urpmi/rpm installant ou désinstallant un paquetage.

Depuis la version Mageia 1 urpmi affiche toute la ligne de commande du processus en utilisant la base de données de urpmi, ce qui le rend plus facile à identifier.

Si vous êtes certain de ne pas avoir lancé une autre des commandes urpmi ou des applications graphiques de gestion des logiciels, alors c’est probablement mgaapplet qui est en cours de mise à jour de la base de données urpmi et qui vérifie les évolutions en tâche de fond. Attendez juste un moment, puis réessayez.

Si le problème persiste, vérifiez ce qui utilise déjà la base de données, avec la commande suivante (comme indiqué ci-dessus urpmi affichera la ligne de commande du processus qui verrouille la base de données) :

$ ps aux | grep rpm

Vous pouvez tuer le processus, mais vous devrez être prudent afin de ne pas abîmer la base de données urpmi/rpm database. Par exemple, si le processus est urpmi.update, vous pouvez le tuer, car cette commande ne fait que mettre à jour la base de données urpmi. Donc si vous tuez ce processus sans qu’il ait terminé sa tâche, il remettra à nouveau la base à jour la prochaine fois qu’il sera exécuté.

Effacer les fichiers de verrouillage urpmi manuellement n’est ni recommandé ni nécessaire

urpmi utilise f-lock pour verrouiller sa base de données quand un processus urpmi est en cours. Cela signifie que urpmi détecte si les fichiers de verrouillage (/var/lib/urpmi/.LOCK et /var/lib/rpm/RPMLOCK) sont dans un état dit « stale (périmé) » (c’est-à-dire qu’un processus s’est exécuté auparavant, a créé des fichiers LOCK, mais ne s’est pas terminé proprement et ainsi n’a pas effacé ces fichiers) ; lorsque urpmi détecte des fichiers LOCK qui sont dans un état « stale (périmé) » il les efface simplement et en crée de nouveaux. Vous n’aurez de ce fait pas besoin d’effacer ces fichiers LOCK manuellement. Vous devrez plutôt suivre les étapes présentées au-dessus pour effectuer vos recherches et vos corrections, si le message « Une erreur fatale est survenue : la base de donnée est verrouillée » est apparu.

Reconstruire votre base de données

Si la base de données devient incohérente (une incohérence peut amener rpm à vous dire qu’un paquet est déjà installé alors qu’il ne l’est pas réellement, et vice-versa), alors vous pouvez reconstruire la base rpm en exécutant cette commande :

# rpm --rebuilddb
  • C’est une bonne idée de sauvegarder régulièrement votre répertoire /var/lib/rpm. Vous pourrez toujours revenir à un état antérieur correct de la base et réinstaller les paquetages qui sont venus ultérieurement, avec la commande :
# rpm -ivh --justdb --noscripts --notriggers

Échec des téléchargements

Les échecs de téléchargement peuvent entraver la réussite de la mise à jour.

Pour supprimer les mauvais fichiers rpm, utilisez :

# urpmi --clean

ou utilisez

# urpmi --resume

pour poursuivre un téléchargement interrompu.

Message d’erreur « Le médium contrib utilise un fichier de liste invalide »

# /var/lib/urpmi/list.contrib

Cela empêchera l'erreur de se produire sans interférer avec l'installation du paquet.

Vérification des paquetages RPM

Un outil vraiment utile pour détecter un système cassé est de vérifier l’état des paquetages par rapport à la base de données rpm :

$ rpm -Va

Cette commande vous dira quels paquetages ont été modifiés depuis que vous les avez installés (c’est-à-dire qu’elle énumère toutes les incohérences de votre système par rapport à la base de données rpm). Par exemple, si vous avez une extinction du système lors du démarrage, ou si vous avez fait une erreur idiote, certains fichiers peuvent être corrompus. Dès lors, vous pouvez remettre votre système à neuf en réinstallant les fichiers concernés. Cette réparation peut être faite sur un système qui ne démarre plus en utilisant un CD de secours qui relancera votre système et le réparera.

Pour vérifier un seul paquetage, faites rpm -V nom_du_paquet (le nom seul est suffisant, les numéros de version, etc. peuvent être laissés de côté).

Pour réinstaller un paquetage, utilisez la commande :

# urpmi --replacepkgs nom_du_paquetage

Vous pouvez également utiliser la commande urpmi --no-install nom_du_paquetage pour télécharger le fichier rpm sans l’installer, et ensuite exécuter :

# rpm -i --replacepkgs /var/cache/urpmi/rpms/nom_du_paquetage.rpm

Pour installer le paquetage (en supposant que nom_du_paquetage.rpm est le nom du fichier rpm).

Pour vérifier les sommes de contrôle MD5, chiffrement et signature GPG d’un ou plusieurs paquetages :

$ rpm -K foo.123.rpm

ou

$ rpm -K foo*

Sources RPM

Afin de travailler sur les fichiers sources d’un paquetage, vous pouvez utiliser urpmi pour télécharger les fichiers rpm SRPMS :

# urpmi.addmedia core_src http://ftp.proxad.net/mirrors/mageia.org/distrib/6/SRPMS/core/release/

puis, vous pouvez les installer :

# urpmi --install-src nom_du_paquetage

Si vous ajoutez --noclean en option, vous conserverez le fichier source dans le répertoire de construction. Veuillez noter que vous n’avez pas besoin d’être administrateur pour télécharger le fichier source rpm, tapez simplement :

$ /usr/sbin/urpmi --install-src nom_du_paquetage

Vous obtenez alors le fichier SRPM désarchivé dans votre répertoire personnel ~/rpmbuild. Maintenant vous pouvez reconstruire votre programme binaire. (Cf. Créer un paquetage pour plus de détails) :

$ rpmbuild -bb ~/rpmbuild/SPECS/nom_du_paquetage.spec

Contrôle par MSEC très lent

Lors de la vérification du système par msec, celui-ci utilise la base de données rpm, mais avec une priorité très basse (nice 19). Sur une machine lente ce processus peut prendre beaucoup de temps. Si vous tapez ps -e, il affiche msec, rpmv, grep et sort. Vous pouvez alors accélérer rpmdrake / urpmi en accroissant la priorité de rpmw, grep et sort à 0.

Autres sources d’information pour en connaitre davantage sur urpmi

Vous trouverez ci-dessous d’autres ressources avec des informations plus détaillées sur urpmi :

  • Pour obtenir une aide succincte, il suffit de lancer la commande urpm* elle-même.
  • pages man : consulter les pages man pour avoir toutes les options. Ce sont les sources d’information les plus à jour (Rappel : elles peuvent aussi être ouvertes dans le navigateur Konqueror, il suffit de saisir man:urpmi dans la barre d’adresse).
  • Lisez également les instructions dans les notes de version de Mageia pour la version vers laquelle vous souhaitez effectuer la mise à niveau.

Voir les paquetages installés en utilisant RPM

  • rpm -qa répertoirie tous les paquetages installés. Le faire passer à travers grep, c’est-à-dire rpm -qa | grep drak pour voir tous ceux qui portent le mot « drak » dans leur nom.
  • « À partir de quel paquet source a été construit le drakrpm ? » rpm -qif `which drakrpm`

Autres possibilités pour installer des programmes sur Mageia

Consulter Les méthodes pour installer des programmes