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"
}
相关推荐
机器之心1 小时前
图学习新突破:一个统一框架连接空域和频域
人工智能·后端
.生产的驴1 小时前
SpringBoot 对接第三方登录 手机号登录 手机号验证 微信小程序登录 结合Redis SaToken
java·spring boot·redis·后端·缓存·微信小程序·maven
顽疲1 小时前
springboot vue 会员收银系统 含源码 开发流程
vue.js·spring boot·后端
机器之心2 小时前
AAAI 2025|时间序列演进也是种扩散过程?基于移动自回归的时序扩散预测模型
人工智能·后端
hanglove_lucky3 小时前
本地摄像头视频流在html中打开
前端·后端·html
探索云原生4 小时前
在 K8S 中创建 Pod 是如何使用到 GPU 的: nvidia device plugin 源码分析
ai·云原生·kubernetes·go·gpu
皓木.4 小时前
(自用)配置文件优先级、SpringBoot原理、Maven私服
java·spring boot·后端
i7i8i9com4 小时前
java 1.8+springboot文件上传+vue3+ts+antdv
java·spring boot·后端
秋意钟4 小时前
Spring框架处理时间类型格式
java·后端·spring
我叫啥都行4 小时前
计算机基础复习12.22
java·jvm·redis·后端·mysql