Vous avez peut-être téléchargé plusieurs versions de boîtes Vagrant et certaines d'entre elles sont peut-être assez obsolètes ! S'ils ne sont plus nécessaires, vous pouvez supprimer en toute sécurité les boîtes Vagrant obsolètes sous Linux, comme décrit dans ce bref guide.
Vérifier les boîtes Vagrant obsolètes
J'utilise Vagrant au cours des derniers mois à des fins de test. Depuis la version 1.5 de Vagrant, les box supportent le versioning. Le Box Versioning permet aux développeurs qui créent des boîtes de pousser des mises à jour ou des correctifs et aux utilisateurs de mettre à jour facilement la boîte sous-jacente.
Si une boîte est obsolète, l'utilisateur sera averti lorsqu'il démarrera l'environnement vagrant en utilisant vagrant up
commande :
$ vagrant up
Exemple de résultat :
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'generic/alpine38' version '3.1.16' is up to date...
==> default: A newer version of the box 'generic/alpine38' for provider 'virtualbox' is
==> default: available! You currently have version '3.1.16'. The latest is version
==> default: '3.1.22'. Run `vagrant box update` to update.
==> default: Clearing any previously set forwarded ports...
...
L'utilisateur peut également vérifier manuellement les cases obsolètes dans votre environnement Vagrant actuel en utilisant vagrant box outdated
commande :
$ vagrant box outdated
Cette commande vous montrera la liste des boîtes qui doivent être mises à jour.
Checking if box 'generic/alpine38' version '3.1.16' is up to date...
A newer version of the box 'generic/alpine38' for provider 'virtualbox' is
available! You currently have version '3.1.16'. The latest is version
'3.1.22'. Run `vagrant box update` to update.
Si vous souhaitez vérifier toutes les cases installées, ajoutez simplement --global
drapeau à la fin :
$ vagrant box outdated --global
Exemple de résultat :
/usr/share/rubygems-integration/all/gems/vagrant-2.2.6/plugins/commands/box/command/outdated.rb:65: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call /usr/share/rubygems-integration/all/gems/vagrant-2.2.6/lib/vagrant/box.rb:124: warning: The called method `load_metadata' is defined here * 'oraclelinux/8' for 'libvirt' (v8.3.183) is up to date * 'oraclelinux/7' for 'virtualbox' is outdated! Current: 7.9.184. Latest: 7.9.185 * 'generic/alpine38' for 'virtualbox' is outdated! Current: 3.1.16. Latest: 3.1.22 * 'fedora33' for 'virtualbox' wasn't added from a catalog, no version information * 'archlinux/archlinux' for 'virtualbox' is outdated! Current: 20201215.11392. Latest: 20210115.13749 * 'archlinux/archlinux' for 'virtualbox' is outdated! Current: 20201201.10292. Latest: 20210115.13749 * 'Fedora33' for 'libvirt' wasn't added from a catalog, no version information
Comme vous pouvez le voir dans la sortie ci-dessus, j'ai quelques boîtes obsolètes.
Les utilisateurs peuvent mettre à jour la boîte associée à l'environnement Vagrant actuel avec la commande :
$ vagrant box update
La commande ci-dessus télécharge la nouvelle version de box et l'installe. Toutes les boîtes téléchargées sont enregistrées dans ~/.vagrant.d/boxes
répertoire de votre système hôte. L'ancienne version de la boîte restera disponible au même emplacement jusqu'à ce que vous supprimiez manuellement cette boîte Vagrant du dossier cache.
Vous pouvez vérifier si en listant toutes les boîtes Vagrant installées avec la commande :
$ vagrant box list
Exemple de résultat :
Fedora33 (libvirt, 0)
archlinux/archlinux (virtualbox, 20201201.10292)
archlinux/archlinux (virtualbox, 20201215.11392)
fedora33 (virtualbox, 0)
generic/alpine38 (virtualbox, 3.1.16)
oraclelinux/7 (virtualbox, 7.9.184)
oraclelinux/8 (libvirt, 8.3.183)
Comme vous pouvez le voir dans la sortie ci-dessus, j'ai deux versions de boîtes vagabondes Arch Linux. Il n'est pas nécessaire de conserver deux boîtiers du même système d'exploitation. Alors supprimons la boîte de vagabond obsolète.
Supprimer les boîtes de vagabondage obsolètes
Vous pouvez utiliser vagrant box prune
commande pour supprimer les boîtes Vagrant obsolètes de votre système Linux.
Tout d'abord, vérifions quelles cases seront supprimées et lesquelles seront conservées avec --dry-run
option. L'option est utilisée pour simuler des commandes sans rien changer dans un système Linux.
$ vagrant box prune --dry-run
Cette commande ne supprimera aucune boîte, mais n'imprimera que les boîtes qui seraient supprimées.
Exemple de résultat :
The following boxes will be kept...
Fedora33 (libvirt, 0)
archlinux/archlinux (virtualbox, 20201215.11392)
fedora33 (virtualbox, 0)
generic/alpine38 (virtualbox, 3.1.16)
oraclelinux/7 (virtualbox, 7.9.184)
oraclelinux/8 (libvirt, 8.3.183)
Checking for older boxes...
Would remove archlinux/archlinux virtualbox 20201201.10292
Comme vous le voyez dans la sortie ci-dessus, la boîte vagabonde nommée "archlinux/archlinux virtualbox 20201201.10292
" sera supprimé de votre système.
Vous savez maintenant quelle case va être supprimée. Si cela vous convient, exécutez simplement la même commande command sans --dry-run
choix :
$ vagrant box prune
Cette commande conservera les boîtes mises à jour actuelles et supprimera toutes les autres boîtes obsolètes.
The following boxes will be kept...
Fedora33 (libvirt, 0)
archlinux/archlinux (virtualbox, 20201215.11392)
fedora33 (virtualbox, 0)
generic/alpine38 (virtualbox, 3.1.16)
oraclelinux/7 (virtualbox, 7.9.184)
oraclelinux/8 (libvirt, 8.3.183)
Checking for older boxes...
Removing box 'archlinux/archlinux' (v20201201.10292) with provider 'virtualbox'...
Vagrant-libvirt plugin removed box only from you LOCAL ~/.vagrant/boxes directory
From libvirt storage pool you have to delete image manually(virsh, virt-manager or by any other tool)
Vérifiez maintenant la liste des box installées :
$ vagrant box list
Fedora33 (libvirt, 0)
archlinux/archlinux (virtualbox, 20201215.11392)
fedora33 (virtualbox, 0)
generic/alpine38 (virtualbox, 3.1.16)
oraclelinux/7 (virtualbox, 7.9.184)
oraclelinux/8 (libvirt, 8.3.183)
Voir? Maintenant, il ne montre qu'une seule boîte archlinux vagrant. La case obsolète est supprimée.
Le prune
La commande a également d'autres options utiles. Vous pouvez utiliser -p
, --provider
possibilité de détruire les boîtes avec un FOURNISSEUR spécifique (par exemple, Virtualbox ou libvirt).
Le -f
, --force
drapeau détruit sans confirmation même lorsque la boîte est en cours d'utilisation. Le -k
, --keep-active-boxes
L'option est utilisée pour garder les boîtes toujours activement utilisées.
Pour afficher la section d'aide, exécutez :
$ vagrant box prune --help