Linux环境 Go语言环境安装以及程序如何运行

最近在学习go语言 记录下在服务器上安装go语言环境

安装配置 : 宝塔Linux面板 7.6.0

1. 文件下载

go环境文件 可以去官网下载 自己选择环境文件
官网 https://golang.google.cn/)
文件地址 https://golang.google.cn/dl/

2 解压

文件上传到 /www/server 目录

tar -xzvf 刚上传的文件名
示例
tar -xzvf go1.18.2.linux-amd64.tar.gz
注意 如果报错 no such file or directory(文件找不到) 可以切换下登录账号
su root

3 添加环境变量

添加环境变量,使用vim 打开/etc/profile 文件。

vim /etc/profile

最底部添加

export GOROOT=/www/server/go
export GOBIN=$GOROOT/bin
export GOPKG=$GOROOT/pkg/tool/linux_amd64
export GOARCH=amd64
export GOOS=linux
export GOPATH=/www/wwwroot/Golang
export PATH=$PATH:$GOBIN:$GOPKG:$GOPATH/bin

图片示例

添加好之后,保存退出,然后执行如下命令使其生效:

source /etc/profile

4 检测环境

使用 go version 检测下go环境是否安装成功

go version


这里就安装成功了

5 代码运行测试

在上面的环境变量配置
export GOPATH=/www/wwwroot/Golang
所以我们的环境指向的是 Golang目录
新建 /www/wwwroot/Golang目录

mkdir /www/wwwroot/Golang

在 Golang 目录先新建 test.go文件
test.go文件内容

package main

import "fmt"

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

shell运行

go run /www/wwwroot/Golang/test.go


成功输出了 Hello,Word!

宝塔定时任务

脚本内容 使用

go run /www/wwwroot/Golang/test.go

提示 go: command not found

修改 /etc/sudoers 需要root账号登录

vim /etc/sudoers

加入

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
后面加入 /:/www/server/go/bin

示例

修改脚本内容 使用

sudo go run /www/wwwroot/Golang/test.go

正常运行

非常好用

解决go包管理代理网址无法访问:proxy.golang.org

[root@VM-12-8-centos ~]# go install github.com/chromedp/chromedp@latest

go: github.com/chromedp/chromedp@latest: module github.com/chromedp/chromedp: Get "https://proxy.golang.org/github.com/chromedp/chromedp/@v/list": dial tcp 172.217.31.177:443: i/o timeout

Go 1.16 以后 go get 即将废弃
更换为 go install
下载国外的数据编译报错

解决方法

换一个国内能访问的代理地址:https://goproxy.cn

go env -w GOPROXY=https://goproxy.cn

缺少go.mod文件

no required module provides package github.com/chromedp/chromedp: go.mod file not found in current directory or any parent directory; see 'go help modules'

解决方法

开启go modules功能,命令行输入

go env -w GO111MODULE=on

在该项目目录下,初始化Go moudle,运行下面命令

go mod init xxx //xxx代表文件夹名

成功的提示

centos 使用 chromedp 一定要改为无头模式

不然会报错

2022/05/19 15:47:44 chrome failed to start:
[17800:17800:0519/154744.589237:ERROR:ozone_platform_x11.cc(247)] Missing X server or $DISPLAY
[17800:17800:0519/154744.589294:ERROR:env.cc(225)] The platform failed to initialize.  Exiting.
exit status 1