首页 > 技术文章 > 解决使用gomod后goland导包报红问题

Kingram 2020-07-01 16:03 原文

解决使用gomod后goland导包报红问题

项目环境:

  • ubuntu14+goland

问题详情:

  • 在root用户下执行go mod init {module name}使用了gomod,并编译了项目。
  • 在root用户下正常编译运行都没问题
  • 在其他用户下使用goland导包报红
  • 在其他用户下使用go build 提示没有权限permission denied

解决方案:

  • 内部包

    更换导包路径,原来可能使用的是./这种相对路径,换成{module name}/package1/package2的方式。

  • 外部包

    在root用户下能编译,在其他用户下却没法编译,于是考虑到了可能是权限问题

    首先要知道gomod包都是下载到了$GOPATH/pkg/mod下面的,使用ls -l查看下报红的包文件夹的权限,发现是root用户的,其他用户没有权限,那就简单了,直接暴力解决:

    chmod 777 mod -R
    

    修改mod文件夹下所有文件夹的权限为所有用户所有组可读写。

    问题解决。

推荐阅读