- 1. Liste des dépôts
- 2.
apt
: manipulation des paquets depuis le catalogue- 2.1. Recherche d’information sur les paquets
- 2.2. Mise à jour après modification de
/etc/apt/sources.list
- 2.3. Installation de paquet
- 2.4. Suppression de paquet
- 2.5. Mise à jour globale des paquets
- 2.6. Passage d’une distribution à une autre
- 2.7. Réparation des paquets cassés
- 2.8. Lister les fichiers installés par un paquet
- 2.9. Exemple récapitulatif : mise à jour majeure de GNU+Linux Debian.
- 3.
aptitude
: idem (mais en mieux ;-p) - 4.
wajig
: opérations complexes - 5.
dpkg
: Debian Package - 6.
synaptic
: l’interface graphique, la logithèque - 7.
Paquets
: une interface graphique simplifiée - 8. Divers problèmes liés aux mises à jour
D’après l’édition 11 des travaux d’Alain Leaper, 2018-04-10
Licence GPL
1. Liste des dépôts
Les dépôts sont listés dans le fichier : /etc/apt/sources.list
Chaque ligne spécifie le type de source, l’url, la distribution et les sections.
# type de source: deb pour un binaire, deb-src pour des fichiers sources
deb http://ftp.fr.debian.org/debian/ lenny main contrib non-free
Une modification de ce fichier doit être suivie d’une mise à jour du catalogue de paquets disponibles.
Les modications sont réservées à un administrateur ou à root
.
2. apt
: manipulation des paquets depuis le catalogue
2.1. Recherche d’information sur les paquets
2.1.1. Trouver un paquet
# apt search <liste de mots clé>
# apt search make-kpkg
kernel-package - A utility for building Linux kernel related Debian packages.
2.1.2. Afficher le détail d’un paquet
# apt show kernel-package
Package: kernel-package Version: 13.018+nmu1~bpo9+1 Priority: optional Section: kernel Maintainer: Manoj Srivastava <srivasta@debian.org> Installed-Size: 1 751 kB Depends: build-essential, po-debconf, gettext, file, bc, binutils, kmod, xz-utils, xmlto, lzma, bzip2, dpkg-dev Recommends: docbook-utils, cpio, uboot-mkimage, kernel-common Suggests: linux-source, libncurses-dev Download-Size: 351 kB APT-Sources: http://deb.debian.org/debian stretch-backports/main amd64 Packages Description: utility for building Linux kernel related Debian packages This package provides the capability to create a Debian kernel image package by just running make-kpkg kernel_image in a kernel source directory tree. It can also package the relevant kernel headers into a kernel-headers package. In general, this package is very useful if you need to create a custom kernel, if, for example, the default kernel does not support some of your hardware, or you wish a leaner, meaner kernel. It also scripts the steps that need be taken to compile the kernel, which is quite convenient (forgetting a crucial step once was the initial motivation for this package). Please look at /usr/share/doc/kernel-package/Rationale for a full list of advantages of this package.
2.2. Mise à jour après modification de /etc/apt/sources.list
Il faut être administrateur ou root
.
# apt update
2.3. Installation de paquet
Il faut être administrateur ou root
.
# apt install <nomPkg1> <nomPkg2> …
2.4. Suppression de paquet
Il faut être administrateur ou root
.
# apt remove <nomPkg1> <nomPkg2>
Cette opération demande une confirmation, pour être sûr de ne pas supprimer un
paquet par erreur. Il est possible de confirmer par avance cette suppression
via l’option -y
. Ce ne fut pas toujours le cas, d’où l’exploration suivante :
2.4.1. Suppression complète d’un paquet, y compris les fichiers de configuration
Il faut être administrateur ou root
.
# apt purge <nomPkg1> <nomPkg2>
En effet, la plupart des logiciels sous GNU+Linux peuvent être personnalisés en
éditant leur fichier de configuration. Un utilisateur curieux peut donc passer
des heures à personnaliser la configuration de ses logiciels. Pour éviter de
perdre accidentellement des heures de travail, les fichiers de configuration
d’un logiciel ne sont donc pas (par défaut) effacés lors de la désinstallation
du logiciel. La commande purge
permet de tout supprimer.
2.4.2. Suppression des dépendances qui ne sont plus utilisées
Il faut être administrateur ou root
.
# apt autoremove
2.5. Mise à jour globale des paquets
Il faut être administrateur ou root
.
# apt upgrade
2.6. Passage d’une distribution à une autre
Il faut être administrateur ou root
.
# apt dist-upgrade
2.7. Réparation des paquets cassés
Il faut être administrateur ou root
.
# apt-get --fix-broken install
2.8. Lister les fichiers installés par un paquet
# apt-file list <paquet>
Voir aussi le dernier exemple d’utilisation de dpkg
.
2.9. Exemple récapitulatif : mise à jour majeure de GNU+Linux Debian.
Exemple de Jessie à Stretch. Présenté dans ce billet :
# apt update
# apt upgrade
# apt-get autoremove (1)
# vi /etc/apt/sources.list +:%s/jessie/stretch/gi +:wq
# apt update
# apt upgrade
# apt full-upgrade
# apt autoremove (1)
# apt clean
# reboot
1 | apt autoremove is defined by apt-transport-https or its dependancies. |
3. aptitude
: idem (mais en mieux ;-p)
# aptitude search
# aptitude show
# aptitude update
# aptitude install
# aptitude remove
# aptitude purge
# aptitude upgrade
# aptitude dist-upgrade
apt
et aptitude
ne gèrent pas les dépendances de la même manière.
Utiliser l’un et l’autre en alternance serait susceptible de poser problème.
3.1. Revenir à la version précédente d’un paquet Debian
aptitude
est capable d’assurer la descente de version d’un paquet, en
assurant la gestion des dépendances :
# aptitude version <pkg>
# aptitude install <pkg>=<version>
3.2. Lister les paquets installés volontairement / manuellement
Comme vu ici : Lister les paquets installés volontairement / manuellement.
# apt-mark showmanual (1)
# aptitude search '~i!~M' -F '%p' (1)
1 | Equivalent |
3.3. Marquer un paquet comme installé automatiquement
C’est possible via aptitude
ou via un utilitaire sur mesure : apt-mark
.
# apt-mark manual $pkg (1)
# aptitude unmarkauto $pkg (1)
1 | Equivalent, replace $pkg par the name of your package. |
Plus de détails : Marquer un paquet comme installé automatiquement
4. wajig
: opérations complexes
En plus d’assurer également les opérations classiques, wajig
permet par
exemple de lister les paquets qui prennent le plus de place (à partir de 10MO).
# wajig large
Package Size (KB) Status =================================-==========-============ network-manager 10,172 installed libreoffice-draw 10,225 installed graphviz 10,259 installed […] pypy 70,167 installed libstd-rust-dev 82,804 installed libreoffice-common 83,573 installed freecad 98,949 installed linux-source-4.16 105,827 installed firefox-esr 111,832 installed rust-doc 118,139 installed inkscape 129,840 installed libgl1-mesa-dri 133,632 installed libreoffice-core 147,548 installed linux-image-4.16.0-0.bpo.2-amd64 252,057 installed 0ad-data 2,047,009 installed
Pour découvrir les autres opérations disponibles :
# wajig commands
[…]
# wajig commands | wc -l
98
5. dpkg
: Debian Package
Gestionnaire de paquet Debian (.deb
), ne gère pas les dépendances.
Permet de manipuler un paquet directement depuis son fichier, et non plus à partir de son enregistrement dans un catalogue.
Un exemple d’utilisation est l’installation d’un noyau après compilation.
# dpkg -i linux-image-monNoyau.deb
Pour la suppression (sans suppression des fichiers de configuration) :
# dpkg -r paquet.deb
Pour la suppression (avec suppression des fichiers de configuration) :
# dpkg -P paquet.deb
Pour lister les fichiers installés par un paquet Debian :
# dpkg -L paquet.deb
5.1. Télécharger un paquet Debian et ses dépendances
Comme vu ici.
./get_deb_depends.sh $package_name [$wanted_architecture]
Sources available here:
pkg_name=$1
arch=$2 || 'amd64'
for dep in `apt-rdepends "$pkg_name" | grep -v "^ "`; do
apt-get download "$dep":"$arch"
done
apt-get download "$pkg_name":"$arch"
6. synaptic
: l’interface graphique, la logithèque
Synaptic permet de réaliser toutes les opérations de maintenance des paquets d’un système GNU+Linux Debian ou ses dérivés (Ubuntu, Devuan, MX Linux…).
L’interface comporte un menu, donnant accès à toutes les fonctionnalité selon le nom de leur étiquette. Puis une barre d’icônes reprenant les principales fonctionnalités (mise à jour du catalogue d’application, mise à jour des paquets qui peuvent l’être, application des changements en attente).
L’écran se divise ensuite en deux, une barre latérale à onglets permet de lister de différentes manières les paquets disponibles ou installés.
Au gré des tris, il est possible de marquer les paquets pour signifier qu’on souhaite leur appliquer une opération (installation, mise à jour, suppression…). Une fois les sélections faîtes, il faut encore réaliser les changements en question, c’est à dire appliquer à chaque paquet, l’opération marquée.
En pratique, on cherche un paquet, on clique pour cocher sa case dans l’interface, puis on clique sur « appliquer les changements » pour que Synaptic s’occupe de télécharger puis installer le paquet et ses dépendances.
7. Paquets
: une interface graphique simplifiée
Donnant accès au même catalogue de logiciel, cette interface graphique se présente plus comme un catalogue où venir piocher des logiciels à installer, que comme un couteau suisse multi-usages (défaut de Synaptic).
Avec paquets
c’est directe : on cherche un logiciel de compta ? On tape «
comptabilité » dans la case de recherche qui est le premier éléments de la
fenêtre sur 100% de la largeur disponible, les logiciels de compta sont alors
listés (GNU Cash
, Grisbi
…). Lorsqu’un logiciel est choisi plusieurs bouton
apparaissent dans le volet de détail du paquet, le premier de la colonne étant
: « Installer ». Fin de l’histoire :-)
8. Divers problèmes liés aux mises à jour
8.1. Mise à jour impossible
Il peut être utile de supprimer (ou renommer temporairement) le répertoire
/var/lib/apt/list
qui contient les infos de mise à jour, et d’en créer un
nouveau (vide). Il faut ensuite tout remettre à jour.
8.2. Problème de clé GPG après modification de /etc/apt/sources.list
Exemple :
# apt-get update
W: Erreur GPG: http://www.debian […]
les signatures […] ne sont pas disponibles: NO_PUBKEY 0x07DC563D1F41B907
En général il faut importer la clé GPG en question dans le trousseau local de
l’utilisateur root
de la machine.
$ wget -O- <https://example.com/key/repo-key.gpg> | gpg --dearmor | sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg (1) (2) (3)
1 | wget télécharge le fichier repo-key.gpg et l’affiche sur la sortie standard, qui se trouve redirigée vers gpg |
2 | gpg , qui est une commande de gestion des clés de chiffrement OpenPGP retire l’habillage en texte simple (ASCII) de la clé |
3 | sudo tee va vous demander le mode de passe de l’utilisateur root et écrire le contenu (nettoyé) de la clé dans le fichier dont le chemin est précisé à la fin de la commande. Ce fichier est situé à un endroit de votre arborescence de fichier qui n’est accessible qu’à l’utilisateur adminsitrateur (root ). N’oubliez pas de remplacer le jeton <myrespository> par un nom de dossier suffisamment simple, personnalisé et descriptif du dépôt que vous êtes entrain d’ajouter. |
La précédente méthode, désormais à éviter :
|
8.3. Mise à jour interrompue
En général un message demande de passer la commande suivante:
# dpkg --configure -all
8.4. Un paquet gêne, mais impossible de le supprimer avec Synaptic ?
# apt purge vlc
C’est arrivé…
8.5. Optimiser le temps d’exécution de commandes répétées
Comme vu ici.
# apt install apt-build
# apt update
# apt-build 'jpegoptim' (1)
# prelink 'jpegoptim' (2)
1 | Locally recompile the package from sources, make sure you have deb-src lines in your /etc/apt/sources.list file |
2 | Prelink ELF shared libraries and binaries to speed up startup time |
See also : Recompress images JPEG / PNG at equal quality at a higher speed.
Version française détaillée : https://connect.ed-diamond.com/Linux-Pratique/LP-103/Optimiser-ses-images-et-ses-commandes-shell