You are here -> Home » Wiki » Tester LPM et les outils Setup

Tester LPM et les outils Setup

Other languages : fr

LPM est le nom du gestionnaire de paquetages en ligne de commande de Logram. Il fait partie de l'ensemble Suite Setup, qui comprend toute la gestion des paquets, en ligne de commande ou graphique. Cette suite est encore en plein développement, mais peut très facilement se compiler et se tester, même en utilisant une distribution quelconque.

Pré-requis

  • Qt, bibliothèque Core. Pour Debian, c'est libqtcore4. Cette bibliothèque est relativement légère.
  • Qt, bibliothèques Xml, Network, Sql et Script.
  • Libarchive (bibliothèque très puissante qui permet de gérer les .tar.lzma, bz2, zip, etc) >= 1.7.0
  • Libgpgme (bibliothèque pour vérifier les signatures GPG)
  • CMake
  • Make
  • Git
  • Savoir compiler
  • Pour Pkgui, AppManager et libpackageui : QtGui, Boost-regex et Boost-dev

Libarchive

Sous Ubuntu 9.10, il faut installer les paquets libarchive-dev et libarchive1. Cependant, il se peut que cela ne suffise pas. Il faut alors aller sur le site de Libarchive et récupérer l'archive de la release la plus récente, la décompresser, lancer le script ./configure, puis compiler avec make et installer avec sudo make install. Si la compilation ne marche pas, il faut retirer l'expression -Werror dans le Makefile créé par configure.

Il se peut que vous ayez aussi besoin de xz-utils pour pouvoir utiliser la commande unxz. Son installation sous Ubuntu vous forcera à désinstaller le paquet lzma pour le remplacer par un autre ; cette opération n'est pas dangereuse contrairement à ce que vous déclare apt.

Récupérer le code

Le code de Setup peut facilement se récupérer depuis le dépôt Gitorious de Logram :

1
2
3
mkdir setup
cd setup
git clone --depth 1 git://gitorious.org/logram/setup.git

Quand vous voudrez mettre à jour le code, pour bénéficier de la dernière version, faites ceci :

1
git pull

Compilation

La compilation de LPM est assez simple :

1
2
3
4
5
6
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make translations
make
sudo make install

LPM est compilé et prêt à l'emploi :) .

Configurer LPM

LPM ne peut pas encore tout à fait être lancé. Nous allons d'abord le configurer.

Tout d'abord, créeons une structure de dossiers qui va permettre de tester LPM sans droit root, sans toucher au reste de votre distribution :

1
2
3
4
5
6
7
8
mkdir /tmp/lpm
mkdir /tmp/lpm/etc
mkdir /tmp/lpm/etc/lgrpkg
mkdir /tmp/lpm/etc/lgrpkg/scripts
mkdir /tmp/lpm/var
mkdir /tmp/lpm/var/cache
mkdir /tmp/lpm/var/cache/lgrpkg
mkdir /tmp/lpm/var/cache/lgrpkg/{db,download}

Notre structure de dossiers est faite, remplissons-les un peu :

1
2
ln -s /etc/lgrpkg/scripts/weight.qs /tmp/lpm/etc/lgrpkg/scripts/weight.qs
mv /tmp/lpm/etc/lgrpkg/sources.list{.sample,}  # Renomme sources.list.sample en sources.list

Vous pouvez ouvrir le sources.list, mais normalement il marche. Si vous avez des problèmes de signature GPG lors de la mise à jour de la base de donnée, changez «Sign=true» en «Sign=false».

Ensuite, il vous faut importer une clef GPG vous permettant de vérifier l'authenticité des fichiers téléchargés depuis le dépôt :

1
2
wget -O /tmp/key.key http://www.logram-project.org/files/uploads/2009/11/12/182006/key.key
gpg --import /tmp/key.key

Voilà, la clef est installée.

Nous pouvons maintenant procéder à la mise à jour de la base de donnée, en utilisant l'architecture de répertoires créés.

1
lpm -R /tmp/lpm/ update

Les fichiers sont téléchargés, quelques lignes sont affichées à l'écran, normalement tout fonctionne. Sinon, demandez sur le forum.

Maintenant que nous avons notre liste à jour, nous allons un peu nous amuser. Listons d'abord tous les paquets disponibles :

1
lpm -R /tmp/lpm search '*'

La liste des paquets s'affiche. Nous allons afficher plus d'informations sur le paquet initng-plugins, des plugins pour le système de démarrage Init-ng, le premier paquet de test disponible :

1
lpm -R /tmp/lpm showpkg initng-plugins

Vous pouvez voire plein d'informations, une description longue, la liste des versions, etc. Les métadonnées ont été téléchargées automatiquement, et leur somme SHA1 vérifiée.

Nous allons maintenant afficher le changelog de ce paquet, c'est à dire la liste des modifications :

1
2
3
lpm -R /tmp/lpm -C showpkg initng-plugins
# Astuce : afficher ça dans un less avec les couleurs
lpm -R /tmp/lpm -C showpkg initng-plugins | less -W

Maintenant, nous allons tester le solveur et installer ce paquet

1
sudo lpm -R /tmp/lpm add initng-plugins

Appuyez sur I, le paquet est téléchargé et installé dans le dossier /tmp/lpm, avec toutes ses dépendances ! Vous pouvez constater l'appartition de magnifiques barres de progressions à l'écran, sauf si votre connexion est tellement rapide que vous n'avez pas le temps de les voir :p .

Pourquoi mettre sudo : certaines personnes, dont moi, ont des problèmes sans le sudo. Pour être certain que le paquet est bien installé, libarchive (bibliothèque qui gère les archives) chmod et chown chaque fichier extrait. Malheureusement, la manière dont elle fait ça ne marche pas avec un utilisateur normal, quelques soient les droits des dossiers /tmp et /tmp/lpm :( . Si vous avez peut, vous pouvez tester sans le sudo, mais il se peut que ça marche moins bien.

Petite parentèse : les différents paquets sont téléchargés en parallèle, et installés en parallèle. Par exemple, A et B sont téléchargés en même temps. Quand A a fini, C commence à être téléchargé, et A est installé. Quand B a fini, B est installé (que A soit installé ou pas), puis C est installé une fois téléchargé. Ainsi, pas de perte de temps ! Pour régler le nombre de paquets installés et téléchargés en parallèle, utilisez l'option "-I paquets_installés_en_parallèle -D paquets_téléchargés_en_parallèle". Ces options à 1 désactive tout parallélisme.

Nous avons donc ce paquet installé. Vérifions :

1
ls /tmp/lpm/

Vous pouvez explorer le contenu de ce dossier avec un explorateur de fichiers ou la console, et voir que tout est parfaitement installé. Les versions i686 ont été installées, donc si vous n'avez pas un ordinateur de cette architecture, vous ne pourrez pas directement lancer d'éxécutables.

Maintenant, tentons la suppression d'un paquet. Tout ceci se fait très simplement :

1
sudo lpm -R /tmp/lpm add -initng

Hop, initng est parti, initng-plugins aussi, mais libinitng reste. Pour la mise à jour, essayez des "sudo lpm -R /tmp/setup upgrade" de temps en temps. Quand le dépôt Logram sera mis à jour, vous pourrez le voir facilement (note: n'oubliez pas "lpm update" avant ;) ).

Easter Egg

Un easter egg est une fonctionnalité cachée d'un programme. Setup en a un, qui permet de passer le temps quand on s'ennuie. Ok, ce n'est pas passionnant, mais c'est utile pour les tests :

1
lpm testprogress

Et voilà le résultat :

Progressions

Merci d'avoir suivi ce court tutoriel.