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".
インストールされた。