Gestion des paquets

Un article de Mille-Xterm.

Jump to: navigation, search

Un paquet (aussi appellé paquetage ou package en anglais) est un fichier qui permet d'installer un logiciel. Il s'agit d'une archive (fichier compressé) comprenant les fichiers informatiques, les informations et procédures nécessaires à l'installation d'un logiciel sur un système d'exploitation au sein d'un agrégat logiciel, en s'assurant de la cohérence fonctionnelle du système qui a été modifié.

Le système d'exploitation Mandriva utilise des paquet de type RPM

Sommaire

Gestion des paquets avec une interface graphique

Vous pouvez accèder à la gestion des paquet à l'aide du men u

Gestion des paquets en ligne de commande

Système-->Configuration-->Paquetage-->Installer des logiciels

Installation d'un paquet

Installation d'un paquet à partir d'une logithèque 
urpmi NOM_DU_PAQUET
Installation d'un paquet à partir d'un fichier local 
rpm -ivh NOM_DU_PAQUET



Installation avec i

Installation d'un paquetage dams une arborescence spécifique

Par exemple pour installer un paquetage sous /opt/ltsp/ on peut utiliser la commande :
urpmi NOM_PACKAGE --root /opt/xtermroot/


Suppression d'un paquetage

Commandes qui permettent de supprimer des paquetages

  • urpmi NOM_DU_PACQUETAGE
  • rpm -e NOM_DU_PACQUETAGE

Mise à jour d'un paquetage

rpm -Uvh NOM_DU_PACQUETAGE


Revenir à une ancienne version d'un paquetage

rpm -Uvh --oldpackage NOM_DU_PACQUETAGE


Installer et mettre à jour tous les paquetages automatiquement

Pour mettre à jour vos rpms sans savoir quels rpms installer, vous pouvez utiliser les commandes suivantes :

urpmi --auto-select --no-verify-rpm


Afficher la version d'un paquetage

rpm -q nom_du_paquetage Note: Le nom du paquetage doit être la chaîne complète avant les informations de version. Par exemple : apache2, apache2-mod_ssl


Afficher la liste des paquetages contenant un mot spécifique

rpm -qa|grep NOM_PARTIEL_RECHERCHÉ


Afficher la liste des fichiers contenus dans un paquetage spécifique

urpmf NOM_PACKAGE


Trouver un paquetage utilisant un fichier spécifié

  • rpm -qf CHEMIN_DU_FICHIER
  • urpmf : Affiche une liste de paquetages procurant le fichier spécifié en argument. La recherche s'effectue sur tous les paquetages installés ou non.

Gestion des sources de téléchargement des paquetages

Ajout d'une source de téléchargement

Vous pouvez ajouter une source de téléchargement avec la commande suivante :
urpmi.addmedia "NOM_DU_MEDIA" ADRESSE_DES_SOURCES with FICHIER_LISTE

Vous pouvez utiliser le Module de recherche des miroirs du club Mandriva pour trouver les sources de téléchargement offertes.

Exemple d'utilisation


Supprimer les sources de téléchargement

Suppression d'une source de téléchargement spécifique avec la commande suivante :
urpmi.removemedia

Suppression de toute la liste des sources

Vous pouvez supprimer toute la liste des sources de téléchargement avec la commande suivante :
urpmi.removemedia -a

Mise à jour de la base de données des sources de téléchargement

Vous pouvez mettre à jour la base de données des sources avec la commande suivante :
urpmi.update update_source


Recompiler et installer GDM avec les sources pour Mandriva 10.2

  • Installer les rpms de développement avec les commandes suivantes :
    urpmi libglade2.0-devel
    urpmi libgnomeui2-devel
    urpmi librsvg-devel
    urpmi pam-devel
  • Reconstruire le rpm avec la commande :
    rpmbuild --rebuild SOURCE_MILLE_DE_XTERM/Packages/SRPMS/gdm-2.4.4.7-10mdk.src.rpm
  • Si zenity n'est pas installé, installez le avec :
    urpmi zenity
  • Les nouveaux rpm se trouvent dans le répertoire :
    cd /usr/src/RPM/RPMS/i586/

Recompiler avec Patch

  • Installer les paquetages sources (voir rpmpfind les fichier .src.rpm)
  • Voir l'historique des rpm nom_du_rpm--changelog
  • Installer les src de trunk de Mille-Xterm
  • Voir l'historique des rpm nom_du_rpm--changelog

Comaparer les fichiers spec

Ajouter les tgz nécessaires exemple : prendre celui de jacque Gélinas Mettre à jour le fichier spec

Faire un RPM build _bb -glib.spec

Système de syncronisation des paquetages entre les postes

Création de la liste des rpm

À partir du poste qui contient tout les rpm nécessaires :

  • Créer une liste des rpms qui sont installés avec la commande :
    rpm -qa --qf "%{NAME}\n" > rpmlist.txt
  • S'assurer que tous les rpms sont présents
for i in `cat $RPMLIST`
do
  urpmi --no-verify-rpm $i
done

Syncronisation d'un poste

  • Copier la liste qui a été précédemment créée sur le serveur à syncroniser et mettre les droits d'exécution au besoin avec les commandes :
    • chmod +x rpmscript-addlist.sh
    • chmod +x rpmscript-remdiff.sh
  • Afficher à l'écran les RPMS qui sont installés sur le poste mais qui ne sont pas dans la liste avec le script rpmscript-remdiff.sh rpmlist.txt
  • Supprimer les RPMS qui n'ont pas de dépendances et qui ne sont pas nécesaires avec la commande urpme nom_du_rpm
 Attention, il faut éviter de supprimer les RPMS qui ont des dépendances car on pourrait désinstaller des RPMS nécessaires à d'autres
  • Installer les RPMS manquants avec le script rpmscript-addlist.sh rpmlist.txt
 Attention, il faut enlever le RPM GDM car celui qui est utilisé par X-Term a été modifié pour faire fonctionner le bouton arrêter.

Script - rpmscript-addlist.sh

Ce script tente d'installer tous les RPMS qui sont dans la liste qui est envoyée en paramètre

#!/bin/bash
RPMLIST=$1

echo "RPMLIST="$RPMLIST

if [ $RPMLIST ]
then
  for i in `cat $RPMLIST`
  do
    echo "Process file : " $i
    urpmi --no-verify-rpm $i
  done
else
  echo "Fichier invalide"
fi 
exit 1

Script - rpmscript-remdiff.sh

Ce script affiche à l'écran tous les RPMS qui ne sont pas dans la liste de RPMS qui est envoyée en paramètre

#!/bin/bash
RPMLIST=$1

if [ $RPMLIST ]
then
        RPMLISTC=`cat $RPMLIST`
        for l in `rpm -qa --qf "%{NAME}\n"`
        do
                FOUND="F"
                for i in $RPMLISTC
                do
                        if [ $l == $i ]
                        then
                                FOUND="T"
                        fi
                done
                if [ $FOUND == "F" ]
                then
                        echo $l
                fi
        done
else
  echo "Fichier invalide"
fi 
exit 1

Création de RPM

Voici un tutoriel qui permet de créer un RPM : Comment distribuer ses logiciels avec un RPM