Ma découverte du monde de Slackware avec Salix OS – Partie II: Gestion des paquets

Partie II. Gestion des paquets

Dans le premier article de cette série, j’ai partagé les raisons qui ont motivé mon choix en faveur de Salix.

A la question du pourquoi ne pas utiliser Slackware directement? C’est parce que le gestionnaire de paquets de Slackware ne prend pas en charge la gestion des dépendances. Je vous invite à consulter la FAQ de Slackware pour obtenir plus d’information sur leurs choix.

I. Outils de gestion des paquets: Debian vs Salix

Si comme moi, vous êtes familier avec Debian ou l’un de ses dérivés, vous allez constater des similitudes dans la gestion des paquets entre les deux distributions Salix et Debian.

Rien de plus simple qu’un tableau de comparaison, pour vous donner un bref aperçu de ces similitudes.

Salix Debian Commentaire
Gestionnaires de paquets
Bas niveau
spkg[1] dpkg -Téléchargement manuel de paquets (console)
-Pas de gestion des dépendances
Gestionnaires graphiques Gslapt[1] synaptic -Téléchargement de paquets (outil graphique)
-Pas de gestion des dépendances
Gestionnaires de paquets de plus Haut niveau
slapt-get[1] apt
apt-get
-Téléchargement de paquets (dépôt)
-Gestion automatique des dépendances
Compilation à partir des
Sources
slapt-src[1] apt-src -Téléchargement de paquets (dépôt)
-Compilation
-Pas de gestion des dépendances
Notifications de mises
À jour
salix-update-notifier[1]
slapt-update-service[1]
update-notifier -Informe l’utilisateur des mises à jour
Disponibles

N’hésitez pas à consulter le guide le  Guide de Démarrage de Salix (Startup Guide) ainsi que le manuel de référence sur les Outils de gestion des paquets Debian pour approfondir votre compréhension de la manière dont ces deux distributions gèrent leurs paquets respectifs.

Une fois que vous vous sentez familiarisé et à l’aise avec Salix, si l’envie vous prend de partir à l’exploration de Debian, prenez en considération l’avertissement ci-dessous.

Ne mélangez pas les archives Debian standard avec d’autres archives non Debian comme Ubuntu dans la liste des sources.[1][2]

Contrairement à Debian et ses dérivées, Salix vise être entièrement récompatible avec Slackware. Vous ne devriez pas avoir de problèmes d’utilisation des dépôts de Slackware dans Salix, et vice-versa. D’ailleurs, voici le contenu des fichiers de configuration utilisés par l’outil de gestion de paquets dans Salix.

$ cat /etc/slapt-get/slapt-getrc
# Working directory for local storage/cache.
WORKINGDIR=/var/slapt-get

# Exclude package names and expressions.
# To exclude pre and beta packages, add this to the exclude:
#   [0-9\_\.\-]{1}pre[0-9\-\.\-]{1}
EXCLUDE=^aaa_elflibs,^aaa_base,^devs,^glibc.*,^kernel-.*,^rootuser-settings,^zzz-settings.*,-i?86-

# The Slackware repositories, including dependency information
SOURCE=http://slackware.uk/salix/x86_64/slackware-15.0/:OFFICIAL
SOURCE=http://slackware.uk/salix/x86_64/slackware-15.0/extra/:OFFICIAL

# The Salix repository
SOURCE=http://slackware.uk/salix/x86_64/15.0/:PREFERRED
# And the Salix extra repository
SOURCE=http://slackware.uk/salix/x86_64/extra-15.0/:OFFICIAL

# XCFE repository
SOURCE=https://download.salixos.org/x86_64/xfce4.18-15.0/:PREFERRED

# Local repositories
# SOURCE=file:///var/www/packages/:CUSTOM
$ cat /etc/slapt-get/slapt-srcrc 
BUILDDIR=/usr/src/slapt-src
PKGEXT=txz
SOURCE=http://slackware.uk/salix/slkbuild/15.0/
SOURCE=http://slackware.uk/salix/sbo/15.0/

Parmi les gestionnaires de paquets mentionnés précédement, noter que slapt-src/apt-src n’inclut pas la fonction de suppression des paquets. Cet outil est principalement conçu pour la compilation des sources téléchargés à partir de la page du projet SBo (slackbuild.org), suivi de l’installation de ces paquets. Pour la désinstallation, vous avez le choix entre slapt-get/apt(apt-get) et le gestionnaire graphique des paquets.

II. Installation des Paquets/Applications

Avec Salix, j’ai fréquemment recours à la commance slapt-get pour l’installation d’applications. Par contre, si ces applications ne se trouve pas dans le dépôt officiel de Slackware, je passe à slapt-src.

Prenons quelques exemples concrets.

Juste après l’installation du nouvel environnement avec Salix 15.0, mettez votre système à jour dès que possible.

$ sudo slapt-get --update
$ sudo slapt-get --upgrade
$ sudo slapt-src --update

Comme salix-update-notifier est installée par défaut, pour pouvez attendre l’alerte pour appliquer les prochaines mises-à-jour. En cliquant sur la notification, glapt va s’ouvrir afin que vous puissez faire le nécessaire. Sinon, comme précédement, en ligne de commande celà fonctionne toujours. En ce qui concerne les paquets téléchargés via la SBo, une vérification manuelle des mises à jour doit être lancée.

Une fois votre système à jour, vous remarquerez qu’un certains nombres de paquets, dont le noyau linux, n’ont pas été pris en compte. Pour le moment, ignorer ces paquets car je reviendrai sur ce point dans le prochain article.

Vient ensuite l’installation des applications. Le choix des applications à installer est une question de préférences personnelles. Je ne vais donc pas me justifier sur mes choix.

L’une des premières choses que je fais avec une nouvelle installation est de vérifier si vim est installé par défaut. Ici, ce n’est pas le cas, et son installation se fait tout simplement avec la commande,

$ sudo slapt-get -i vim

Ensuite, j’ai essayé d’utiliser flathub/flatpak pour télécharger des applications tierces, dont la majorité sont propriétaires (Zoom, Telegram Desktop, Slack, etc.). Malheurement, ces applications ne fonctionnent pas correctement. Par exemple sur Telegram, je ne peux pas télécharger des fichiers partagés dans mon groupe de chat. Comme ces applications sont aussi disponible soit, dans le dépôt officiel de Slackware, soit dans la SBo, j’ai décidé de ne recourir à flatpak qu’en dernier recours, lorsque je n’ai vraiment pas d’autres choix.

Voici comment s’est déroulé l’installation de Slack.

$ sudo slapt-src -i slack
Password:
The following packages will be installed:
slack
Do you want to continue? [y/N] y
Fetching README...Done
Fetching doinst.sh...Done
Fetching slack-desc...Done
Fetching slack.SlackBuild...Done
Fetching slack.info...Done
Fetching https://api.snapcraft.io/api/v1/snaps/download/JUJH91Ved74jd4ZgJCpzMBtYbPOzTlsD_118.snap...Done
slack.SlackBuild: line 68: unsquashfs: command not found
fakeroot -- sh slack.SlackBuild Failed

Si j’ai choisi cette exemple car il illustre un cas courant avec la SBo qui refuse d’installer l’application s’il manque des dépendances. Le message d’erreur nous informe que la commande « unsquashfs » est introuvable.

Comme indiqué dans le HowTo de Slackbuilds.org, ils supposent que nous avons effectué une installation complète de Slackware pour pouvoir utiliser cet outil. Cependant, il semble que Salix n’a pas installé par défaut, tous les paquets présents dans la version complète de Slackware.

All of our scripts are written and tested for usage on a full installation of the latest stable release of Slackware updated with the latest patches.

D’après la documentation sur Salix[1], la plupart des problèmes de dépendances avec les paquets téléchargés sur SBo pourrait être réglé en installant au préalable l’ensemble des paquets de slackware/d et de slackware/l.

 $ sudo slapt-get --install-set slackware/d --install-set slackware/l

Pour identifier le nom du paquet manquant, vous pouvez par exemple créer et exécuter un script nommé findpkg.sh.

#!/bin/sh
wget -qO- https://mirrors.kernel.org/slackware/slackware64-15.0/slackware64/MANIFEST.bz2 |\
bzcat |\
grep -Fe "Package: " -e "$1" |\
grep -B1 "$1"

Ensuite, lancez ce script en utilisant comme argument, le nom du fichier manquant. Dans ce cas, « unsquashfs ».

$ ./findpkg.sh unsquashfs
|| Package: ./ap/squashfs-tools-4.5-x86_64-2.txz
-rwxr-xr-x root/root 132184 2021-10-02 23:53 usr/bin/unsquashfs

Enfin, installez le paquet manquant (squashfs-tools) et relancez la commande d’installation de Slack.

III. Mes applications

Voici une liste partielle des applications que j’utilise sur ma machine, ainsi que celles que j’aurais utilisées si ma nouvelle boîte nous avait permis d’installer Linux sur nos machines de travail. (voir aussi l’article Linux en Entreprise: Applications Windows et leurs équivalents Linux)

Gestion des paquets Version Février 2024
Commentaire
slapt-get slapt-src flatpak
vim 9.0.21.27
cheese 41.1
redshift 1.12
thunderbird 115.7.0
texlive 2023.230322
texlive-extra 2021.210418
texstudio 4.0.2
ristretto 0.12.2
telegram 4.14.2 Package Version: 3.7.3-x86_64-1salix15.0
vlc 3.0.17.3
zoom 5.17.1
slack 4.35.131
vscodium 1.79.0
xournal 0.4.8.2016
evince 41.3
shutter 0.94.3
barrier 2.2.0 Package Version: 2.1.2-x86_64-1salix15.0
gtick 0.5.4
keepassxc 2.6.6
flatseal 2.1.0
chromium 121.0.6167.139 Bug https://github.com/flathub/org.chromium.Chromium/blob/master/portal_error.txt#L17
brave 1.61.116

Pour conclure ce chapitre, il est important de noter que le processus d’installation d’une application avec la commande slapt-src prend significativement plus de temps par rapport à slapt-get. Cela est dû au fait que les paquets sources téléchargés ne sont pas des paquets précompilés. Alors, je vous suggère de préparer votre café ou thé, selon vos préférences, et de vous détendre le temps que la magie de la compilation opère pour l’installation de votre application. C’est le moment parfait pour une pause café, n’est-ce pas ? ☕😄

 

dpkg: unrecoverable fatal error

Mon ordinateur se fait vieux (Macbook pro 2009), mais il fonctionne à merveille et je n’ai pas trop à me plaindre sauf de la batterie.

Contre toute attente, je n’ai rien changé de la configuration d’origine, sauf pour le cable d’alimentation que j’ai du changer une fois.

Puis un jour comme un autre, je reçois un:

dpkg: unrecoverable fatal error, arborting:
  reading files list for package ‘linux-headers-4.9.0-5-amd64’ : Input/output error
E: Sub-process /usr/bin/dpkg returned an error code (2)

 

Comme solution temporaire (workaroud), naviger dans le fichier /var/lib/dpkg/status, puis supprimer les informations du paquet incriminé.

vim /var/lib/dpkg/status

Lancer ensuite les commandes:

sudo dpkg --configure -a

sudo apt-get -f install

Le problème vient probablement du fait que j’ai des secteurs défecteux sur le disque.

dmesg | grep error
[65432.492401] end_request: I/O error, dev sda, sector 556703315

Source:

Thread: dpkg: unrecoverable fatal error, aborting:
How to fix dpkg error [2]?
Recovering from a failed SSD on linux

Suppression et ajout d’une interface graphique

Chap 1. Prise en main du RPi et installation de Mate sur un Raspbian
Chap 2. Installation de OwnCloud sur un Raspberry Pi
Chap 3. Sécuriser votre RPi
Chap 4. Accès au serveur Web Owncloud à partir de son nom de domaine
Chap 5. Connection SSH
Chap 6. Les fichiers journaux
Chap 7. Let’s Encrypt (LE)
Chap 8. Ajout d’un disque dur externe et migration de données
Chap 9. Suppression et ajout d’une interface graphique
Chap 10. Rappel sur les différentes étapes pour mettre en place un server dédié à Owncloud

Chap 9. Suppression et ajout d’une interface graphique

Dans ce chapitre, je vais essayer de donner le maximum d’information sur les différentes commandes à entrer pour désinstaller et réinstaller l’interface graphique (ou GUI, de Graphique User Interface) de notre système d’exploitation, qui est ici du Raspbian. Les différentes étapes que je vais décrire ici peuvent s’appliquer ailleurs, toujours dans le monde de linux bien sur.

I. Suppression de l’interface graphique et des différents composés qui y sont associés

J’espère qu’avec le temps, vous utiliserez moins, si ce n’est plus du tout, l’interface graphique pour gérer votre serveur sous linux. Il est donc temps de supprimer définitivement le GUI, d’autant plus que celà vous faira gagner un peu d’espace sur votre carte SD. Cet espace de gagné est loin d’être négligable.

Qu’est-ce que donne la commande « df »?

En général, pour avoir des informations pour chaque commande, il faut passer par un « man [nom_de_la_commande]« . Pour changer, je vous propose de découvrir la commande « apropos« . Comme le nom l’indique, on veut avoir les informations à propos de la commande « df« .

Notez bien que cette commande va chercher toutes les commandes qui contiennent « df » dans le nom. Tapez « apropos df » dans une console, et voyez le résultat.

Comme on connait exactement (option -e) le nom de notre commande, on ne va pas s’embêter à afficher tout le résultat de la commande « df ».

$ apropos -e df
df (1) - report file system disk space usage

La commande « df » nous donne donc l’espace disponible sur notre disque. Voyons ce qu’on a:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
 /dev/root       7.2G  5.6G  1.4G  81% /
 devtmpfs        483M     0  483M   0% /dev
 /dev/mmcblk0p1   60M   21M   40M  35% /boot

L’option -h de la commande « df » nous permet de lire plus facilement le résultat.

Il ne me reste plus que 1,4Go d’espace libre sur ma carte SD. Je tiens à préciser à ceux qui n’ont pas suivit ce chapitre depuis le début que j’ai branché un disque dur externe pour le stockage de données dans Owncloud.

Il est à noter que cette commande va de paire avec la commande « du » qui, par contre nous affiche l’espace utilisé par un ou plusieurs fichier. Comme example, vérifiez ce que contient le dossier tmp qui, je le rappelle, devrait se vider automatiquement à chaque démarrage de l’ordinateur.

$ sudo du -h /tmp/

Voyez le même résultat sans l’option -h.

Qu’est ce qu’on peut supprimer sur Raspbian pour gagner de l’espace?

Les étapes suivantes peuvent s’appliquer à la suppression de tout environement de bureau. Initialement, Mate a été installé par défaut avec Raspbian.

Pour ceux qui n’ont pas besoin d’explication, vous pouvez directement supprimer Mate, ou tout autre environement de bureau (DE, Desktop Environment) comme suit.

$ sudo aptitude purge `dpkg --get-selections | grep 'gnome\|mate\|xorg\|lightdm' | cut -f 1`
$ sudo aptitude -f install
$ sudo aptitude purge `dpkg --get-selections | grep deinstall | cut -f 1`
$ sudo aptitude -f install

Vous avez certaintement remarqué que j’ai utilisé aptitude au lieu de apt. Il y a une raison pour celà.

II. Aptitude vs apt-get vs apt

Je ne vais pas rentrer dans les détails concernant laquelle de ces commandes il est préférable d’utiliser. Par contre, je ne peux m’empécher de vous inciter à n’utiliser que APT tant que possible, qui est en fait une amélioration de la commande apt-get.

Si vous êtes familier avec aptitude ou apt-get, alors l’utilisation de apt ne devrait pas trop vous poser de problèmes.

apt install       Installe le paquet
apt remove     Supprime le paquet
apt purge         Supprime le paquet ainsi que ses fichiers de configuration
apt autoremove                         Supprime les dépendances du/des paquets désinstallés

apt update                                  Met à jour les métadonnées de l’archive du paquet
apt upgrade                                Installe les version candidates des paquets installés sans supprimer les anciens
apt full-upgrade                        Idem que « apt upgrade » mais cette commande peut aussi supprimer les anciens paquets
apt -f install                               Répare les fichiers « cassés »

apt list –installed                     Affiche la liste des paquets installés
apt list –upgradable                Affiche la liste des paquets installables

Il est possible d’installer et de supprimer plusieurs paquets en même temps, en ajoutant le signe « + » ou « – » juste après le nom du ou des packets. Voici deux exemples qui donnent les mêmes résultats: suppression du packet2 puis installation du packet1.

# apt install packet1 packet2-

# apt remove packet2 packet1+

N’hésitez pas à taper « man apt » pour plus d’information.

 

Pourquoi continuer d’utiliser aptitude pour certaines tâches?

Ce qui m’embête le plus avec apt, c’est résultat donné suite à une rechercher de paquets.

Voyez la différence entre apt search et aptitude search. Personnellemment, je trouve que le résultat donné par aptitude search est beaucoup plus lisible.

$ aptitude search 

 

selection_036

« i » indique que le paquet est installé, « p » quand il est installable. Pour n’afficher que les paquets installés,

$ aptitude search | grep ^i

Effectuer ensuite le même test avec apt search.

$ apt search
$ apt search | grep installed

 

selection_035

Noter l’alerte qui nous prévient que cette commande n’est pas tout à fait au point pour les scripts.
Ci-dessous deux options de aptitude qui me paraissent incontournables, et dont je n’ai pas encore réussit à trouver les équivalents avec apt:

-s               simule le résultat de la commandes
-d               télécharge seulement les paquets sans les installer ni les mettre à jour

 

Si malgré celà vous souhaitez n’utiliser que apt, sachez que si vous rencontrez des problèmes de dépendances et qui n’arrivent pas à s’installer avec apt, mieux vaut utiliser aptitude dans ce cas.

L’option « why » vous donne la liste de dépendances nécessaire à l’installation du paquet, tandis que « why-not » vous donne une indication pour laquelle le(s) paquet(s) ne peut/peuvent pas être installé(s).

 

selection_019

Comme vous pouvez le constater, avant de pouvoir supprimer définitivement xorg, il faudrait commencer par supprimer ces dépendances.

$ sudo aptitude purge `dpkg --get-selections | grep  | cut -f 1`
$ sudo aptitude -f install
$ sudo aptitude purge `dpkg --get-selections | grep deinstall | cut -f 1`
$ sudo aptitude -f install

Ici, est à remplacer successivement par la liste de dépendance des paquets de mate, xorg, lightdm et gnome.

En prenant le cas de xorg qui a pour dépendance plymouth et desktop-base,

$ sudo aptitude purge `dpkg --get-selections | grep -e plymouth -e desktop-base -e xorg | cut -f 1`
$ sudo aptitude -f install
$ sudo aptitude purge `dpkg --get-selections | grep deinstall | cut -f 1`
$ sudo aptitude -f install

Pourquoi utiliser dpkg dans la commande aptitude purge?

III. DPKG

Il faut savoir que la commande « aptitude purge » ne supprime que le/les paquets spécifiés dans la commande, ainsi que son/ses fichiers de configuration.

De ce fait, le fait de lancer la commande « aptitude purge gnome » ne supprime que l’environement de bureau du même nom, en laissant toute une liste de packets et de programmes, orphelins. Certes, ces paquets ne prennent pas de place, mais quand même.

L’astuce pour tout supprimer serait d’afficher la liste des paquets contenant le nom de celui qui nous intéresse, puis de lancer la commande aptitude purge sur résultat de la première commande.

Voyons pas à pas ce qu’il faut faire.

1. Afficher de la liste de tous les packets

$ dpkg --get-selections

2. Faire le tri parmis ces paquets afin de n’afficher que ceux qui contiennent gnome dans leurs noms

$ dpkg --get-selections | grep gnome

Comme la commande dpkg nous donne pas mal d’informations étalées sur plusieurs colones, concernant le packet installées

3. Supprimer toutes les colonnes, autre que celle qui affiche le nom du packet

Le champ (en anglais: Field, d’où l’option -f de cut) qui nous intéresse est exactement la première colone.

$ dpkg --get-selections | grep gnome | cut -f 1

 

selection_020

Vous pouvez jouer avec des valeurs entre 1 à 10 par exemple, de l’option -f de « cut » pour voir comment cet outil fonctionne. Amusez-vous bien!

4. Suppression des packets donnés par dpkg

$ sudo aptitude purge `dpkg --get-selections | grep gnome | cut -f 1`

Notez les deux accents graves à l’intérieur de la commande aptitude purge, pour lancer une commande à l’intérieur d’une autre. La commande ci-dessus revient dont à taper la série de commandes suivantes.

$ sudo aptitude purge gnome
$ sudo aptitude purge gnome-icon-theme
$ sudo aptitude purge gnome-keyring
etc.

Pour aller encore un peu plus loin, dans la même commande, on peut faire une recherche de tous les packets contenant plusieurs mots clés avec grep. Voici la listes de commande finale à taper.

$ sudo aptitude purge `dpkg --get-selections | grep 'gnome\|mate\|xorg\|lightdm' | cut -f 1`
$ sudo aptitude -f install
$ sudo aptitude purge `dpkg --get-selections | grep deinstall | cut -f 1`
$ sudo aptitude -f install

Si les anti-slashs (\) vous embêtent, l’option -E ou -e de grep serait un très bon choix. Ou tout simplement, utiliser egrep.

$ sudo aptitude purge `dpkg --get-selections | grep -E 'gnome|mate|xorg' | cut -f 1`
$ sudo aptitude purge `dpkg --get-selections | egrep 'gnome|mate|xorg' | cut -f 1`
$ sudo aptitude purge `dpkg --get-selections | grep -e gnome -e mate -e xorg | cut -f 1`

Vous vous demander certainement pourquoi lancer une nouvelle commande de purge après avoir supprimé tous les paquets avec leurs dépendances! C’est qu’il en reste quelques fichiers de configuration qui trainent encore par-ci et par-là, qu’on n’a pas pu supprimer totallement avec la commange aptitude purge.

En jouant avec la commande « dpkg -l » associé à la commande « aptitude why« , j’ai pu vérifier que d’autres paquets indépendant de l’interface graphique, ne sont plus nécessaires et peuvent aussi être supprimés.

$ dpkg -l | grep x11
ii x11-common

$ aptitude why x11-common
i iceweasel Depends firefox-esr
i A firefox-esr Depends libxt6
i A libxt6 Depends libice6 (>= 1:1.0.0)
i A libice6 Depends x11-common

Il ne faut donc pas oublier de supprimer firefox, iceweasel et d’autres applications dont vous n’avez plus besoin.

Comment lire le résultat de « dpkg -l »?

Cette commande donne une liste de paquets avec un indice à 2 ou 3 caractères dans la première colone pour nous donner une indication de l’état de chacun de ces paquets.

$ dpkg -l

Le premier caractère

i Installer
r Supprimer/désinstaller

Le deuxième caractère

i Installé
c Fichier de configuration

Le troisième caractère

Pas de message d’erreur

Ce qui se résume à:

ii      Le packet devrait être installé, et il l’est
rc     Le packet a été supprimé, mais son fichier de configuration ne l’est pas

 

selection_021

Pour plus d’information sur la commande dpkg, ‘hésitez pas à lire le manuel.

Voyons maintenant combien d’espace est-il disponible sur notre carte SD.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
 /dev/root       7.2G  4.5G  2.5G  65% /
 devtmpfs        483M     0  483M   0% /dev
 /dev/mmcblk0p1   60M   21M   40M  35% /boot

Pour rappel, initialement on avait

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
 /dev/root       7.2G  5.6G  1.4G  81% /
 devtmpfs        483M     0  483M   0% /dev
 /dev/mmcblk0p1   60M   21M   40M  35% /boot

Au final, j’ai donc gagné 16% d’espace disque sur un total de 8Go de ma carte SD.

IV. (Ré)installation de l’interface graphique

Une des raisons pour laquelle certains d’entre vous souhaite réinstaller l’interface graphique, c’est généralement pour essayer un autre environnement de bureau (DE, Desktop Environment).

Afin de vous aider à tout remettre en place « presque » comme avant, commencer par faire une rechercher sur les DEs qui peuvent s’installer sur votre système. Installer ensuite la version « core », c’est à dire la version minimale de cet environnement, afin de n’installer que le néssaire sans les paquets inutiles comme les jeux Gnomes qui nous prennent de l’espace pour rien.

Pour réinstaller Mate,

$ sudo aptitude install mate-desktop-environment-core

Je recommande ensuite d’installer un navigateur internet, un terminal et peut-être un éditeur de texte. Pour les plus curieux, je vous propose d’essayer l’outil webmin.

Sources:

What is MATE?
aptitude, apt-get, and apt Commands
7 Linux Grep OR, Grep AND, Grep NOT Operator Examples
apt-get / apt-cache comparés à aptitude