What's?
使用する言語などをインストールしたり、バージョンを切り替えられるツール(Version Manager)としてはasdfが有名だとは思いますが、あいにくWindowsでは難があります。
個人的には別にWindowsで使えなくても困らないのですが Windowsでも使えるツールはないかなと思って調べたところ、vfoxが使えそうだったので少し試してみました。
vfox
vfoxはasdfなどと同様、様々なSDKをプラグインとしてインストールして、言語やバージョンを切り替えられるVersion Managerです。
使用できるプラグインの一覧はこちら。
現時点でこれだけ対応しています。
- bun
- clang
- cmake
- crystal
- dart
- deno
- dotnet
- elixir
- erlang
- etcd
- flutter
- gcc-arm-none-eabi
- golang
- gradle
- groovy
- java
- julia
- kotlin
- kubectl
- make
- maven
- mongo
- ninja
- nodejs
- php
- protobuf
- python
- ruby
- scala
- terraform
- vlang
- zig
ちなみに、Windowsで使う場合はこちらのvmというツールを使ってもよさそうです。
対応しているプラグインはvfoxよりもずっと多いのですが、自分が使う範囲ではvfoxで十分なのとwingetでインストールできることからvfoxを選びました。
環境
PS > $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 19041 5129
vfoxをインストールする
vfoxのインストールはwingetでできます。
PS > winget install vfox
Quick Start / Installation / Windows
インストール後、PowerShellを起動すれば使えるようになっています。
また$PROFILE
に以下を追加しておきます。
Invoke-Expression "$(vfox activate pwsh)"
FAQ / Switch xxx not work or the vfox use command does not work ?
現時点のバージョンはこちら。
PS > vfox --version
vfox version 0.5.4
ヘルプ。
PS > vfox --help
NAME:
vfox - vfox is a tool for runtime version management.
USAGE:
vfox [command] [command options]
VERSION:
0.5.4
DESCRIPTION:
vfox is a cross-platform version manager, extendable via plugins. It allows you to quickly install and switch between different environment you need via the command line.
COMMANDS:
upgrade upgrade vfox to the latest version
config Setup, view config
cd Launch a shell in the VFOX_HOME or SDK directory
help, h Shows a list of commands or help for one command
Plugin:
info Show plugin info
available Show all available plugins
update Update specified plugin, use --all/-a to update all installed plugins
remove Remove a plugin
add Add a plugin or plugins
SDK:
install, i Install a version of the target SDK
current, c Show current version of the target SDK
use, u Use a version of the target SDK
list, ls List all versions of the target SDK
uninstall, un Uninstall a version of the target SDK
search Search a version of the target SDK
env
GLOBAL OPTIONS:
--debug show debug information (default: false)
--help, -h show help
--version, -v, -V print version (default: false)
COPYRIGHT:
Copyright 2024 Han Li. All rights reserved.
プロキシ設定
プロキシが必要な環境では、こちらを見て設定します。
proxy:
url: "http://[your-proxy-host]:[your-proxy-port]"
enable: true
Configuration / Proxy Settings
設定ファイル(config.yaml
)自体は、vfoxをインストールすると作成されています。
使ってみる
プラグインの一覧表示
使用できるプラグインの一覧。
PS > vfox available
NAME OFFICIAL HOMEPAGE DESCRIPTION
bun NO https://github.com/ahai-code/vfox-bun Bun plugin, https://bun.sh/
clang YES https://github.com/version-fox/vfox-clang Clang plugin, https://clang.llvm.org
cmake YES https://github.com/version-fox/vfox-cmake Cmake plugin, https://cmake.org/
crystal NO https://github.com/yanecc/vfox-crystal Crystal plugin, supports version ≥ 0.24.2 and nightly builds, https://crystal-lang.org
dart YES https://github.com/version-fox/vfox-dart dart plugin, support for getting stable, dev, beta version
deno YES https://github.com/version-fox/vfox-deno Deno plugin, https://deno.com/
dotnet YES https://github.com/version-fox/vfox-dotnet dotnet plugin, support for dotnet sdks 6.0, 7.0, 8.0
elixir YES https://github.com/version-fox/vfox-elixir Elixir vfox plugin, support for managing multiple Elixir language versions in Windows & Uinx-like system.
erlang YES https://github.com/version-fox/vfox-erlang Erlang/OTP vfox plugin, support for managing multiple Erlang/OTP versions in Windows & Uinx-like system.
etcd YES https://github.com/version-fox/vfox-etcd etcd vfox plugin. Use the vfox to manage multiple etcd server & etcdctl & etcductl versions in Linux/Darwin/Windows. Also can be used to install an etcd with failpoint.
flutter YES https://github.com/version-fox/vfox-flutter Flutter plugin, https://flutter.dev
gcc-arm-none-eabi NO https://github.com/leoli0605/vfox-gcc-arm-none-eabi Arm GNU Toolchain bare-metal target (arm-none-eabi) plugin for the vfox version manager
golang YES https://github.com/version-fox/vfox-golang Golang plugin, https://go.dev/dl/
gradle YES https://github.com/version-fox/vfox-gradle Gradle runtime environment.
groovy YES https://github.com/version-fox/vfox-groovy Groovy plugin, https://groovy.apache.org/
java YES https://github.com/version-fox/vfox-java Support for multiple JDK distributions, such as: Oracle, Graalvm, Eclipse & more.
julia NO https://github.com/ahai-code/vfox-julia Julia plugin, https://julialang.org/
kotlin YES https://github.com/version-fox/vfox-kotlin Kotlin plugin
kubectl NO https://github.com/ahai-code/vfox-kubectl Kubectl plugin
make NO https://github.com/leoli0605/vfox-make GNU Make plugin for the vfox version manager
maven YES https://github.com/version-fox/vfox-maven Maven runtime environment.
mongo NO https://github.com/yeshan333/vfox-mongo mongo vfox plugin, support for managing multiple mongo versions.
ninja NO https://github.com/leoli0605/vfox-ninja Ninja plugin for the vfox version manager
nodejs YES https://github.com/version-fox/vfox-nodejs Node.js runtime environment.
php YES https://github.com/version-fox/vfox-php php plugin
protobuf NO https://github.com/ahai-code/vfox-protobuf Protobuf plugin, https://github.com/protocolbuffers/protobuf#protobuf-compiler-installation
python YES https://github.com/version-fox/vfox-python Python language support, https://www.python.org
ruby NO https://github.com/yanecc/vfox-ruby Ruby plugin, https://www.ruby-lang.org
scala YES https://github.com/version-fox/vfox-scala Scala plugin, https://www.scala-lang.org/
terraform NO https://github.com/enochchau/vfox-terraform Terraform plugin, https://www.terraform.io/
vlang NO https://github.com/ahai-code/vfox-vlang Vlang plugin
zig YES https://github.com/version-fox/vfox-zig Zig runtime environment.
Please use vfox add <plugin name> to install plugins
プラグインのインストール
JavaとApache Mavenのプラグインをインストールしてみます。
PS > vfox add java maven
各プラグインのリポジトリはこちらです。
各プラグイン自体の説明は、それぞれのGitHubリポジトリーの内容を見ることになるでしょう。
SDKをインストールしてみる
OpenJDK(Eclipse Temurin)をインストールしてみる
Javaの場合、複数のOpenJDKディストリビューションがあるのでその中から選ぶことになります。
Javaのインストール可能なディストリビューションを表示。
PS > vfox search java all
こんな感じで表示結果からインストールしたい対象を選べます。
ディストリビューションをEclipse Temurinに絞る場合。
PS > vfox search java tem
明示的なインストール。
PS > vfox install java@v21.0.5+11-tem
Apache Mavenをインストールしてみる
Apache Mavenをインストール。
PS > vfox install maven@3.9.9
インストールされているSDKを確認する
インストールするとvfox list
で表示されるようになります。
PS > vfox list
All installed sdk versions
├─┬java
│ └──v21.0.5+11-tem
└─┬maven
└──v3.9.9
SDKを使う
インストールしただけではSDKは使えません。use
での指定が必要です。
use
には3種類のスコープがあります。
PS > vfox use --help
NAME:
vfox use - Use a version of the target SDK
USAGE:
vfox use [command options] [arguments...]
CATEGORY:
SDK
OPTIONS:
--global, -g Used with the global environment (default: false)
--project, -p Used with the current directory (default: false)
--session, -s Used with the current shell session (default: false)
--help, -h show help
グローバル(--global, -g
)、カレントディレクトリ(--project, -p
)、現在のセッション(--session, -s
)の3種類です。
試してみます。
PS > vfox use java@21.0.5+11-tem
デフォルトだと現在のセッションが対象になるようです。
PS > java --version
openjdk 21.0.5 2024-10-15 LTS
OpenJDK Runtime Environment Temurin-21.0.5+11 (build 21.0.5+11-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.5+11 (build 21.0.5+11-LTS, mixed mode, sharing)
グローバルに設定。
PS > vfox use -g java@21.0.5+11-tem
もうひとつEclipse Temurinをインストール。
PS > vfox install java@17.0.13+11-tem
現在のセッションで設定。
PS > vfox use -s java@17.0.13+11-tem
list
で確認。
PS > vfox list
All installed sdk versions
├─┬java
│ ├──v21.0.5+11-tem
│ └──v17.0.13+11-tem
└─┬maven
└──v3.9.9
SDKをアンインストールする
SDKをアンインストールするにはuninstall
コマンドを実行します。
PS > vfox uninstall java@17.0.13+11-tem
PS > vfox list
All installed sdk versions
├─┬java
│ └──v21.0.5+11-tem
└─┬maven
└──v3.9.9
アップデート
vfox自体のアップデートは、upgrade
コマンドです。
PS > vfox upgrade
プラグインのアップデートは、update [プラグイン名]
かupdate --all
(すべてのプラグイン)です。
PS > vfox update java
PS > vfox update --all
こんなところでしょうか。
WindowsでもVersion Managerを使ってみましょう、ということで。