0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windowsでも使えるVersion Manager、vfoxをインストールする

Last updated at Posted at 2024-12-10

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.

プロキシ設定

プロキシが必要な環境では、こちらを見て設定します。

$HOME/.version-fox/config.yaml
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

Plugins / Available

プラグインのインストール

JavaとApache Mavenのプラグインをインストールしてみます。

PS > vfox add java maven

Plugins / Add

各プラグインのリポジトリはこちらです。

各プラグイン自体の説明は、それぞれのGitHubリポジトリーの内容を見ることになるでしょう。

SDKをインストールしてみる

Core / Install

OpenJDK(Eclipse Temurin)をインストールしてみる

Javaの場合、複数のOpenJDKディストリビューションがあるのでその中から選ぶことになります。

Javaのインストール可能なディストリビューションを表示。

PS > vfox search java all

こんな感じで表示結果からインストールしたい対象を選べます。

image.png

ディストリビューションを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

Core / Use

グローバル(--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

Core / Uninstall

アップデート

vfox自体のアップデートは、upgradeコマンドです。

PS > vfox upgrade

Core / Upgrade

プラグインのアップデートは、update [プラグイン名]update --all(すべてのプラグイン)です。

PS > vfox update java
PS > vfox update --all

Plugin / Update

こんなところでしょうか。

WindowsでもVersion Managerを使ってみましょう、ということで。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?