Fix: Flutter doctor が permission denied で失敗 (Linux)

作成
( 更新 )
@nabbisen

問題

Flutter 2 を Linux にインストールした時のことです。flutter doctor の実行が必要でした。

しかしながら実行すると、以下のような “Permission denied” エラーになりました。

$ flutter doctor
touch: cannot touch '/opt/flutter/bin/cache/.dartignore': Permission denied

root すなわちスーパーユーザーで実行することが必要なのでしょうか ? いいえ。それは推奨されません:

$ sudo flutter doctor
   Woah! You appear to be trying to run flutter as root.
   We strongly recommend running the flutter tool without superuser privileges.

Solution

使っているユーザーを “flutterusers” グループに加えてあげましょう。 Arch Linux での実行例です。こちらのコマンドを実行します:

$ sudo usermod -a -G flutterusers <your-user>
$ # alternatively:
$ #sudo gpasswd -a <your-user> flutterusers

ログアウトして、ログインします。 ふたたび flutter doctor を実行しましょう。

$ flutter doctor
   Building flutter tool...

成功です 🙂

補足: 別の方法 (非推奨)

違う方法もあります。/opt/flutter のパーミッションを変更することでも解決できるかもしれません。しかし上記の方法の方が推奨されるでしょう。

$ sudo chown -R <your-user>: /opt/flutter 

Comments or feedbacks are welcomed and appreciated.