Table des matières

Tout sur RPM

Installation/désinstallation de paquetages, mises à jour

http://lea-linux.org/software/rpm.php3 http://www.urpmi.org/fr/urpmi_first_fr.php http://personal.riverusers.com/~thegrendel/build-4.html#ss4.1 (=Whats wrong with rpms?) http://www.mandrakehelp.com/RPM-HOWTO.html#1.2 http://speculation.org/garrick/urpmifaq.txt

rpm, urpm* en mode graphique, mcc, kpackage

rpm === http://www.pcentraide.com/index.php?showtopic=175 Commande / syntaxe rpm

Installer # rpm -i nom_paquet.rpm Désintaller # rpm -e nom_paquet.rpm Mise a jour # rpm -U nom_package.rpm

Vérifier qu'un paquetage est bien installé


$ rpm -V NomDuPaquet

rpm -q (ou –query}


rpm -qa (-a ou –all) affiche tous les paquets installés rpm -qf foo (-f ou –file) Retourne les paquets contenant le fichier foo rpm -ql paquet (-l ou –list) liste les fichiers contenu dans le paquet rpm -qR paquet (-R ou –requires) liste les paquets nécessaires pour ce paquet (dependances) rpm -qd paquet (-d ou –docfiles) liste uniquement les fichiers de documentation rpm -q –dump paquet infos complètes sur les fichiers rpm -qi paquet infos complètes sur le paquet rpm -q –provides paquet List capabilities this package provides (?) version et libs ?

Exemples : - retourne la liste des rpm apache installés $ rpm -qa | grep apache

- cherche dans quel paquet se trouve un logiciel : $ rpm -qf $(which perl) perl-base-5.8.8-6mdk

$ rpm -qf $(which vmstat) procps-3.2.7-2mdv2007.1

- retourne la liste des fichiers contenus dans les paquets qui contiennent /bin/bash $ rpm -ql $(rpm -qf $(which bash))

- retourne la liste des applis installées, derniers installés en tête $ rpm -qa –last

Rechercher et désinstaller un package


$ rpm -qa nuke PHP-nuke-6.0-1mdk

# rpm -e foo ← désinstalle le package foo-x.y.rpm

Remplacer, mettre à jour une package


# rpm -Uvh foo ← installe ou remplace # rpm -Fvh foo ← remplace (mise à jour d'une version préexistante)

Remet une package plus ancien : # rpm -Uvh –replacepkgs –nodeps –oldpackage foo.rpm

Afficher les dépendances d'un programme


Exemple : $ rpm -qR man (-R ou –requires) groff-for-man setup rpmlib(PayloadFilesHavePrefix) ⇐ 4.0-1 rpmlib(CompressedFileNames) ⇐ 3.0.4-1 bash libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.3)

Rpm “source” (appli.src.rpm)


cf. http://www.rpm.org/max-rpm/s1-rpm-miscellania-srpms.html

Pour recompiler le paquet en tenant compte de l'environnement : rpm –rebuild appli.src.rpm

urpm*

urpmf


Liste les paquets qui contiennent la chaîne passée en argument.

NB : il faut que hdlist soit présent, sinon message d'erreur “Note: no hdlist for medium “Main Updates (Official2008.0-1)Mandriva Linux - 2008.0-1)” , unable to return any result for it”. Dans ce cas, utiliser urpmq -y (ou urpmq –fuzzy)

$ urpmf /usr/bin/kwrite kdebase-progs:/usr/bin/kwrite kdebase-progs:/usr/bin/kwriteconfig

$ urpmf avicat avifile-samples:/usr/bin/avicat avifile-samples:/usr/share/man/man1/avicat.1.bz2

urpmi


Configurer les sources : plusieurs méthodes : - http://easyurpmi.zarb.org - K → Configuration → Packaging → Software source manager

Par exemple menu remove medium pour retirer un CD

- urpmi.setup : Pour recharger un CD : urpmi.addmedia CD1_MK9 removable:mnt/cdrom_ide /var/lib/urpmi cf. #urpmi.addmedia Pour ajouter une source ftp (ou http) urpmi.addmedia contrib ftp://ftp.u-strasbg.fr/pub/linux/distributions/mandrake/9.0/contrib/RPMS Pour mettre à jour la base des sources # urpmi.update –all (urpmi.update -a à partir de MDK10) La liste des sources est dans /etc/urpmi/urpmi.cfg La liste des logiciels et les index sont dans /var/lib/urpmi/ Dévérouiller la base de donnée urpmi : supprimer le fichier /var/lib/urpmi/LOCK Pour supprimer toutes les sources # urpmi.removemedia -a Pour installer un paquetage ————————— Exemple # urpmi kdenet (recherche les paquets qui contiennent “kdenet”) The following packages contain kdenet: kdenetwork-devel kdenetwork kdenetwork-kppp # urpmi kdenetwork et répondre aux questions Pour installer automatiquement les mises à jour ———————————————– # urpmi –auto-select NB : faire au préalable une mise à jour des sources avec : # urpmi.update -a Au lieu de ces 2 commandes, utiliser : # urpmi –auto-update qui fait une mise à jour des sources suivie de la mise à jour du système. Pour éviter la mise à jour de certains paquets ———————————————- /etc/urpmi/skip.list Pour contrôler si l'installation s'est bien passée ————————————————— # less /var/log/urpmi.log Faire une base locale de mises à jour ————————————- Le but est double : 1 - pouvoir faire les mises à jour sur des PCs non connectés au réseau ou avec une connexion trop lente pour être utilisable 2 - pouvoir, lors d'une installation de machine, charger les mises à jour de sécurité avant de la connecter au réseau : ça permet d'éviter son piratage éventuel alors qu'elle est encore vulnérable. Les étapes : 1 - récupérer le répertoire ad hoc (actuellement /mandrake/updates/9.1/RPMS) à l'aide de wget directement sur un support amovible (ou sur un disque dur, puis graver un CD) 2 - Démonter le support amovible, le monter sur la machine à mettre à jour 3 - Mettre à jour la base urpmi avec urpmi.update 4 - Faire les mises à jour des logiciels avec urpmi –auto-select En détail 1 - Récupérer sur l'un des nombreux serveurs disponibles les rpms des mises à jour à l'aide de wget : $ wget -mirror -P /mnt/disk -nH –cut-dirs=3 ftp://NomDuServeurFTP/pub/linux/distributions/mandrake/updates/9.1/RPMS avec : -mirror pour créer localement un “mirroir” du répertoire RPMS du serveur. Avantage : si on lance à nouveau cette commande, seuls les fichiers nouveaux ou modifiés sont transférés -P /mnt/disk pour écrire à un endroit donné (ici un support amovible monté en /mnt/disk) -nH et –cut-dirs options facultatives : -nH pour effacer le nom du serveur de l'arborescence créée –cut-dirs=3 pour effacer /pub/linux/distributions de l'arborescence créée Dans cet exemple l'ajout de -P et –cut-dirs permet de simplifier l'arborescence créée en : /mnt/disk/mandrake/updates/9.1/RPMS au lieu de : /mnt/disk/NomDuServeurFTP/pub/linux/distributions/mandrake/updates/9.1/RPMS 2 - Démonter le disque amovible et le monter sur la machine à mettre à jour de façon à avoir (par exemple) les rpms dans : /mnt/disk/mandrake/updates/9.1/RPMS 3 - Ajouter le répertoire contenant les rpm à la base urpmi Ca peut se faire soit en mode graphique, soit en ligne de commande : Mode graphique : K → Configuration → Packaging → Software Sources Manager et ajouter le répertoire contenant les rpms dans les sources à utiliser, dans cet exemple : /mnt/disk/mandrake/updates/9.1/RPMS Mode ligne de commande : # urpmi.addmedia updates file:/mnt/disk/mandrake/updates/9.1/RPMS Puis mettre à jour la base : # urpmi.update updates 4 - Faire toutes les mises à jour en mode automatique : # urpmi –auto-select Les fichiers “hdlist” ne sont pas indispensables : urpmi.update les crée. Ceci dit, on peut les récupérer sur le serveur dans /9.1/base. Dans ce cas les ajouter (ici hdlist.cz) : # urpmi.addmedia updates file:/mnt/disk/mandrake/updates/9.1/RPMS with ../base/hdlist.cz Sinon on peut les créer, avec la commande : $ genhdlist nom_du_répertoire Attention : les hdlists vont dans le répertoire contenant les rpms. Il ne semble pas y avoir d'option dans genhdlist pour rediriger les fichiers créés dans un répertoire “base” : le faire “à la main”. Dans les messages urpmi ———————– ETA = Estimated Time of Arrival Lister les sources —————— $ urpmq –list-media $ urpmq –list-media active Lister les paquets disponibles —————————— urpmq –list urpmq –list -f Exemples : $ urpmq –list | grep ekiga ekiga ekiga $ urpmq –list -f | grep ekiga ekiga-2.0.11-1mdv2008.0.i586 ekiga-2.0.12-1mdv2008.0.i586 $ urpmq -f ekiga ekiga-2.0.12-1mdv2008.0.i586|ekiga-2.0.11-1mdv2008.0.i586 $ urpmq -f kernel-2.6.22.18 No package named kernel-2.6.22.18 The following packages contain kernel-2.6.22.18: actuator-kernel-2.6.22.18-desktop-1mdv actuator-kernel-2.6.22.18-desktop586-1mdv … Paquets (installés ou non ?) ————————— $ urpmq –fuzzy nom_paquet (ou urpmq -y nom_paquet ou urpmq -y nom_paquet) $ urpmq -l nom_paquet liste en plus les fichiers Information (questions) sur un paquet ————————————– $ urpmq -h Mode d'emploi de urpmq $ urpmq –summary paquet (ou urmpq -S paquet) Affiche une courte infomation sur le paquet $ urpmq -i paquet Affiche plus d'informations $ urpmq -l paquet Liste les fichiers du paquet $ urpmq -d paquet Affiche les dépendances Voir où un paquet est installé : ——————————– $ urpmq arpw no package named arpw The following packages contain arpw: arpwatch arpwatch2html ou bien : $ urpmq –fuzzy arpw arpwatch arpwatch2html Puis : $ rpm -ql arpwatch /etc/rc.d/init.d/arpwatch /etc/sysconfig/arpwatch /usr/sbin/arpsnmp /usr/sbin/arpwatch … Installer un ensemble de paquets (metapaquets, meta packages dans mcc à partir de MDV 2008.1) ——————————– Le nom des paquets qui regroupent un ensemble de paquets commence par task- : $ urpmq –list | grep task- task-3ddesktop task-c++-devel task-c-devel task-gnome task-kde task-kde-devel task-kde4 task-kde4-devel etc. urpmi problèmes =============== urpmi database locked ——————— # rm -f /var/lib/urpmi/.LOCK # rm -f /var/lib/urpmi/.RPMLOCK Installations en mode graphique =============================== # rpmdrake Installation en mode graphique : # rpmdrake-remove Configuration des media : # edit-urpm-sources.pl (/usr/bin/perl /usr/bin/edit-urpm-sources.pl) Mises à jour # MandrivaUpdate ou bien passer par le menu System / Configuration /Packaging … ou bien encore y accéder par mcc En cas de problème, essayer : rpm –rebuilddb (compter plusieurs minutes pour le mise à jour des index de la db) Problèmes ——— “Les paquetages suivants ont des signatures non valides” Plusieurs causes (Les paquetages suivants ont des signatures non valides) Vérifier en particulier sue les bonnes clés sont installées : # mcc > Gérér les clés > Ajouter les clés correspondant aux média utilisés Les clés sont dans les paquetages gpg-pubkey