問題
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