GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで古いVagrantボックスを削除する方法

Vagrantボックスのいくつかのバージョンをダウンロードした可能性があり、それらのいくつかはかなり古い可能性があります!不要になった場合は、この簡単なガイドで説明されているように、Linuxで古いVagrantボックスを安全に削除できます。

古いVagrantボックスを確認してください

Vagrantを使用しています テスト目的で過去数か月間。 Vagrantバージョン1.5以降、ボックスはバージョン管理をサポートしています。ボックスバージョニングを使用すると、ボックスを作成する開発者は更新または修正をプッシュでき、ユーザーは基になるボックスを簡単に更新できます。

ボックスが古くなっている場合、vagrant upを使用してvagrant環境を開始するとユーザーに通知されます コマンド:

$ vagrant up

出力例:

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...
...

ユーザーは、vagrant box outdatedを使用して、現在のVagrant環境で古いボックスを手動で確認することもできます。 コマンド:

$ vagrant box outdated

このコマンドは、更新が必要なボックスのリストを表示します。

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.

インストールされているすべてのボックスをチェックする場合は、--globalを追加するだけです。 最後にフラグを立てる:

$ vagrant box outdated --global

出力例:

/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

上記の出力でわかるように、古いボックスがいくつかあります。

ユーザーは、コマンドを使用して現在のVagrant環境に関連付けられているボックスを更新できます:

$ vagrant box update

上記のコマンドは、新しいバージョンのboxをダウンロードしてインストールします。ダウンロードしたすべてのボックスは、 ~/.vagrant.d/boxesに保存されます ホストシステムのディレクトリ。古いバージョンのボックスは、そのVagrantボックスをキャッシュフォルダーから手動で削除するまで、同じ場所で引き続き使用できます。

次のコマンドを使用して、インストールされているすべてのVagrantボックスを一覧表示することで確認できます:

$ vagrant box list

出力例:

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)

上記の出力でわかるように、ArchLinuxのvagrantボックスには2つのバージョンがあります。同じOSのボックスを2つ保持する必要はありません。それでは、古いVagrantボックスを削除しましょう。

古いVagrantボックスを削除する

vagrant box pruneを使用できます Linuxシステムの古いVagrantボックスを削除するコマンド。

まず、どのボックスが削除され、どのボックスが--dry-runで保持されるかを確認しましょう。 オプション。このオプションは、コマンドのシミュレーションに使用されます Linuxシステムでは何も変更せずに。

$ vagrant box prune --dry-run

このコマンドは実際にはボックスを削除しませんが、削除されるボックスのみを印刷します。

出力例:

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

上記の出力にあるように、「 archlinux/archlinux virtualbox 20201201.10292」という名前のvagrantボックス 「システムから削除されます。

これで、どのボックスが削除されるかがわかりました。問題がない場合は、同じコマンドコマンドをなしで実行するだけです。 --dry-run オプション:

$ vagrant box prune

このコマンドは、現在更新されているボックスを保持し、他のすべての古いボックスを削除します。

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)

次に、インストールされているボックスのリストを確認します。

$ 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)

見る?これで、archlinuxvagrantボックスが1つだけ表示されます。古いボックスが削除されます。

prune コマンドには他の便利なオプションもあります。 -pを使用できます 、--provider 特定のPROVIDER(Virtualboxやlibvirtなど)でボックスを破棄するオプション。

-f--force ボックスが使用中であっても、フラグは確認なしで破棄されます。 -k--keep-active-boxes オプションは、ボックスを引き続きアクティブに使用し続けるために使用されます。

ヘルプセクションを表示するには、次を実行します:

$ vagrant box prune --help

Linux
  1. libvirtでVagrantを使用する方法

  2. Linuxでルートメール(メールボックス)ファイルを削除する方法

  3. LinuxにVagrantをインストールする方法

  1. Linuxでファイルまたはディレクトリを削除(削除)する方法

  2. LinuxでVimの行を削除する方法

  3. LinuxにVagrantをインストールする方法

  1. Linuxでパーティションを削除する方法

  2. UbuntuLinuxでファイルを削除する方法

  3. Linuxでディレクトリを削除(削除)する方法