概述
在Mac终端运行go build一直报如下错误:
ioutil.go:4:2: cannot find package “fmt” in any of:
/usr/local/Cellar/go/1.10.2/src/fmt (from $GOROOT)
/Users/wangdejun/gopath/src/fmt (from $GOPATH)
不能找到src/fmt包,
>which go
>/usr/local/bin/go
明显环境变量$GOROOT和$GOPATH配置错误,
修改了.zshrc和.bashrc都不能改变这个环境变量,找到.bash_profile
修改~/.bash_profile
添加export GOPATH=/usr/local/bin/go
go build文件ok,问题解决。
好奇地查了一下.bashrc,.bash_profile以及.zshrc之间的区别:
- Shell配置文件之间的主要区别在于,有些配置比如.bash_profile只能被『登录』用户读取;另外的一些配置文件被非登录用户读取,比如.bashrc;还有一些配置比如~/.zshrc,无论登录和非登录用户都可以读取。
- Mac OS X的终端Terminal.app实际上运行了『登录Shell』而不是『非登录shell』,那么就默认调用.bash_profile,而不是.bashrc。这样问题就明确了,在配置$GOROOT环境变量时,一定要在.bash_profile中配置才行。
【注】运行source ~/.bash_profile,source命令的作用就是用来执行一个脚本。我们知道./test.sh也可以执行test.sh脚本文件,那么source和直接执行有什么区别呢
- 如果在一个脚本里export $PATH=111 ,用./test.sh执行该脚本,执行完毕后,运行 echo $PATH,发现没有值,如果你用source来执行 ,然后再echo ,就会发现PATH=111。
- 因为调用./test.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反映到父shell里,但是source与你执行./test.sh不同的是它就是在本shell中执行的,所以可以直接在父shell中看到结果
不甚了解,仅此记录。
转发 王德军 的知乎 https://zhuanlan.zhihu.com/p/38777930
最后
以上就是俊逸铃铛为你收集整理的go环境配置之 .zshrc .bashrc .bash_profile 的区别的全部内容,希望文章能够帮你解决go环境配置之 .zshrc .bashrc .bash_profile 的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复