patorashのブログ

方向性はまだない

DartのバージョンマネージャーDVMを入れてみた

Rubyのrvm, rbenvみたいにDartのバージョンマネージャーはないのかな?と探してみたところ、dvmがヒットしました。 dvmはpubパッケージとして公開されているので、dartのインストールが行われていないと使えません。

pub.dartlang.org

dvmのインストール

dartはすでにインストールされている前提で話を進めます。以下のコマンドを入力します。

$ pub global activate dvm

これで終わりです。一応、dvm helpを実行してみましょう。

$ dvm help
Manage multiple active Dart versions.

Usage: dvm <command> [arguments]

Global options:
-h, --help       Print this usage information.
-v, --version    Print out the latest released version of dvm.
-p, --path       Installation directory for the Dart SDK.
                 (defaults to "/Users/toyoaki/.dvm")

Available commands:
  help      Display help information for dvm.
  install   Download and install a <version/channel>.
  switch    Switches the `current` directory to <version/channel>.

Run "dvm help <command>" for more information about a command.

入ってます。

複数のバージョンのdartのインストール

とりあえず複数バージョンのdartを入れてみましょう。バージョン情報は以下のページから見れます。

www.dartlang.org

dvm自体にはまだバージョン一覧を取得する方法がなさそうです。

$ dvm install 1.24.3

終わったら、続けて違うバージョンを入れてみます。

$ dvm install 1.25.0-dev.16.4

とりあえずダウンロードは終わった模様です。

dvmのdartが使われない

1.25.0-dev.16.4を使うように指定してから、バージョンを表示してみました。

$ dvm switch 1.25.0-dev.16.4
INFO: Switching to dev/1.25.0-dev.16.4...
INFO: Done as "/Users/patorash/.dvm/current/dart-sdk".
$ dart --version
Dart VM version: 1.24.3 (Wed Dec 13 23:26:59 2017) on "macos_x64"

どうも使われてない模様…。dartのパスを調べます。

 $ which dart
/usr/local/bin/dart

dartのパスをホームディレクトリ以下の.dvm/current/dart-sdk/binに変更しないといけません。

homebrewのdartを削除

まぁいつでも入れ直せるだろうと思ってザクッと削除しました。

$ brew remove dart

その後、PATHに追加します。.bash_profileなりに入れましょう。

export PATH="/Users/patorash/.dvm/current/dart-sdk/bin:$PATH"

その後、source .bash_profileするか、ターミナルの再起動をするかをします。

これでdartへのパスが通ったかと思いきや、実行権限がなくて認識してませんでしたので実行権限を付与します。

$ chmod +x ~/.dvm/current/dart-sdk/bin/*

この後、dart --versionを実行してみましょう。

$ dart --version
Dart VM version: 1.25.0-dev.16.4 (Wed Sep 13 01:47:12 2017) on "macos_x64"

変わってます!では、また違うバージョンにしてからバージョン確認してみましょう。

$ dvm switch 1.24.3
Wrong script snapshot version, expected '47f19879b9cac7de1b33e7b7ea414c7a' found '3b70e6793a0fce902401bb759bc9762b'
INFO: Switching to stable/1.24.3...
INFO: Done as "/Users/toyoaki/.dvm/current/dart-sdk".
$ dart --version
Dart VM version: 1.24.3 (Wed Dec 13 23:26:59 2017) on "macos_x64"

ちゃんと1.24.3に変更できました。

まだ入れただけで実際にこれで開発をしたことがあるわけではないのですが、ひとまずはこれを使ってみようと思います。