前言
我在安装配置(非本人操作)了go的linux虚拟机上,尝试用 $ go get github.com/astaxie/beego
获取beego框架。但是,却出现了一个奇怪的错误: go: cannot find main module; see 'go help modules'
,怎么查询都没有找到问题原因。这对于一个刚接触go和linux的新手来说,是手足无措的。于是,心生一计,卸载重装。
一、卸载
1.删除GOROOT目录
用 $ go env
找到GOROOT目录,在我的linux上为 srv/go
,而常见的应该是 usr/local/go
。然后,使用(用这个命令是不可能的,这辈子都不可能用的,这个命令删除文件真香)我不建议这样删除,因为与Windows不同,linux这样删除文件之后几乎是很难复原的。其中,$ rm -rf
删除该目录。-r
指向下递归,不管有多少级目录,一并删除;-f
指直接强行删除,不作任何提示的意思。可以看出,这个命令是很野蛮的。
所以,我们就暂时先保留这个目录。
2.删除GOPATH目录
这个目录可以保留。也可以用上述那个命令删除,如果其中没有重要文件的话。
卸载这步就结束了(实际上并没卸载)。
二、下载
1.下载安装包
$ wget https://studygolang.com/dl/golang/go1.10.4.linux-amd64.tar.gz
从网上找linux go1.10 版本源码的下载网址(因为modules好像是go1.11版本的东西),然后下载到当前目录。下载完,$ ls
就能看到一个名为 go1.10.4.linux-amd64.tar.gz 的压缩包。
注:为什么要下载压缩包自己解压安装呢?是因为apt便捷安装版本是1.6的,而且什么都由apt帮你完成,因其隐秘而不喜。喜欢自己下载自己安装,清楚知道每一步、每一包在哪。
2.解压
$ tar -zxvf go1.10.4.linux-amd64.tar.gz
解压到当前目录,得到一个名为 go 的文件夹,即go源码。
3.转移
$ mv go /usr/local/
在下载go源码的目录下,将 go 源码文件夹移动到/usr/local/
文件夹下。
注解:
在linux中,只有一个根目录即
/
,根目录包含了各种linux中重要的文件目录,如home/、etc/、usr/、root/目录等等。使用$ cd /
命令即能直接到达根目录,不论你在任何目录下。而不管你在哪/usr/local/
也能访问根目录下的usr文件夹。另外,linux可以有多个用户,除了权限最大的root用户,还可以创建其它用户,如test用户。每个用户登录时都会进入该用户的 HOME 目录。root用户 HOME 目录即
/root/
目录,而test用户 HOME 目录为/home/test/
。若要查看该用户HOME目录,可以$ echo $HOME
。同样,$ cd ~
能直接到达用户 HOME 目录下。
三、配置
$ vim /etc/profile
编辑/etc/profile文件(全局变量配置文件),增加以下内容:
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
注解:
-
GOROOT
指向go的源码文件夹(即下载解压转移后的文件夹位置)。该文件夹下的 bin/ 目录是一些go命令的二进制执行文件。 -
GOPATH
指向go的工作空间。此处推荐一篇博客https://www.cnblogs.com/pyyu/p/8032257.html。 -
PATH=$PATH:$GOROOT/bin:$GOPATH/bin
是指在原有 PATH 环境变量路径上加上内容,:
为分隔符。
四、查看成果
$ go env
查看 go 环境。
$ go get github.com/astaxie/beego
成功,版本问题。
有疑问加站长微信联系(非本文作者)