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

一、安装

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

            RHEL 6.0+CentOS 6.0+即,不支持 (RHEL 和 CentOS) 的 (4.x or 5.x)。

2.下载golang的代码版本

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

在这里插入图片描述

3.安装

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

二、环境配置

1.非root账户配置(工作空间)

  • 在工作目录中新建bin(编译后可的执行文件的存放路径)、src(源码路径)、pkg(编译包时,生成的.a文件的存放路径)目录;
  • vim ~/.bash_profile

a.在文件最后加入:

# $HOME/go 为工作空间的路径,可自行修改
export GOPATH=$HOME/go

source ~/.bash_profile

2.root账户配置

vim /etc/profile

a.在文件最后加入:

# /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

3.验证go环境
①在root账户和非root账户都执行一下go version,确认环境安装完成且可以使用。

在这里插入图片描述

    ②执行go env,得到类似以下的结果:
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/go/.cache/go-build"
GOENV="/home/go/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/go/go"
GOPRIVATE=""
GOPROXY=""
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build794900241=/tmp/go-build -gno-record-gcc-switches"

4.配置go下载包的代理地址

  1. 执行go env -w GO111MODULE=on
  2. 执行go env -w GOPROXY=https://goproxy.io,direct
  3. 执行完成①和②之后,再次进行go env得到以下结果
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/go/.cache/go-build"
GOENV="/home/go/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/go/go"
GOPRIVATE=""
GOPROXY="https://goproxy.io,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build794900241=/tmp/go-build -gno-record-gcc-switches"

三、第一个go程序

  1. 切换到工作空间的src目录下面
  2. vim hello.go
# 在主文件中必须引入main的包
package mainimport "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框架作为服务器等等。

四、Go的一些介绍

1.环境变量:
$GOROOT:
表示Go的安装目录。也就是上面我们解压出来的文件夹里面的go文件夹。
$GOPATH:
表示我们的工作空间。用来存放我们的工程目录的地方。
2.GOPATH目录:
一般来说GOPATH下面会有三个文件夹:bin、pkg、src,没有的话自己创建。每个文件夹都有其的作用。

bin:编译后可的执行文件的存放路径
pkg:编译包时,生成的.a文件的存放路径
src:源码路径,一般我们的工程就创建在src下面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/71288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue2+Vue3基础入门到实战项目(七)——智慧商城项目

Vue 核心技术与实战 智慧商城 接口文档:https://apifox.com/apidoc/shared-12ab6b18-adc2-444c-ad11-0e60f5693f66/doc-2221080 演示地址:http://cba.itlike.com/public/mweb/#/ 01. 项目功能演示 1.明确功能模块 启动准备好的代码,演示…

Unity 之 利用数组来管理资源

文章目录 在Unity中,资源数组(Resource Arrays)不是Unity的标准概念。然而,您可能在特定上下文中使用数组来管理资源或游戏对象。我将解释如何在Unity中使用数组来管理资源。 资源管理: 在Unity中,资源通常…

2024腾讯校招后端面试真题汇总及其解答(二)

11.如果同时有5个任务在10分钟之后提交,或者更多,那么如果是一个个从队列中拿数据,那么前一个任务会影响后续任务执行时间,说一下解决思路 你的问题是一个典型的并发处理问题。如果你的系统是单线程的,那么的确,前一个任务的执行时间会影响后续任务的执行时间。但是,你…

React Hook之useContext

1. 什么是useContext React官方解释:useContext 是一个 React Hook,可以让你读取和订阅组件中的 context(React官方文档地址)。 通俗的讲,useContext的作用就是:实现组件间的状态共享,主要应用场…

2023 年全国大学生数学建模A题目-定日镜场的优化设计

A题目是个典型的优化问题 大致思路(非完整) 先说题目的模型,有点类似一个人拿着镜子,这个镜子最终要映射到某个点上,有点类似下面这个玩意儿,只不过是个大型的而已 规划的吸收塔类似这个烧水壶,…

算法通关村第十五关:白银挑战-海量数据场景下的热门算法题

白银挑战-海量数据场景下的热门算法题 1.从40亿中产生一个不存在的整数 题目要求: 给定一个输入文件,包含40亿个非负整数,请设计一个算法,产生一个不存在该文件中的整数,假设你有1GB的内存来完成这项任务。 进阶拓展…

无涯教程-JavaScript - ERFC.PRECISE函数

描述 ERFC.PRECISE函数返回x和无穷大之间集成的互补ERF函数。 互补误差函数等于1-ERF(即1-误差函数),由等式给出- $$Erfc(x) \frac {2} {\sqrt {\pi}} \int_ {x} ^ {\infty} e ^ {-t ^ 2} dt $$ 语法 ERFC.PRECISE(x)争论 Argument描述Required/OptionalxThe lower bound…

对象临时中间状态的条件竞争覆盖

Portswigger练兵场之条件竞争 🦄条件竞争之对象临时中间状态的条件竞争 Lab: Partial construction race conditions🚀实验前置必要知识点 某些框架尝试通过使用某种形式的请求锁定来防止意外的数据损坏。例如,PHP 的本机会话处理程序模块…

IT运维监控系统和网络运维一样吗

IT运维监控系统和网络运维不是一样的。IT运维监控系统是一系列IT管理产品的统称,它所包含的产品功能强大、易于使用、解决方案齐全,可一站式满足用户的各种IT管理需求。而网络运维是指对网络设备进行监控、维护和管理,包括硬件故障的排除、软…

网络技术十三:DNS(域名服务器)

DNS 域名 产生背景 通过IP地址访问目标主机,不便于记忆 通过容易记忆的域名来标识主机位置 域名的树形层次化结构 根域 领级域 主机所处的国家/区域,注册人的性质 二级域 注册人自行创建的名称 主机名 区域内部的主机的名称 由注册人自行创建…

Vue + Element UI 前端篇(九):接口格式定义

接口请求格式定义 前台显示需要后台数据,我们这里先把前后端交互接口定义好,没有后台的时候,也方便用mock模拟。 接口定义遵循几个规范: 1. 接口按功能模块划分。 系统登录:登录相关接口 用户管理:用户…

Golang RSA 生成密钥、加密、解密、签名与验签

文章目录 1.RSA2.Golang 实现 RSA生成密钥加密解密签名验签 3.dablelv/cyan参考文献 1.RSA RSA 是最常用的非对称加密算法,由 Ron Rivest、Adi Shamir、Leonard Adleman 于1977 年在麻省理工学院工作时提出,RSA 是三者姓氏首字母的拼接。 它的基本原理…

大数据安全 | (一)介绍

目录 📚大数据安全 🐇大数据安全内涵 🐇大数据安全威胁 🐇保障大数据安全 ⭐️采集环节安全技术 ⭐️存储环节安全技术 ⭐️挖掘环节安全技术 ⭐️发布环节安全技术 🐇大数据用于安全 📚隐私及其…

2023国赛数学建模E题思路分析-黄河水沙监测数据分析

E 题 黄河水沙监测数据分析 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变 化和人民生活的影响,以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾 等方面都具有重要的理论指导意义。 附件 1 给出了位于小浪底水…

tcpdump相关

Linux内核角度分析tcpdump原理(一)Linux内核角度分析tcpdump原理(二)

android framework之Applicataion启动流程分析(二)

上一篇讲了Zygote是如何收到启动Application的启动消息,并一步步进入Fork(),下面来分析zygote fork启动application后,application进程后续处理操作,是如何真正的启动的。 ZygoteInit.main():-->...caller ZygoteServer.runSelectLoop()…

数据结构day07(栈和队列)

今日任务 链式队列&#xff1a; head.h #ifndef __HEAD_H__ #define __HEAD_H__#include <stdio.h> #include <stdlib.h>typedef int datatype; typedef struct link_list{datatype data;struct link_list* next; }link,*linkp; typedef struct circulate_line_t…

Numpy知识点回顾与学习

Numpy知识点回顾与学习 什么是Numpy&#xff1f; Numpy使用Python进行科学计算的基础包。因为机器学习当中很多都会用到数组、线性代数等知识&#xff0c;经常需要和数组打交道&#xff0c;所以Numpy学习成为了科研之路上必须掌握的一门技能。Numpy包含以下的内容&#xff1a…

Spring Boot + Vue的网上商城之商品分类

Spring Boot Vue的网上商城之商品分类 在网上商城中&#xff0c;商品分类是非常重要的一个功能&#xff0c;它可以帮助用户更方便地浏览和筛选商品。本文将介绍如何使用Spring Boot和Vue来实现商品分类的功能&#xff0c;包括一级分类和二级分类的管理以及前台按分类浏览商品…

Webpack vs Vite的核心差异

构建速度: Webpack: Webpack的构建速度相对较慢&#xff0c;尤其在大型项目中&#xff0c;因为它需要分析整个依赖图&#xff0c;进行多次文件扫描和转译。Vite: Vite以开发模式下的极速构建著称。它利用ES模块的特性&#xff0c;只构建正在编辑的文件&#xff0c;而不是整个项…