はじめに
Flutter 開発環境の構築について、遭遇したエラーなどのつまずいた点、分からなくて調べた点などを含めて書き出します。
今回は、 asdf というバージョン管理ツールの導入して、指定バージョンの Flutter をインストールする方法をまとめます。
主に公式の Getting Started の内容を参考にしています。
Flutter をバージョン管理するためのツールの選択肢
Flutter をバージョン管理するためのツールの選択肢としては、以下が挙げられるようです。
どちらが良いのかは賛否あるようですが、 asdf を使ってみます。 FVM は Flutter 専用だけど、 asdf は Flutter 以外でも使えるようなので、今回でしっかり使い慣れておきたいです。
環境
- macOS Monterey バージョン 12.6.1
- VS Code(Visual Studio Code) バージョン 1.74.3
目次
- はじめに
- 1. asdf のインストール
- 2. asdf での Flutter プラグインのインストール
- 3. プロジェクトで利用するバージョンの Flutter のインストール
- 4. グローバルで利用する flutter のバージョンの設定
- 5. VS Code での PATH の設定
- おわりに
1. asdf のインストール
まずは asdf をインストールします。
1-1. Homebrew での asdf のインストール
下記 brew
コマンドで、 asdf をインストールします。
brew install asdf
1-2. shell への追加
私の環境は「ZSH & Homebrew」なので、以下のコマンドを実行します。
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
2. asdf での Flutter プラグインのインストール
先ほどインストールした asdf
コマンドを実行して、 Flutter をインストールします。
asdf plugin add flutter
3. プロジェクトで利用するバージョンの Flutter のインストール
asdf でバージョン管理する場合、以下の単位で Flutter のインストールができます。
- ローカル(プロジェクト単位、特定のディレクトリ以下)
- グローバル(PC全体)
3-1. プロジェクトのルートディレクトリへ移動
まずは、ローカル(プロジェクト単位、特定のディレクトリ以下)での設定をします。
Flutter のプロジェクトのルートディレクトリへ移動します。
3-2. .tool-versions の作成・編集
以下のコマンドで、インストール可能なバージョンの一覧を取得できます。
asdf list all flutter
以下のコマンドを実行して、.tool-versions を作成します。
asdf local flutter 3.7.1-stable
以下の通り指定した Flutter のバージョンを記述した .tool-versions がプロジェクトのルートディレクトリに作成されます。
flutter 3.7.1-stable
3-3. 指定したバージョンの Flutter のインストール
下記コマンドを実行すると、 .tool-versions で指定したバージョンの Flutter がインストールされます。
asdf install
jq: command not found
というエラーが出た場合…
$ asdf install /Users/r_yamate/.asdf/plugins/flutter/bin/install: line 25: jq: command not found /Users/r_yamate/.asdf/plugins/flutter/bin/install: line 26: jq: command not found /Users/r_yamate/.asdf/plugins/flutter/bin/install: line 27: [: -gt: unary operator expected Cannot find the download url for the version: 3.3.10-stable
以下のコマンドを実行して、jq をインストールします。
brew install jq
jq コマンドとは?
jqコマンドは、JSONデータから目的の情報を抽出するのに便利な機能を提供しています。
3-4. shim の再生成
shim は、asdf exec というヘルパープログラムに、「プラグインの名前」と「 shim がラップしているインストール済みパッケージの実行ファイルへのパス」を渡す、単純なラッパーです。
下記のコマンドを実行して、shims ディレクトリ内のスクリプトを再生成します。
asdf reshim
flutter の shim は、以下の内容です。
$ cat ~/.asdf/shims/flutter #!/usr/bin/env bash # asdf-plugin: flutter 3.3.10-stable # asdf-plugin: flutter 3.7.0-stable # asdf-plugin: flutter 3.7.1-stable exec /usr/local/opt/asdf/libexec/bin/asdf exec "flutter" "$@" # asdf_allow: ' asdf '
参考. インストール済みバージョン一覧の取得
以下のコマンドで、インストール済みバージョン一覧を取得できます。
asdf list flutter
4. グローバルで利用する flutter のバージョンの設定
グローバルデフォルトは、 $HOME/.tool-versions で管理されます。
以下を使用してグローバルバージョンを設定します。
asdf global flutter 3.3.10-stable
$HOME/.tool-versions
が次のように更新されました。
$ cat ~/.tool-versions flutter 3.3.10-stable
Flutter がインストールされているかの確認
以下コマンドを実行します。
flutter --version
うまくいっていれば、グローバルとローカルでそれぞれ設定したバージョンが表示されます。
5. VS Code での PATH の設定
VS Code での PATH を設定します。
Code → 基本設定 → 設定 を開きます。
「flutter sdk」と検索すると、「Dart: Flutter Sdk Paths」という項目が出てきます。
「項目の追加」を選択して、以下の通り、指定します。
/Users/{ユーザー名}/.asdf/installs/flutter/
おわりに
今回は、 asdf というバージョン管理ツールの導入して、指定バージョンの Flutter をインストールする方法をまとめました。
今後も Flutter に関連する記事を書いていきます。
ありがとうございました。
参考
【革命的すぎ】プログラミング学習をChatGPTを使って10倍効率化する方法 https://t.co/T9ENtGlxjh @YouTubeより
— やまて|Webエンジニア2年目 (@r_yamate) 2023年2月20日
気づいたら最近はChatGPTずっとブラウザで開いてる。いつでも聞けるように。
最近は ChatGPT や NotionAI に首ったけです。