Salut,
Voici un peu de contexte pour commencer :
Je souhaite installer le Docker Engine.
Il y a un script de commodité qui fait tout automatiquement mais j’ai choisi (à des fins d’apprentissage) d’utiliser la « version longue » qui est divisée en plusieurs étapes. La première étape consiste en la configuration du référentiel apt de Docker (Set up Docker’s apt
repository) dont voici le script :
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
J’ai tout d’abord pensé que c’était bizarre que l’on ne puisse pas directement taper « apt install docker-ce
» (c’est ce qui est demandé dans l’étape suivante).
Par curiosité, j’ai voulu voir ce qui se passerait si je tapais « apt show docker-ce
» et voici ce qui m’a été renvoyé :
Package: docker-ce
State: not a real package (virtual)
N: Can't select candidate version from package docker-ce as it has no candidate
N: Can't select versions from package 'docker-ce' as it is purely virtual
N: No packages found
En cherchant, j’ai fini par tomber sur cette explication donnée à propos des paquets virtuels dans le manuel utilisateur de Debian :
A virtual package is a generic name that applies to any one of a group of packages, all of which provide similar basic functionality. For example, both the
konqueror
andfirefox-esr
programs are web browsers, and should therefore satisfy any dependency of a program that requires a web browser on a system, in order to work or to be useful. They are therefore both said to provide the « virtual package » calledwww-browser
.
D’après ce que j’en comprends : les paquets virtuels seraient donc comme des sortes d’« espaces génériques réservés » destinés à pointer vers un paquet « concret ».
Cette définition est-elle valable ?
Cela veut donc t-il dire que les développeurs de Docker ont réservé ce nom « à l’avance » ? Car le nom du paquet existe, la preuve : si je tape « apt show paquet_inconnu
» la sortie en console n’est pas la même :
apt show paquet-inconnu
N: Unable to locate package paquet-inconnu
N: Unable to locate package paquet-inconnu
E: No packages found
Questions subsidiaires :
- Pourquoi les développeurs de Docker s’appuient il sur ce mécanisme ?
- Existe t’il un mécanisme de sécurité qui empêche n’importe quel paquet de prendre la place du « paquet officiel » ? Je vois qu’il est question d’une « clé GPG » est-ce cela ?
D’avance, merci.