运行Flutter commands报错 无缓存文件写入权限如何解决
Flutter命令执行时缓存文件写入失败修复方案
问题表现
运行任意Flutter相关命令时,终端抛出如下错误:
Flutter failed to write to a file at "/usr/local/Caskroom/flutter/3.0.3/flutter/bin/cache/flutter_version_check.stamp". Please ensure that the SDK and/or project is installed in a location that has read/write permissions for the current user. Try running: sudo chown -R $(whoami) /usr/local/Caskroom/flutter/3.0.3/flutter/bin/cache/flutter_version_check.stamp
问题原因
Flutter SDK安装在/usr/local/Caskroom路径下时,如果安装过程使用了root权限,会导致整个SDK目录的归属为root用户,当前登录的普通用户没有目录写入权限,运行命令时需要更新缓存文件就会触发报错。
修复步骤
- 不要直接执行报错提示里的单文件权限修改命令,直接递归修改整个Flutter SDK目录的归属,终端执行:
sudo chown -R $(whoami) /usr/local/Caskroom/flutter/提示:报错信息给出的命令仅针对单个stamp文件修改权限,无法解决同目录下其他缓存、依赖文件的权限问题,直接修改整个SDK根目录归属可以一次性排障。执行命令时输入当前用户的开机密码即可,输入密码时终端不会显示字符,正常输入完成按回车就行。
- 权限修改完成后,终端执行
flutter doctor验证,命令正常加载、无权限类报错即为修复完成。 - 长期可选方案:如果不想反复调整系统目录权限,可以把Flutter SDK整个文件夹迁移到当前用户目录下,比如
~/dev/flutter路径,之后更新shell配置文件(.zshrc/.bashrc)里的Flutter环境变量路径,后续SDK更新、缓存写入都不会再触发系统目录权限问题。
内容的提问来源于stack exchange,提问作者sarakhan
相关产品推荐
相关产品推荐

