🎯

【Dart】Version管理ツールdvmを試す

2023/11/18に公開

DartのVersion Manager Tool

今回はDartのVersion管理ツールを試してみました! 一番Starが付いていた↓を導入して試してみます。

https://github.com/cbracken/dvm

Install

git clone https://github.com/cbracken/dvm.git ~/.dvm

使っている .bashrc.zshrc などに以下を追加。

if [[ -f ~/.dvm/scripts/dvm ]]; then
  . ~/.dvm/scripts/dvm
fi

インストール可能なDartのVersion一覧

$ dvm listall
1.11.0
1.11.1
...
3.1.4
3.1.5
latest

使用するVersionのインストール

dvm install [version]

デフォルトで使用するDartのVersion指定

dvm use [version] --default

--default を付ける事で環境変数 PATH にdartの実行ファイルのパスを設定してくれるみたいです。

Version切り替え

別Versionをインストールし複数のVersionが存在する状態にします。

$ dvm install [未インストールのVersion]
# ↓今回試したversion
$ dvm list
3.1.4
3.1.5

切り替え

$ dart --version
Dart SDK version: 3.1.5 (stable) (Tue Oct 24 04:57:17 2023 +0000) on "macos_arm64"
$ dvm use 3.1.4
$ dart --version
Dart SDK version: 3.1.4 (stable) (Tue Oct 17 14:55:53 2023 +0000) on "macos_arm64"

versionが 3.1.5 から 3.1.4 に切り替わっています。

再度 .bashrc.zshrc などを読み直すと元の 3.1.5 に戻ります。

$ dart --version
Dart SDK version: 3.1.4 (stable) (Tue Oct 17 14:55:53 2023 +0000) on "macos_arm64"
$ source ~/.zshrc
$ dart --version
Dart SDK version: 3.1.5 (stable) (Tue Oct 24 04:57:17 2023 +0000) on "macos_arm64"

fvm の様にプロジェクト単位で使用するVersionを指定する等の設定は残念ながらできないようです。

Aliasを設定する

ユニークな機能として各VersionにAliasを設定する事ができます。

# 例
$ dvm alias create xxxx_dart_version 3.1.4
$ dvm alias list
xxxx_dart_version
$ dvm use 3.1.5
$ dart --version
Dart SDK version: 3.1.5 (stable) (Tue Oct 24 04:57:17 2023 +0000) on "macos_arm64"
$ dvm use xxxx_dart_version
$ dart --version
Dart SDK version: 3.1.4 (stable) (Tue Oct 17 14:55:53 2023 +0000) on "macos_arm64"

aliasコマンドは create , update , delete, list コマンド使えます。

↓はaliasを更新して削除している例です。

$ dvm alias list
xxxx_dart_version
$ dvm alias update xxxx_dart_version 3.1.5
$ dvm use xxxx_dart_version
$ dart --version
Dart SDK version: 3.1.4 (stable) (Tue Oct 17 14:55:53 2023 +0000) on "macos_arm64"
$ dvm alias delete xxxx_dart_version
$ dvm alias list #=> 空

dart pub global activate を実施してみる

dart pub global activate xxx を実施するとどこにインストールされるのか試してみました。

$ dart pub global activate webdev
$ which webdev                                                                     master
~/.pub-cache/bin/webdev

どうやら特別何か行なっている訳ではなく通常通り ~/.pub-cache/bin 内にインストールされる様です。

まとめ

他のVersion管理ツールみたく特定のプロジェクト毎にVersion指定する機能がないのが残念ですが、それ以外は他のVersion管理ツールを使っている方であればスムーズに導入できる感じかなと思いました。

Discussion