VirtualBoxのExtension PackをCLIで更新する

ssh -Y でリモートのサーバーに接続して、 VirtualBox Extension Packを更新したかったのだけど、Virtual Boxの画面からやろうとすると、こんなエラーが出る

The installer failed with exit code 127: Error creating textual authentication agent: Error opening current controlling terminal for the process (`/dev/tty'): No such device or address.

調べてみるとsudoできないので失敗してるらしい。CLIでできないか調べたらできそうだった。

$ VBoxManage extpack uninstall
Oracle VM VirtualBox Command Line Management Interface Version 7.0.2
Copyright (C) 2005-2022 Oracle and/or its affiliates

VBoxManage: error: No extension pack name was given to "extpack uninstall"

Usage:

  VBoxManage extpack uninstall [--force] <name>

名前が必要と。それではということで、extension pack 一覧を取得

$ VBoxManage list extpacks
Extension Packs: 1
Pack no. 0:   Oracle VM VirtualBox Extension Pack
Version:        6.1.34
Revision:       150636
Edition:
Description:    Oracle Cloud Infrastructure integration, USB 2.0 and USB 3.0 Host Controller, Host W
ebcam, VirtualBox RDP, PXE ROM, Disk Encryption, NVMe.
VRDE Module:    VBoxVRDP
Crypto Module:
Usable:         false
Why unusable:   VBoxExtPackRegister returned VERR_VERSION_MISMATCH, pReg=0000000000000000 ErrInfo='H
elper version mismatch - expected 0x30000 got 0x50000'

なるほど。で、名前ってどれ?

$ VBoxManage uninstall extpack 6.1.34
Oracle VM VirtualBox Command Line Management Interface Version 7.0.2
Copyright (C) 2005-2022 Oracle and/or its affiliates

VBoxManage: error: Invalid command 'uninstall'

Usage - Oracle VM VirtualBox command-line interface:
....

違うらしい

$ sudo VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully uninstalled "Oracle VM VirtualBox Extension Pack".

行けた。Pack no. 0: の行が名前だった。この名前いつも一緒なんじゃないの?意味あんの?って思った。sudo入れてるのはリモート環境でやってるから。直でやってるならおそらく不要。

新しいバージョンをインストールする。ファイル名を指定すればよさそう

$ sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-7.0.2.vbox-extpack

ライセンスが表示されるのでyで応答すると

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully installed "Oracle VM VirtualBox Extension Pack".

インストールされた。