SDB:Accélérer le gestionnaire de paquets
Version: 10.3 -
Sommaire
Accélérer le gestionnaire de paquets
La gestion des paquets utilise un système de base de données. En raison de la nature incrémentielle des modifications, la base de données va se fragmenter de manière interne (le fichier de base de données) et physique (sur le disque dur).
OpenSUSE 10.3 propose 2 types de gestion de paquets.
- Le cache de zypp (base de données SQLITE) dans
/var/cache/zypp/zypp.db
- La base de données RPM dans
/var/lib/rpm/
Defragmentation de la base de données
- Pour la base de données du cache de zypp, le nettoyage peut être réalisé avec la commande
VACUUM
.
sqlite3 /var/cache/zypp/zypp.db vacuum
- Defragmentation de la base de données RPM, utile après de nombreux changements/mises à jours/installations de paquetages.
rpm --rebuilddb
- Ceci peut prendre quelques minutes.
Defragmentation physique
Même si Linux n'y est pas trop sujet, le nombre de modifications opérées sur le fichier de la base de données au cours du temps rend une défragmentation de ce fichier utile.
La meilleure façon de défragmenter est de recréer les fichiers selon le modèle suivant:
cp file file.new # check for errors! rm file mv file.new file
- Base de données zypp
- Soit la supprimer et la régénérer
rm /var/cache/zypp/zypp.db ; zypper refresh
- Soit utiliser le schéma précedent cp/rm/mv sur
/var/cache/zypp/zypp.db
.
- Base de données RPM
- Utiliser le schéma cp/rm/mv sur
/var/lib/rpm/Packages, Basenames, Filemd5s, Dirnames
Exemple de script
#!/bin/sh sqlite3 /var/cache/zypp/zypp.db vacuum rpm --rebuilddb # prends du temps for fn in /var/cache/zypp/zypp.db \ /var/lib/rpm/Packages \ /var/lib/rpm/Filemd5s \ /var/lib/rpm/Dirnames \ /var/lib/rpm/Basenames do cp $fn $fn.new || exit 1 rm $fn mv $fn.new $fn done
<keyword>zypp,rpm,vitesse,gestionnaire de paquets</keyword>