Linux环境下非管理员用户无法正常使用Gradle的问题求助
Gradle守护进程锁文件权限问题解决方案
核心原因
执行gradle tasks --info时报错Couldn't create lock file for /opt/gradle/gradle-7.4/bin/daemon/7.4/registry.bin.lock,是因为Gradle守护进程的默认目录属于root用户,普通用户无写入权限;而用root运行后,目录权限会被重置为drwx------(仅root可访问),导致之前手动修改的权限失效。
可行解决方案
修改Gradle用户目录到个人文件夹(推荐)
通过环境变量指定Gradle在用户个人目录下生成守护进程文件,彻底避开系统目录的权限问题:- 打开用户shell配置文件(如
~/.bashrc或~/.zshrc) - 添加以下内容:
export GRADLE_USER_HOME="$HOME/.gradle" - 执行
source ~/.bashrc(对应你的shell配置文件)使设置生效
之后运行Gradle命令,所有守护进程相关文件都会生成在~/.gradle下,权限完全由当前用户控制。
- 打开用户shell配置文件(如
修改daemon目录的所有者
如果需要保留默认目录,直接将daemon目录及其子目录的所有者改为当前普通用户:sudo chown -R $USER:$USER /opt/gradle/gradle-7.4/bin/daemon此操作后,普通用户对该目录拥有完全权限,后续运行Gradle时不会再出现权限被重置的情况。
禁止使用root运行Gradle
不要用sudo执行Gradle命令,这会导致daemon目录的权限被重新设置为root专属,是之前手动改权限后仅能运行一次的根本原因。
内容的提问来源于stack exchange,提问作者greeger 228
相关产品推荐
相关产品推荐

