Linux下go环境安装、环境配置并执行第一个go程序

文章目录

安装

Golang对Linux的内核版本要求

GO对Linux内核版本最低要求是 2.6.23,对应要求操作系统版本是:

下载golang的代码版本

Golang的官网下载地址:https://golang.org/dl/

安装

使用root账户登录服务器,将下载好的压缩包上传到/usr/local/目录下并进行解压

环境配置

默认使用root账户进行配置

编辑配置文件vim /etc/profile,在文件最后加入:

shell 复制代码
# /usr/local/go/bin 为go安装目录的bin目录,系统所有账户可以使用bin下的命令进行执行
export PATH=$PATH:/usr/local/go/bin
# /home/go/go 为go工作空间的目录,可自行修改
export GOPATH=/home/go/go 
# /usr/local/go 为go的安装目录
export GOROOT=/usr/local/go

验证go环境

在终端执行go version,确认环境安装完成且可以使用。

shell 复制代码
# go version
go version go1.23.0 linux/amd64

配置go下载包的代理地址

1、执行go env -w GO111MODULE=on

2、执行go env -w GOPROXY=https://goproxy.io,direct

3、执行go env,得到类似以下的结果:

shell 复制代码
GO111MODULE='on'
GOARCH='amd64'
GOBIN=''
GOCACHE='/root/.cache/go-build'
GOENV='/root/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/go'
GOPRIVATE=''
GOPROXY='https://goproxy.cn,direct'
GOROOT='/root/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/root/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.23.0'
GODEBUG=''
GOTELEMETRY='local'
GOTELEMETRYDIR='/root/.config/go/telemetry'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/root/exporter/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build1611022934=/tmp/go-build -gno-record-gcc-switches'

第一个go程序

编写hello.go

vim hello.go

golang 复制代码
# 在主文件中必须引入main的包
package main
 
import "fmt"
 
# 通过找到该main()方法进行执行程序
func main() {
        fmt.Printf("Hello,World!!!\n")
}

运行hello.go文件

a.通过使用go run hello.go生成可执行文件,然后使用./hello得到结果

b.通过使用go build执行生成可执行文件,然后使用./hello得到以上a的相同结果

c.对于复杂的工程,使用go run *.go生成可执行文件,然后使用nohup ./可执行文件 & 例如使用gin框架作为服务器等等。

相关推荐
hgdlip37 分钟前
电脑的ip地址会自动变怎么办?原因解析和解决方法
运维·网络·tcp/ip·电脑
ZZH1120KQ40 分钟前
Linux账号和权限管理
linux·运维
@Liu_GuoXing1 小时前
Registry和docker有什么关系?
运维·docker·容器·registry
XMAIPC_Robot1 小时前
基于 ZYNQ UltraScale+ OV5640的高速图像传输系统设计,支持国产替代
linux·数码相机·fpga开发·架构·边缘计算
水水沝淼㵘1 小时前
嵌入式开发学习日志(linux系统编程--系统编程之 进程间通信IPC)Day32
linux·运维·学习
IT小饕餮1 小时前
linux登陆硬件检测脚本
linux·运维·服务器
我的golang之路果然有问题1 小时前
快速了解GO+ElasticSearch
开发语言·经验分享·笔记·后端·elasticsearch·golang
Dxy12393102161 小时前
DrissionPage 性能优化实战指南:让网页自动化效率飞升
运维·爬虫·python·性能优化·自动化
在成都搬砖的鸭鸭2 小时前
【Golang】使用gin框架导出excel和csv文件
golang·excel·gin