Go下载安装教程

1. CentOS 7下安装go环境

1.1 下载安装包

先到go.dev/dl/ 或者 studygolang.com/dl 选择对应系统的GO版本并下载到服务器上,例如执行wget https://go.dev/dl/go1.18.linux-amd64.tar.gz

1.2 解压缩安装包

sudo tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz

1.3 配置

在 /etc/profile 文件末尾添加以下内容,将 Golang 可执行文件目录添加到系统 PATH 中,之后

bash 复制代码
vim /etc/profile 
在文件末尾添加 
export GO111MODULE=on
export GOROOT=/usr/local/go
export GOPATH=/root/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

使用source生效配置。

bash 复制代码
source /etc/profile

现在就可以在命令行直接使用 go 命令了。

bash 复制代码
$ go version
go version go1.18 linux/amd64

配置go环境变量

bash 复制代码
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GO111MODULE=on

关于Go的一些介绍


环境变量:
  • $GOROOT: 表示Go的安装目录。也就是上面我们解压出来的文件夹里面的go文件夹。
  • $GOPATH: 表示我们的工作空间。用来存放我们的工程目录的地方。
GOPATH目录:

一般来说GOPATH下面会有三个文件夹:binpkgsrc,没有的话自己创建。每个文件夹都有其的作用。

  • bin:编译后可的执行文件的存放路径
  • pkg:编译包时,生成的.a文件的存放路径
  • src:源码路径,一般我们的工程就创建在src下面。

注意:如果要用Go Mod(Go1.11及以上支持)进行包管理,则需要在 GOPATH 以外的目录创建工程。关于Go Mod的使用,可以自行Google一下,这里就不赘述了。

2. Mac下安装go环境

先到go.dev/dl/ 或者 studygolang.com/dl 选择对应系统的GO版本并下载到服务器上,注意如果是M1的系统,要选择ARM64架构的安装包

Mac的安装方式可以有两种:

  1. go二进制包
  2. pgk软件包 -- 就是图形化安装软件按照提示即可安装
1. 下载go安装包

官网下载go安装包: golang.google.cn/dl/

下载go二进制包go1.16.2.darwin-amd64.tar.gz

bash 复制代码
wget -c https://golang.google.cn/dl/go1.16.2.darwin-amd64.tar.gz
2. 安装go

安装目录: /usr/local/go

bash 复制代码
sudo tar -xzvf go1.16.2.darwin-amd64.tar.gz -C /usr/local
cd /usr/local/go

查看go的安装目录:

bash 复制代码
cd /usr/local/go
ls
3. 配置环境变量

编辑~/.bash_profile文件:

bash 复制代码
vim ~/.bash_profile

追加以下内容:

bash 复制代码
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/go

注意, GOPATH配置为你的工作区目录

编辑~/.zshrc文件:

bash 复制代码
vim ~/.zshrc

追加以下内容:

bash 复制代码
source ~/.bash_profile

使终端对以上配置的环境变量生效:

bash 复制代码
source ~/.zshrc

或者直接编辑 ~/.zshrc文件

4. 检测go开发环境是否安装成功
bash 复制代码
$ go env

省略...

GOPATH="/Users/xx/go"
GOROOT="/usr/local/go"

省略...

其中,

  • GOPATH: go工作区, 即编写代码存放的目录
  • GOROOT: go的安装目录

查看版本:

bash 复制代码
$ go version
go version go1.16.2 darwin/amd64

GOPATH工作区目录下, 一般有3个目录, 分别是

  • bin: 存储可执行bin文件
  • pkg: 编译完成的文件
  • src: 源代码文件

$GOPATH/pkg目录在执行go get -u 库名会自动创建, src目录不存在则需要手动创建, 示例如下:

bash 复制代码
mkdir -p $GOPATH/src
mkdir -p $GOPATH/bin

$GOPATH/src目录下, 创建新项目进行开发

5. 设置go国内模块代理

参考:

编辑~/.bash_profile:

bash 复制代码
vim ~/.bash_profile

追加以下内容:

bash 复制代码
export GO111MODULE=on
export GOPROXY=https://goproxy.cn

使以上配置的环境变量生效:

bash 复制代码
source ~/.zshrc

至此, go开发环境安装成功。

6. 创建go的hello项目

创建go的hello项目:

bash 复制代码
$ cd $GOPATH/src
$ mkdir hello
$ cd hello
$ go mod init zhuxiongxian.com/hello # 初始化项目
go: creating new go.mod: module zhuxiongxian.com/hello
go: to add module requirements and sums:
	go mod tidy
$ go mod tidy

其中,

创建hello.go文件:

bash 复制代码
vim hello.go

hello.go文件内容如下:

go 复制代码
package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

运行go的hello项目:

bash 复制代码
$ cd cd $GOPATH/src/hello
$ go run .
Hello, World!
7. 安装gin框架

导入依赖

bash 复制代码
go get -u github.com/gin-gonic/gin

在代码中导包:

bash 复制代码
import "github.com/gin-gonic/gin"
8. 创建gin的demo项目
bash 复制代码
cd $GOPATH/src
mkdir gin-demo
cd gin-demo
vim example.go

example.go文件内容:

go 复制代码
package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    // r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
    r.Run(":10240")
}
go mod init zhuxiongxian.com/gin-demo
go mod tidy
go run example.go
或
go run .

访问: http://0.0.0.0:10240/ping

json 复制代码
{
    "message": "pong"
}
相关推荐
程序猿麦小七16 分钟前
基于springboot的景区网页设计与实现
java·spring boot·后端·旅游·景区
蓝田~24 分钟前
SpringBoot-自定义注解,拦截器
java·spring boot·后端
theLuckyLong25 分钟前
SpringBoot后端解决跨域问题
spring boot·后端·python
.生产的驴27 分钟前
SpringCloud Gateway网关路由配置 接口统一 登录验证 权限校验 路由属性
java·spring boot·后端·spring·spring cloud·gateway·rabbitmq
小扳30 分钟前
Docker 篇-Docker 详细安装、了解和使用 Docker 核心功能(数据卷、自定义镜像 Dockerfile、网络)
运维·spring boot·后端·mysql·spring cloud·docker·容器
v'sir40 分钟前
POI word转pdf乱码问题处理
java·spring boot·后端·pdf·word
李少兄44 分钟前
解决Spring Boot整合Redis时的连接问题
spring boot·redis·后端
码上一元6 小时前
SpringBoot自动装配原理解析
java·spring boot·后端
枫叶_v8 小时前
【SpringBoot】22 Txt、Csv文件的读取和写入
java·spring boot·后端
杜杜的man8 小时前
【go从零单排】Closing Channels通道关闭、Range over Channels
开发语言·后端·golang