【Flutter】asdfでのFlutter 3.0.0のインストールに手こずった話

Dart

概要

どうも、@daiki1003です!

とうとうFlutter 3がリリースされましたね!
早速、意気揚々とasdfでインストールしようとしたのですが、全然成功せず…。

curl: (3) URL using bad/illegal format or missing URL
tar: Error opening archive: Failed to open 'flutter_macos_arm64_3.0.0-stable.zip'

本記事では、このエラーへの対象法などの備忘録として書いています。

筆者環境

OS:macOS Monterey 12.3.1
asdf: v0.10.0

結論?

結論、何をして成功したかと言うと以下2つかなーと思っています。

jqのインストール
asdfからflutterプラグイン削除、再インストール

$ brew install jq
$ asdf plugin remove flutter
$ asdf plugin add flutter
$ asdf install

最後のasdf installに関しては、 .tool-versionsを作ってない場合は
asdf install flutter 3.0.0-stableでもOKです。

下記の通り、いろいろ試してみましたが根本では何が問題かは分からなかったです ><

asdfのアップグレード

まず、考えたのはこれでした。

$ brew update && brew upgrade asdf

正常にアップデートは完了したものの、まだ出来ず。

jqのインストール

@edasan123さんに教えてもらい、jqをインストールしてみる。

$ brew install jq

が、これも成功せず。

3.0.0を直接ダウンロードしてみるw

ダメもとでFlutter Releasesページからダウンロードしてasdfのインストール先である

/Users/${username}/.asdf/installs/flutter/3.0.0-stable

に移動してみましたが、やはりダメでした笑

asdf-flutterのinstallを手元で試してみる

asdf-flutter/install at master · oae/asdf-flutter
Flutter plugin for the asdf version manager . Contribute to oae/asdf-flutter development by creating an account on GitHub.

$ asdf install (flutter 3.0.0-stable)は最終的には asdf-flutterレポジトリのbin/installを呼びます。

最初に書いたエラー

curl: (3) URL using bad/illegal format or missing URL
tar: Error opening archive: Failed to open 'flutter_macos_arm64_3.0.0-stable.zip'

mkdir -p "${ASDF_INSTALL_PATH}"
cd "${ASDF_INSTALL_PATH}" || exit 1
curl -OJL "${url}"
tar xf "${fileName}" --strip 1
rm -f "${fileName}"

の3,4行目のエラーであることが分かったのでこれを手元にコピーして変数部分を一部定数に置き換えてやってみました。
するとcurlの部分は正常に動きました。
どうやらurlの生成部分に差異がありそうです。

urlとは言っても…

urlは以下のように構成されています。

local url="${urlPrefix}/${filePath}"

このうち、urlPrefixは半ば定数なので問題はfilePathにありそうです。

…と言うところまでは分かったんですがそれ以上は分からず。

asdfからflutterプラグインを削除してみる

もうこうなったら破れかぶれだ!とまたも@edasan123さんに教えてもらった方法を試してみます。

$ asdf plugin remove flutter

してみました。

そして、

$ asdf plugin add flutter
$ asdf install

とやってみる。

そしたら…出来ました!
うーん、なんだったんだろう笑

誰かのお役に立てば。

Twitterフォローお願いします

「次回以降も記事を読んでみたい!」
「この辺分からなかったから質問したい!」

そんな時は、是非Twitter (@daiki1003)Instagram (@ashdik_flutter)のフォローお願いします♪

Twitterコミュニティ参加お願いします

Twitterコミュニティ「Flutter lovers」を開設しました!
参加お待ちしております😁

☕️ Buy me a coffee

また、記事がとても役に立ったと思う人は
コーヒーを奢っていただけると非常に嬉しいです!
@daiki1003

コメント

タイトルとURLをコピーしました