Centos7 安装go语言开发环境

本文详细介绍了如何在VSCode中配置Golang开发环境,包括安装VSCode、Golang,设置环境变量,安装Git客户端及Go工具,运行gotour教程,以及创建和测试第一个Go包。

1、安装 VSCode 编辑器

参考官方网站,按照下面命令进行安装:

  1. 首先进行安装包的下载:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
  1. 用yum命令进行安装:
yum check-update
sudo yum install code

2、安装 golang

2.1 安装

正常安装过程:

  1. 首先正常使用系统包管理工具安装(不是最新版本),使用如下命令:
$ sudo yum install golang
  1. 查看安装到哪个目录:
$ rpm -ql golang |more
  1. 测试安装是否成功
$ go version

注:自己在使用系统包安装的时候报错说没有找到可用的软件包,解决方案:1.更换源; 2.下载epel软件源,详见CentOS7 yum 安装Go环境

使用安装包安装:

  1. 下载go安装包(安装包地址可更改):
$wget https://studygolang.com/dl/golang/go1.10.1.linux-amd64.tar.gz
  1. 解压:
$tar -xvf go1.10.1.linux-amd64.tar.gz

2.2 设置环境变量

  1. 创建工作空间
$ mkdir $HOME/go
  1. 配置环境变量
$sudo gedit /etc/profile		//增加下面俩句
export GOPATH=$HOME/gowork
export PATH=$PATH:$GOPATH/bin

设置环境变量
3. 执行配置文件,使配置文件生效

$ source /etc/profile

在这里插入图片描述
4. 检查配置

$ go env

在这里插入图片描述

2.3 创建hello world!

(1)创建源代码目录:

$ mkdir $GOPATH/src/github.com/github-user/hello -p

结果:
在这里插入图片描述
(2)使用vs code创建hello.go

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

结果:
(3)在终端运行:

$ go run hello.go

3、安装必要的工具和插件

3.1 安装Git客户端

直接用yum系统管理工具安装就可以了:

$ sudo yum install git

3.2 安装go的一些工具

(1)进入vscode,进行go的工具进行安装,部分没法安装,安装教程进行安装,仍缺少部分工具,查找解决法子:通过git 将相关文件克隆下来,再进行安装,详见:关于VS code 安装go 插件失败解决方案!!!

(2)安装运行hello world(生成可运行文件)

$ go install github.com/github-user/hello
$ hello

4、安装与运行go tour

(1)常规安装,安装教程的命令执行:

$ go get github.com/Go-zh/tour/gotour
$ gotour

但我虽然生成了可执行文件,但一执行,一直报错。
(2)另一种安装方式:

$ go get bitbucket.org/mikespook/go-tour-zh/gotour
$ go install bitbucket.org/mikespook/go-tour-zh/gotour
$ gotour

详见:构建离线Go编程指南——gotour

5、第一个包

(1)按照之前的教程我们已经设置好工作空间、环境变量、包路径、以及第一个程序hello.go,我们可以执行如下代码来运行该程序:

$ go run $GOPATH/src/github.com/github-user/hello/hello.go

或者利用 go 工具构建并安装此程序:

$ go install github.com/github-user/hello

安装
然后会生成可执行程序,放在工作空间的bin目录,可以直接运行:
在这里插入图片描述

$ $GOPATH/bin/hello

执行结果
在这里插入图片描述
因为设置好了环境变量,可以直接输入二进制文件名:

$ hello

执行结果:
在这里插入图片描述
(2)初始化仓库,执行如下命令:

$ cd $GOPATH/src/github.com/github-user/hello
$ git init
$ git add hello.go
$ git commit -m "initial commit"

执行结果:
在这里插入图片描述
这里需要按照说明增加你的github账户和邮箱:
在这里插入图片描述
(3)编写第一个库,并让hello程序使用:
创建包目录:

$ mkdir $GOPATH/src/github.com/github-user/stringtil

接着,在该目录中创建名为 reverse.go 的文件,内容如下:

// stringutil 包含有用于处理字符串的工具函数。
package stringtil

// Reverse 将其实参字符串以符文为单位左右反转。
func Reverse(s string) string {
	r := []rune(s)
	for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
		r[i], r[j] = r[j], r[i]
	}
	return string(r)
}

用 go build 命令来测试该包的编译:

$ go build github.com/github-user/stringtil

修改原来的hello.go文件,如下:

package main

import (
	"fmt"

	"github.com/user/stringtil"
)

func main() {
	fmt.Printf(stringtil.Reverse("hello, world"))
}

安装hello,stringutil 包也会被自动安装,执行:
执行
查看工作空间:
在这里插入图片描述
(4)包的命名:
Go源文件中的第一个语句必须是

package 名称

这里的 名称 即为导出该包时使用的默认名称,如main。
Go的约定是包名为导入路径的最后一个元素:作为 “crypto/rot13” 导入的包应命名为 rot13。
可执行程序必须使用 package main。(相当于C语言的主程序);链接成单个二进制文件的所有包,其包名无需是唯一的,只有导入路径(它们的完整文件名)才是唯一的。
(5)测试:
Go拥有一个轻量级的测试框架,它由 go test 命令和 testing 包构成。
按照教程对stringtil进行测试:
在这里插入图片描述

<think>我们正在使用Docker在CentOS 7上部署Go语言开发环境。根据引用,有两种常见的做法: 1. 直接构建一个包含Go环境的CentOS镜像(如引用[2]和[4]所示),在镜像中安装Go环境,然后设置工作目录和编译运行Go程序。 2. 使用多阶段构建(但引用中没有给出多阶段构建的例子,我们可以参考第一种方法,因为用户要求的是部署开发环境,可能需要在容器内进行开发)。 用户要求的是部署Go语言开发环境,这意味着我们可能需要在容器内进行代码编辑、编译和运行。因此,我们选择构建一个包含Go环境的Docker镜像。 步骤: 1. 编写Dockerfile,基于CentOS 7.9.2009(或其他版本)安装Go环境。 2. 在Dockerfile中设置工作目录,安装必要的工具(如git、vim、gcc等,因为开发环境可能需要)。 3. 安装指定版本的Go,并配置环境变量。 4. 设置Go的模块代理(如GOPROXY)以加速模块下载。 5. 构建镜像并运行容器。 参考引用[2]的Dockerfile,我们可以进行修改。注意,引用[2]中使用了多个RUN命令合并以减少镜像层数,但这里我们为了清晰可以适当拆分,但要注意yum安装的清理以减少镜像大小。 但是注意:引用[2]的Dockerfile中使用了两个FROM,这是错误的,因为Dockerfile中只能有一个基础镜像(除非是多阶段构建,但这里第一个FROM会被忽略)。所以我们需要修正。 我们选择使用CentOS 7.9.2009作为基础镜像。 另外,引用[1]中提到了交叉编译,但这里我们不需要交叉编译,因为我们要在容器内开发,直接编译运行即可。 编写Dockerfile: 注意:在安装Go时,我们下载Go的压缩包,解压到/usr/local目录,并设置环境变量。 由于用户要求的是开发环境,我们可能还需要安装一些开发工具(如git, vim, gcc等)。 考虑到镜像大小,我们可以删除下载的压缩包。 以下是Dockerfile的示例:</think>### 在 CentOS 7 上使用 Docker 部署 Go 语言开发环境 以下是完整的部署步骤(基于引用[2][4]的实践优化): #### 1. **创建 Dockerfile** ```Dockerfile # 使用 CentOS 7 基础镜像 FROM centos:7.9.2009 # 设置环境变量和工作目录 ENV MYPATH /go/src/app WORKDIR $MYPATH # 安装基础工具和 Go 环境 RUN yum -y update && \ yum -y install vim git wget gcc-c++ && \ wget -P /tmp https://dl.google.com/go/go1.20.4.linux-amd64.tar.gz && \ tar -C /usr/local -xzf /tmp/go1.20.4.linux-amd64.tar.gz && \ rm -f /tmp/go1.20.4.linux-amd64.tar.gz # 配置环境变量 ENV PATH $PATH:/usr/local/go/bin ENV GOPATH /go ENV GO111MODULE=on ENV GOPROXY=https://goproxy.cn,direct # 验证安装 RUN go version ``` #### 2. **构建 Docker 镜像** ```bash # 在 Dockerfile 所在目录执行 docker build -t golang-dev:centos7 . ``` - 输出 `Successfully tagged golang-dev:centos7` 表示构建成功 - 镜像包含:Go 1.20.4 + Git + GCC + Vim(约 500MB) #### 3. **运行开发容器** ```bash docker run -itd \ --name go-dev \ -v $PWD:/go/src/app \ # 挂载本地代码目录 -p 8080:8080 \ # 暴露调试端口 golang-dev:centos7 ``` #### 4. **进入容器验证环境** ```bash docker exec -it go-dev bash # 验证环境 go env | grep -E "GOPATH|GOPROXY" # 应输出:GOPATH="/go" 和 GOPROXY="https://goproxy.cn,direct" # 创建测试程序 echo 'package main; import "fmt"; func main() { fmt.Println("Hello Docker Go!") }' > main.go # 编译运行 go run main.go # 输出:Hello Docker Go! ``` ### 关键配置说明 1. **环境变量** - `GOPROXY=https://goproxy.cn,direct`:加速国内模块下载[^2] - `GO111MODULE=on`:强制启用 Go Modules - `PATH` 包含 `/usr/local/go/bin`:确保全局访问 go 命令 2. **目录结构** ```bash /go # GOPATH 根目录 /src/app # 挂载点(对应本地项目) ``` 3. **开发建议** - 使用 `-v $(pwd):/go/src/app` 实现代码实时同步 - 调试时通过 `-p` 参数暴露应用端口(如 8080) - 安装 VSCode Remote-Containers 插件可直接在容器内开发 > 此方案比传统虚拟机部署节省 70% 资源占用,同时保证环境一致性[^4]
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值