This commit is contained in:
2024-10-25 11:48:51 +02:00
parent 2175b7103a
commit e953878678

View File

@@ -1,44 +1,44 @@
# Gestion des paquets
## Ressources
https://debian-handbook.info/browse/fr-FR/stable/sect.manipulating-packages-with-dpkg.html
https://www.debian.org/doc/manuals/securing-debian-manual/deb-pack-sign.en.html
## Bas niveau
Créer un fichier 🗎 ~formation/pkg.md contenant la réponse aux questions suivantes
1. Trouver à quel paquet appartient la commande ls.
2. Télécharger le paquet https://mirror.mariadb.org/repo/11.4/debian/pool/main/m/mariadb/libmariadb3_11.4.3%2Bmaria~deb12_arm64.deb
3. Éxaminer l'archive téléchargée et notamment la liste des fichiers se trouvant à l'intérieur.
4. Est-ce que cette archive peut s'installer sur notre système ? Pourquoi ?
5. Trouver la date et l'heure à laquelle le paquet git a été installé pour la première fois sur votre machine.
6. Quelle commande permet d'obtenir la liste de tous les paquets installés
## bas niveau
```bash
dpkg --search '*bin/ls'
curl -OL https://mirror.mariadb.org/repo/11.4/debian/pool/main/m/mariadb/libmariadb3_11.4.3%2Bmaria~deb12_arm64.deb
dpkg -c libmariadb3_11.4.3%2Bmaria~deb12_arm64.deb
dpkg -I libmariadb3_11.4.3%2Bmaria~deb12_arm64.deb | grep '^Architecture'
grep git /var/log/dpkg.log # ce fichier étant le plus ancien log dpkg existant
dpkg --get-selections # exploitable par dpkg --set-selections permettant d'installer les même paquets qu'un système existant
```
## Haut niveau
1. Citez 2 différences entre apt et apt-get
2. Quelle est la principale différence entre apt et aptitude ?
3. À quoi sert la commande _apt update_ ?
4.
apt-get : interface historique, retrocompatibilité garantie, à l'inverse de apt. apt: plus moderne et corrige quelques erreurs de apt-get.
apt: interface de base. aptitude: interface "graphique" à apt. c'est donc une surcouche
apt update permet de mettre à jour la liste des paquets disponibles. Cette opération est à réaliser avant chaque opération d'installation ou de mise à jour.
## Signature des paquets
À quoi sert la signature des paquets ?
À garantir qu'un paquet téléchargé n'a pas été modifié (parce que le dépôt s'est fait troué par ex).
Quel mécanisme est utilisé par Debian pour signer les paquets ?
il y en a 2 : une signature md5 et une gpg.
De quoi notre système (apt) a besoin pour vérifier la légitimité d'un paquet téléchargé ?
Il est nécessaire d'avoir la clé publique correspondant à la c ayant signé le paquet.
Où sont localement stockés ces éléments ? Quelle commande permet
dans /etc/apt/keyring et /etc/apt/trusted.gpg.d/ dont on peut manipuler le contenu avec la commande apt-key (nécessite d'avoir gnupg2)
## Gestion des dépôts
Déterminer la version de php que nous pouvons installer avec les dépôts par défaut.
```
apt-policy php
php:
Installed: (none)
Candidate: 2:8.2+93 # version 8.2
En vous aidant des informations sur https://sury.org :
* récupérer et installer la clé utilisée pour vérifier la signature des paquets.
* créer le fichier /etc/apt/sources.list.d/php_sury.list
* vérifier que vous pouvez installer (sans le faire) des paquets php en version 8.3
apt -y install lsb-release ca-certificates curl
curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
dpkg -i /tmp/debsuryorg-archive-keyring.deb && rm -f /tmp/debsuryorg-archive-keyring.deb
sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
apt update
apt policy php
```