目录

下载地址

https://studygolang.com/dl

windows

安装方式

  • 1、MSI安装:程序会自动配置你的安装
  • 2、ZIP安装:需要你手动设置一些环境变量
  • 3、源码安装

一般windows只是开发使用,我们简单使用msi安装方式

下载安装

由于官方下载要翻墙,我们直接在go中文社区去下载:https://studygolang.com/dl

双击MSI文件,直接进入安装,选择一个目录,比如默认的 C:\Go\,也可以选择其他目录,以下我们采用C:\GO\作为安装目录

一路accept、next、install确认,中间不会有任何额外的安装,知道filnsh即可

测试

重新打开cmd或powershell

PS I:\src\go> go version
go version go1.14.3 windows/amd64

环境变量

windows环境可以通过右键单击【我的电脑】->【属性】,选择【高级系统设置】->【高级】,点击【环境变量】查看本机相关环境变量

MSI安装会自动在【环境变量】-【系统变量】中的path追加 ;C:\Go\bin;

还会添加以下【用户变量】:

  • GOPATH,值为 %USERPROFILE%\go ,显示的时候不是%USERPROFILE%,而是这个%USERPROFILE%变量对应的路径
  • Path,追加 ;%GOPATH%\bin

GOPATH设置

假设以后我们编写go代码的工作路径为I:\go,则找到【环境变量】->【用户变量】中的GOPATH,修改其值为 I:\go

在进行Go语言开发的时候,我们的代码总是会保存在$GOPATH/src目录下。在工程经过go build、go install或go get等指令后,会将下载的第三方包源代码文件放在$GOPATH/src目录下, 产生的二进制可执行文件放在 $GOPATH/bin目录下,生成的中间缓存文件会被保存在 $GOPATH/pkg 下。

如果我们使用版本管理工具(Version Control System,VCS。常用如Git)来管理我们的项目代码时,我们只需要添加$GOPATH/src目录的源代码即可。bin 和 pkg 目录的内容无需版本控制。

编译执行测试

创建项目目录:I:\go\src\helo

创建文件:I:\go\src\helo\helo.go

编译:

PS I:\go\src\helo> go build

编译后:

    目录: I:\go\src\helo


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2019/2/18     12:21        2160128 helo.exe
-a----        2019/2/18     12:21             82 helo.go

执行:

PS I:\go\src\helo> .\helo.exe
你好,世界

ubuntu

apt安装

ubuntu通过apt安装还是很简便的

sudo apt install golang-go

可能安装的不是最新版本

jm@ubuntu:~$ sudo apt install golang
[sudo] password for jm: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
....
....
Setting up golang-race-detector-runtime (2:1.6-1ubuntu4) ...
jm@ubuntu:~$ go version
go version go1.6.2 linux/amd64

我们需要安装最新版本怎么办?

后面介绍源码安装最新版本

查看并卸载go

#查看golang相关包
dpkg -l | grep golang
#卸载golang相关包
sudo apt-get remove golang*

安装最新版本

下载:https://studygolang.com/dl/golang/go1.14.3.linux-amd64.tar.gz

wget https://studygolang.com/dl/golang/go1.14.3.linux-amd64.tar.gz

解压

sudo tar zxf go1.14.3.linux-amd64.tar.gz -C /usr/local/

设置环境变量

编辑/etc/profile

sudo vim /etc/profile

文件尾部追加内容:

export PATH=$PATH:/usr/local/go/bin

环境变量生效:

source /etc/profile

先确认下是否成功:

jm@ubuntu:~$ go version
go version go1.14.3 linux/amd64

GOPATH设置

安装go后,默认会使用$HOME/go为工作目录,也可以手动指定目录,设置GOPATH为定义目录。为当前用户配置环境变量,编辑.bashrc或者.profile,添加:

jm@ubuntu:~$ export GOPATH=$HOME/go
jm@ubuntu:~$ export PATH=$PATH:$GOPATH/bin

编译执行测试

jm@ubuntu:~$ mkdir -p ./go/src/helloworld
jm@ubuntu:~$ cd go/src/helloworld
jm@ubuntu:~/go/src/helloworld$ vim helloworld.go

编辑helloworld.go(语法有点类似于php与python结合体)

package main
import "fmt"

func main(){
    fmt.Printf("你好,世界\n")
}

编译

为什么go要编译?为什么php不需要编译?

jm@ubuntu:~/go/src/helloworld$ go build
jm@ubuntu:~/go/src/helloworld$ ll
total 2056
drwxrwxr-x 2 jm jm    4096 May 27 21:06 ./
drwxrwxr-x 3 jm jm    4096 May 27 21:04 ../
-rwxrwxr-x 1 jm jm 2076736 May 27 21:06 helloworld*
-rw-rw-r-- 1 jm jm      75 May 27 21:05 helloworld.go
-rw-r--r-- 1 jm jm   12288 May 27 21:05 .helloworld.go.swp

执行编译后的二进制文件

jm@ubuntu:~/go/src/helloworld$ ./helloworld 
你好,世界

如果编译目录不在用户home目录下,需要为编译后文件所在目录添加可执行权限:sudo chmod 755 -R go/src


@tsingchan