cat /proc/version
创建目录softeware目录,存储下载包
2.下载go 安装包golang的官网在国内访问比较慢,建议去国内的网站下载https://studygolang.com/dl 根据不同的平台选择对应的安装包
选择linux对应架构的包。
例如如果是intel和amd的CPU的电脑,则下载后缀是amd64.tar.gz的文件。
本文下载的是go1.18.10.linux-amd64.tar.gz
使用rz命令上传文件包,提示rz未找到命令
执行命令yum install lrzsz -y
或者wget https://golang.google.cn/dl/go1.18.linux-amd64.tar.gz
解压下载包tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz
3.配置环境。在环境变量配置文件/etc/profile中添加以下内容:
#set go environment
GOROOT=/usr/local/go
GOBIN=$GOROOT/bin
PATH=$PATH:$GOBIN/
export GOROOT GOBIN PATH
# 使profile配置立即生效
命令:source /etc/profile
# 查看Go版本
go version go1.18 linux/amd64
设置Go Modules和代理Go Modules是Go语言依赖管理解决方案。
Go.mod是Golang1.11版本新引入的官方包管理工具用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。
Go.mod其实就是一个Modules,Modules是相关Go包的集合,是源代码交换和版本控制的单元。
一个源代码目录甚至是空目录都可以作为Modules,只要其中包含有go.mod文件。
第一步,mod文件字段内容。
go.mod是启用了Go moduels的项目所必需的最重要的文件,它描述了当前项目(当前模块)的元信息,每一行都以一个动词开头。目前有以下5个动词:
module:用于定义当前项目的模块路径。
go:用于设置预期的Go版本。
require:用于设置一个特定的模块版本。
exclude:用于从使用中排除一个特定的模块版本。
replace:用于将一个模块版本替换为另外一个模块版本。
第二步,生成go.mod。
# 打开Go modules
命令:go env -w GO111MODULE=on
# 设置GOPROXY
命令:go env -w GOPROXY=https://goproxy.cn,direct
或者再修改/etc/profile 文件内容的时候,已经添加了代理,代码如下:
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct
执行source /etc/profile
5. 创建工作空间输入下面的指令:
# mkdir $HOME/go
这时我们就在/root 目录中创建了go文件
下一步类似上面修改文件的操作,输入下面的指令:
# vi ~/.bash_profile
加上:
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
输入下面的指令:
# source ~/.bash_profile
6.创建你的工作目录依次输入下面的指令:
进入工作空间
# cd $GOPATH
这里我们需要创建三个目录bin pkg src 这三个目录必须要有
src 存储go的源代码(需要我们自己手动创建)。
pkg 存储编译后生成的包文件 (自动生成)。
bin存储生成的可执行文件(自动生成)。
以后可以将go的源文件放在src文件夹内
可以先看一下你有没有这三个文件,创建没有的文件就好
创建三个目录
# mkdir bin pkg src
进入src文件
7. 创建程序并运行hello world
package mainimport ( "fmt" )func main() {fmt.Println("Hello, world!")}
1.go mod init hello(模块名称)
go build
2. go run main.go
这时当前目录生成了一个文件hello
# ./hello
3. 接下来试试go install hello,然后在工作目录下的bin目录下会生成hello*文件
7. Go modules常用命令。# 了解Go modules启用和未启用两种状态下的go get的行为
命令:go help module-get
go help gopath-get
用go get拉取新的依赖
# 拉取最新的版本(优先择取tag)
命令:go get golang.org/x/text@latest
# 拉取master分支的最新commit
命令:go get golang.org/x/text@master
# 拉取tag为v0.3.2的commit
命令:go get golang.org/x/text@v0.3.2
# 拉取hash为342b231的commit,最终会被转换为v0.3.2
命令:go get golang.org/x/text@342b2e
# 更新现有的依赖
命令:go get -u
# 下载go.mod文件中指明的所有依赖
命令:go mod download
# 整理现有的依赖
命令:go mod tidy
# 查看现有的依赖结构
命令:go mod graph
# 生成go.mod文件(唯一可以生成go.mod文件的子命令)
命令:go mod init
# 编辑go.mod文件
命令:go mod edit
# 导出现有的所有依赖
命令:go mod vendor
# 校验一个模块是否被篡改过
命令:go mod verify