本記事について
今回、vagrant実行時とパッケージインストール時に発生した
エラーをまとめています。
本事象が起きるのはあまりないかもしれませんが、
自身の備忘録的な意味も踏まえ、簡単にまとめてみました。
参考URL:https://chusotsu-program.com/monterey-vagrant-not-working/
実行環境:MacOS Monterey 12.7.5(21H1222)
vagrant実行時のfatal error: runtime: bsdthread_register error
久しぶりにvagrantでvirtualBoxを操作しようとしたら、
表題エラーがでてきて、vagrant upができなくなってしまった。
# vagrant up
fatal error: runtime: bsdthread_register error
runtime stack:
runtime.throw(0x110617a, 0x21)
/usr/local/go/src/runtime/panic.go:596 +0x95 fp=0x7ff7bfeff8f0 sp=0x7ff7bfeff8d0
runtime.goenvs()
/usr/local/go/src/runtime/os_darwin.go:108 +0xa0 fp=0x7ff7bfeff920 sp=0x7ff7bfeff8f0
runtime.schedinit()
/usr/local/go/src/runtime/proc.go:486 +0xa1 fp=0x7ff7bfeff960 sp=0x7ff7bfeff920
runtime.rt0_go(0x7ff7bfeff990, 0x2, 0x7ff7bfeff990, 0x1000000, 0x2, 0x7ff7bfeffb10, 0x7ff7bfeffb18, 0x0, 0x7ff7bfeffb1b, 0x7ff7bfeffb43, ...)
/usr/local/go/src/runtime/asm_amd64.s:158 +0x183 fp=0x7ff7bfeff968 sp=0x7ff7bfeff960
冒頭記載の参考URL先も参照に確認してみると、
OSのバージョンアップ時にvagrant自体が破損してしまったようです。。
その為、再度vagrantを入れ直すことに。
sudo rm -rf /opt/vagrant
sudo rm -f /usr/local/bin/vagrant
sudo pkgutil --forget com.vagrant.vagrant
Error: formulae require at least a URL
いざ、brew install vagrantを実行し、再度インストールを行おうと下が、今度は以下エラーが発生。
Error: formulae require at least a URL
Please report this issue:
https://docs.brew.sh/Troubleshooting
/usr/local/Homebrew/Library/Homebrew/formula.rb:306:in `determine_active_spec'
/usr/local/Homebrew/Library/Homebrew/formula.rb:237:in `initialize'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:485:in `new'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:485:in `get_formula'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:762:in `factory'
/usr/local/Homebrew/Library/Homebrew/cli/parser.rb:655:in `block in formulae'
/usr/local/Homebrew/Library/Homebrew/cli/parser.rb:651:in `map'
/usr/local/Homebrew/Library/Homebrew/cli/parser.rb:651:in `formulae'
/usr/local/Homebrew/Library/Homebrew/cli/parser.rb:323:in `parse'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:167:in `install'
/usr/local/Homebrew/Library/Homebrew/brew.rb:86:in `<main>'
結論、原因はパッケージ管理ツール「brew」のリポジトリ先tapが競合となってしまうようです。
参考:https://kawarimidoll.com/2021/04/01/brew-error-formulae-require-at-least-a-url/
そのためこのリポジトリを消せればいけそうなので、
# brew tap
hashicorp/tap
# brew untap hashicorp/tap
その後vagrantが無事、インストールできました!
このタップについてchatGPTに質問してみると、
hashicorp/tapは、HashiCorpが提供するHomebrewのタップで、HashiCorpのツール(例えば、Vagrantや>Terraformなど)を簡単にインストールするためのリポジトリです。このタップに含まれるソフトウェアは、HashiCorpが管理しており、公式にサポートされています。
上記のような役割があるよう。
こちらをもとに考えると、これまで使用してたvagrantはtapを経由で利用していませんでした。
ただ以前に別途、Terraform利用時にtapを利用したので、その際に今回のように重複してしまい、またOSのアップデートも重なり、意図せずtapを参照するようになったかなと。(ざっくりな考察ですが、)
今回は以上です。
MAC OSややこしい、、