首页 > 系统相关 >Linux系统之部署Go语言开发运行环境

Linux系统之部署Go语言开发运行环境

时间:2023-04-01 12:08:30浏览次数:33  
标签:部署 local go test Linux Go docker root

(Linux系统之部署Go语言开发运行环境)

一、Go语言介绍

1.Go语言简介

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

2.Go语言的撰写风格

  • 每行程序结束后不需要撰写分号。
  • 左大括号不能够换行放置。
  • if判断式和for循环不需要以小括号包覆起来。

二、本地环境检查

1.检查系统版本

[root@docker ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

2.检查系统内核版本

[root@docker ~]# uname -r 
3.10.0-957.el7.x86_64

三、yum直接安装go

1.检查yum仓库

[root@docker ~]# yum repolist all |grep enable 
!base/7/x86_64                       CentOS-7 - Base             enabled: 10,072
!docker-ce-stable/7/x86_64           Docker CE Stable - x86_64   enabled:    209
*!epel/x86_64                        Extra Packages for Enterpri enabled: 13,744
!extras/7/x86_64                     CentOS-7 - Extras           enabled:    515
!updates/7/x86_64                    CentOS-7 - Updates          enabled:  4,691

2.安装go

yum -y install golang

3.创建环境变量

mkdir ~/go   # 创建目录
echo 'export GOPATH="$HOME/go"' >> ~/.bashrc   # 写入环境变量文件
source ~/.bashrc   使环境变量生效

四、二进制安装Go

1.安装wget等工具

yum -y install wget git

2.下载Go安装包

阿里云下载站点:https://mirrors.aliyun.com/golang/

[root@docker ~]# wget https://mirrors.aliyun.com/golang/go1.19.5.linux-amd64.tar.gz -P /usr/local/src
--2023-02-13 22:26:54--  https://mirrors.aliyun.com/golang/go1.19.5.linux-amd64.tar.gz
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 27.221.120.192, 27.221.120.241, 27.221.120.238, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|27.221.120.192|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 148949578 (142M) [application/octet-stream]
Saving to: ‘/usr/local/src/go1.19.5.linux-amd64.tar.gz’

100%[==========================================================================================================================>] 148,949,578 10.2MB/s   in 14s    

2023-02-13 22:27:08 (10.1 MB/s) - ‘/usr/local/src/go1.19.5.linux-amd64.tar.gz’ saved [148949578/148949578]

[root@docker ~]# cd /usr/local/src/
[root@docker src]# ls
go1.19.5.linux-amd64.tar.gz

2.解压到指定的目录

tar -xzf go1.19.5.linux-amd64.tar.gz -C /usr/local/

3.设置环境变量

在/etc/profile文件中定义以前全局变量。

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=~/go
source /etc/profile  #刷新环境变量

4.检查Go版本

[root@docker ~]# go version
go version go1.19.5 linux/amd64

五、测试Go语言环境

1.创建一个测试目录

[root@docker local]# mkdir -p /usr/local/go/src/test
[root@docker local]# 

2.编辑test.go文件

[root@docker test]# ls
[root@docker test]# pwd
/usr/local/go/src/test
[root@docker test]# cat test.go 
package main
import "fmt"
func main() {
   fmt.Printf("Go, World\n , better late than never\n")
}

}       




3.构建testgo文件为可执行文件

[root@docker test]# go build test.go 
[root@docker test]# ls
test  test.go

4.测试运行

[root@docker test]# ./test 
Go, World
 , better late than never

标签:部署,local,go,test,Linux,Go,docker,root
From: https://blog.51cto.com/u_14664141/6163436

相关文章

  • Docker部署openGauss国产数据库
    一、openGauss介绍1.openGauss简介openGauss是一款支持SQL2003标准语法,支持主备部署的高可用关系型数据库。2.openGauss产品定位多种存储模式支持复合业务场景,新引入提供原地更新存储引擎。NUMA化数据结构支持高性能。Paxos一致性日志复制协议,主备模式,CRC校验支持高可用......
  • go创建文件的软链接,不支持windows
    funcmain(){err:=os.Symlink("/data/da","/home/go/da")iferr!=nil{fmt.Println(err)//即使是错误也不退出}err=os.Remove("/home/go/da")iferr!=nil{fmt.Println("/home/go/dafileisremove",......
  • Go语言规范汇总
    统一规范篇合理规划目录本篇主要描述了公司内部同事都必须遵守的一些开发规矩,如统一开发空间,既使用统一的开发工具来保证代码最后的格式的统一,开发中对文件和代码长度的控制,必须经过go语言自带的检测机制等。【原则1.1】合理规划目录,一个目录中只包含一个包(实现一个模块的功能),......
  • 备份 Linux 系统神器:rsync
    导读探索rsync在备份方案中的作用。在系统管理员的工作中备份无疑是一个重要的部分。当没有完整备份或者良好规划的备份和实施时,就可能或早或晚不可挽回地丢失重要的数据。所有公司,无论大小,都运营在数据之上。考虑到丢失业务数据造成的经济和业务损失,从最小的个人公司到......
  • Linux系统下进程回收--wait()函数
    进程回收在每个进程退出的时候,内核释放该进程所有资源‘包括打开的文件、占用的内存等。但是仍然会保存一定的信息,这些信息主要是进程控制块PCB的信息(包括进程号、退出状态、运行时间等)。父进程可以调用wait()或waitpid()函数得到它的退出状态,同时彻底清除这个进程。wait()......
  • shell 脚本之一键部署安装 Nginx
    今天咸鱼给大家分享个源码编译安装Nginx的shell脚本 这个shell脚本可重复执行 完整源码放在最后 定义一个变量来存放nginx版本号version=1.15.4 nginx下载地址:http://nginx.org/download/ 下列函数功能则是判断当前步骤是否执行成功,并将结果输出出......
  • linux连接终端工具
    linux连接终端工具:electerm:https://github.com/electerm/electermhttps://electerm.github.io/electerm/MobaXterm:https://mobaxterm.mobatek.net/功能十分强大,支持SSH,FTP,串口,VNC,Xserver等功能;支持标签,切换也十分方便;可视化目录直接上传下载:注:不能支持szrz命令,可以......
  • Linux线程同步必知,常用方法揭秘!
    一、为什么要线程同步在Linux多线程编程中,线程同步是一个非常重要的问题。如果线程之间没有正确地同步,就会导致程序出现一些意外的问题,例如:竞态条件(RaceCondition):多个线程同时修改同一个共享变量,可能会导致不可预测的结果,因为线程的执行顺序是不确定的。死锁(Deadlock):当两个......
  • go 指针
    前言:变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置,当一个指针被定义后没有分配到任何变量时,它的默认值为nil。Go语言中使用在变量名前面添加&操作符(前缀)来获取变量的内存地址。指针变量通常缩写为ptr。正文:通过指针,获取变量的值num:=5ptr:=&num   ......
  • Django: @login_required
    Django:Tweaking@login_requireddecorator我想为我的网站开始一个私人Beta版。我有一个初始页面,用户可以在其中输入代码,然后访问网站的其余部分。当前,所有其他站点页面(初始页面除外)都包含一系列通过要求用户登录(通过@login_required装饰器)设置的重定向。我希望登录......