FlutterをUTM上のDebianで動かしてみた


# はじめに

この記事は、Qiita Advent Calendar 8日目の記事です。
以下の記事より、すべての記事をご覧になれます。

https://qiita.com/0_terarin_0/items/0f367210e2465f7772c9

# 筆者について

- 現在高校２年生
- 水泳部マネージャー
- 生徒会長
- とある団体の代表

# 本編

##　経緯

Flutterでの開発をずっとしてみたいと思っていて、最近開発を仮定しているSOKFIもモバイル向けネイティブアプリをFlutterで書こうと思っています。しかし、クロスプラットフォームがFlutterのいいところ、せっかくならパソコン向けにもアプリを出したいと考えていました。そこで、僕が大好きなLinuxに対応させることにしたのです。

## 環境づくり

さて、環境は以下の通りにしました。

- Host：Macbook Air (M1)
- Guest：Debian
- VM：UTM(QEMU)

以下、自分自身が忘れないためにも設定を記述していきます。

### ①Debianイメージのダウンロード

以下のページよりDebianのISOをダウンロードしましょう。以下のページにアクセスして「arm64」をクリックすると自動敵にダウンロードが始まります。

![Screenshot 2023-12-07 at 10.11.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/7730501e-cd27-5830-b78e-a6e4f89636d4.png)

https://www.debian.org/distrib/netinst

### ②UTMにVMを作成する

まず、UTMをインストールしてない方はUTMをインストールしてください。

```zsh:shell
# Homebrewをインストールしてない方はすると便利です。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# UTMのインストール
brew install --cask utm
```

それぞれ下にリンクを置いておきます。

https://brew.sh/

https://mac.getutm.app/

インストールが終わり次第、VMの作成に移ります。

プラスマークを押して〜

![Screenshot 2023-12-07 at 10.17.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/ab1e3101-7027-3c2b-b6c5-511bbad42ca7.png)

Linuxを選択して〜

![Screenshot 2023-12-07 at 10.18.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/b43feee3-b351-1730-c7e6-67520d928e96.png)

Virtualizeを選択して〜

![Screenshot 2023-12-07 at 10.18.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/2dc96838-b3e0-9a67-46d3-e07f73139906.png)

Boot ISO Imageで先ほどダウンロードしたISOを選択して〜

![Screenshot 2023-12-07 at 10.18.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/b499ef13-54bf-9f4f-39b7-f37d136d6072.png)

ここから先も好きなだけ設定して〜（メモリは4GB分ぐらいあったほうがいいとは思います。8GBしかない人は頑張ってください。）

![Screenshot 2023-12-07 at 10.20.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/8014c6f3-20ba-25fd-8614-c22d3b73bb17.png)

![Screenshot 2023-12-07 at 10.20.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/4bbb6846-4870-2021-6d55-79da4f7986e9.png)

![Screenshot 2023-12-07 at 10.20.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/d7315e30-ccb3-456e-4b60-81d5344bdf84.png)

![Screenshot 2023-12-07 at 10.20.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/a13f9860-2bf2-0b99-cf5c-26f9ad4befe2.png)

それでは、スタートボタンよりいざブートです！

![Screenshot 2023-12-07 at 10.20.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/73cb48c5-24ae-7560-96d0-c68ab8237034.png)

![Screenshot 2023-12-07 at 10.20.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/df55c7c9-3bcb-97c4-f98a-cca6f456799b.png)

こっから先は好きな設定にしてください。たとえば、キーボードなんかは、僕のMacはUS配列なので米国を選択しています。

![Screenshot 2023-12-07 at 10.20.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/ce2b8c05-91d9-5dc6-ecfb-2d7f5cffae92.png)

![Screenshot 2023-12-07 at 10.21.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/251cf863-ea6c-c6a5-be78-a74ca0899cdd.png)

![Screenshot 2023-12-07 at 10.21.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/f6daf370-dde8-b9b6-09bd-f818dde84b33.png)

![Screenshot 2023-12-07 at 10.22.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/fa7a189b-8f47-f3b4-1195-4d9e210c21d9.png)

![Screenshot 2023-12-07 at 10.22.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/57b25e53-fb80-f1b0-db54-a5123a3787f6.png)

![Screenshot 2023-12-07 at 10.22.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/cda68636-535a-66ff-cb1a-8ec8b34431ae.png)

![Screenshot 2023-12-07 at 10.22.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/4da2d137-76ac-802c-07f1-6e3e24620876.png)

![Screenshot 2023-12-07 at 10.22.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/0b6410a2-5646-2a25-1346-b2bb5e832c20.png)

![Screenshot 2023-12-07 at 10.22.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/2148ef2c-bad3-a2e6-add1-6c7823dbf97b.png)

ここで、ディスクの設定ですが、すべてパーティションは削除してください。ここから先に個人用のフォルダのパーティションを分割するとかいうとこもでてきますが、基本的のそのような設定は不必要だとお思います。（あくまで検証用なので）

![Screenshot 2023-12-07 at 10.23.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/75ac7a75-87aa-6ea1-1703-2acd1de226f0.png)

![Screenshot 2023-12-07 at 10.23.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/e0fb20dc-b3e3-f44f-e369-bf99c30802b5.png)

![Screenshot 2023-12-07 at 10.23.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/829191c1-707b-2be3-872d-f53034c48ff5.png)

![Screenshot 2023-12-07 at 10.23.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/b0ec97ac-5f56-09fb-fb43-a10ddd98adc4.png)

![Screenshot 2023-12-07 at 10.23.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/041cf1c9-4b48-513d-a93d-cf375b15f442.png)

![Screenshot 2023-12-07 at 10.24.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/1bb0f9b5-57f5-bf83-68fe-8cb0c779518b.png)

ここから先はかなりファイルのダウンロードをするので、テザリングとかの人は気をつけてください。

![Screenshot 2023-12-07 at 10.24.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/064e8627-9865-0309-d61d-d5792720c644.png)

![Screenshot 2023-12-07 at 10.25.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/5446c69c-2ff0-278e-aa6b-d7548c406a16.png)

![Screenshot 2023-12-07 at 10.25.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/6b852c20-fe57-8372-ed2d-70c1a9655756.png)

![Screenshot 2023-12-07 at 10.25.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/8bfab962-479a-f510-09e6-d7b29bf454ce.png)

![Screenshot 2023-12-07 at 10.38.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/9641ed0c-974c-698a-b1ca-dd9af053ad94.png)

ということでここまで来たらインストールは完了です！一旦続けるを押して再起動が終わったとあとにシャットダウンしてください。
ディスクを取り出して、もう一度起動しましょう！

![Screenshot 2023-12-07 at 10.40.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/2cc3c727-494d-381e-8bfd-73e42a820a81.png)

ログインして以下のような画面が出てきたら成功です。おめでとうございます！

![Screenshot 2023-12-07 at 10.51.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/5d9a8d71-d066-fea9-2518-472f1254bbd2.png)

ではここからは個人が設定しやすい設定をしてください。（ZSHに変更、VSCodeのインストール等々…。）

## Flutter (Arm)をインストール

基本は以下の記事に従ってインストールさせていただきました

https://qiita.com/kurun_pan/items/784ae9b34a1e49c2d255

```zsh:shell
git clone https://github.com/flutter/flutter
sudo mv flutter /opt/

#以下は~/.zshrcまたは~/.bashrcなどに記述
export PATH=$PATH:/opt/flutter/bin

#ここで自動的にFlutterのインストールが始まります
flutter doctor

#もし成功すれば以下のような画面が出てきます
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 3.18.0-7.0.pre.14, on Debian GNU/Linux 12
    (bookworm) 6.1.0-12-arm64, locale ja_JP.UTF-8)
[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from:
      https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK
      components.
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup
      for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[✗] Chrome - develop for the web (Cannot find Chrome executable at
    google-chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Linux toolchain - develop for Linux desktop
[!] Android Studio (not installed)
[✓] VS Code (version 1.83.0-insider)
[✓] Connected device (1 available)
[✓] Network resources

! Doctor found issues in 3 categories.

```

それでは、お試しアプリ作って起動しましょう。

```zsh:shell
flutter create sample; cd sample
flutter run
```

必要なコンポーネントがインストールされた後に、アプリがビルドされて起動されます。
例のカウンターアプリが起動されたらOKです。

![Screenshot 2023-12-07 at 11.02.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/27a6db34-09fc-ce9a-cd76-962c685e8166.png)


# 最後に

今回はFlutterをArmのDebian上で動かしてみました。ちなみに、Armはもとより、Linux上でサポートされてないライブラリって結構多いので、きちんと対応しているかについて調べ手から使うことをお勧めします。ということで、以上今日はいつもとは少し違う記事でした。それではは、引き続き今後のアドカレ 23 の記事をお楽しみにしてください。

https://qiita.com/0_terarin_0/items/0f367210e2465f7772c9