Linux搭建Go环境

2023-05-16

1.ssh远程登录Linux服务器,可选用iTerm、xshell

ssh root@ip

2.建议配置好阿里云yum源、epel源

安装git

yum install git

3.下载go源码包

//下载地址 go官网 https://golang.org/dl/
cd /opt/
wget https://dl.google.com/go/go1.11.4.linux-amd64.tar.gz

4.解压缩go源码包,确认当前linux系统版本是32位还是64位,再选择go源码包

//查看linux多少位
[root@pyyuc /opt 21:59:02]#uname -m
x86_64

//决定下载64位
tar -zxvf go1.11.4.linux-amd64.tar.gz

//解压缩后go源码路径确保为
/opt/go/

5.配置go的工作空间(配置GOPATH),以及go的环境变量

go的代码必须在GOPATH中,也就是一个工作目录,目录包含三个子目录

$GOPATH
    src        存放go源代码的目录,存放golang项目的目录,所有项目都放到gopath的src目录下
    bin        在go install后生成的可执行文件的目录
    pkg        编译后生成的,源码文件,如.a

创建/opt/gocode/{src,bin,pkg},用于设置GOPATH为/opt/godocer

mkdir -p /opt/gocode/{src,bin,pkg}

/opt/gocode/
├── bin
├── pkg
└── src

6.设置GOPATH环境变量

修改/etc/profile系统环境变量文件,写入GOPATH信息以及go sdk路径

export GOROOT=/opt/go           #Golang源代码目录,安装目录
export GOPATH=/opt/gocode        #Golang项目代码目录
export PATH=$GOROOT/bin:$PATH    #Linux环境变量
export GOBIN=$GOPATH/bin        #go install后生成的可执行命令存放路径

读取/etc/profile,立即生效

source /etc/profile     #读取环境变量

查看go环境是否生效

//查看go环境变量路径
which go
//查看go语言环境信息
go env
//查看go版本,查看是否安装成功
[root@pyyuc ~ 22:59:05]#go version
go version go1.11.4 linux/amd64

1.1.2. Linux下第一个go程序

1.进入GOPATH工作目录

cd /opt/gocode/src  #进入src代码目录
mkdir hellogo        #新建一个go代码"包",hellogo
cd hellogo            #切换go包的目录,hellogo目录
touch main.go        #创建go程序文件

2.编辑main.go写入如下代码

[root@pyyuc /opt/gocode/src/hellogo 23:18:18]#cat main.go
package main

import "fmt"

func main() {
    fmt.Println("你好,欢迎来到超哥的golang世界")
}

3.运行go代码文件

//go run直接编译+运行go代码文件
[root@pyyuc /opt/gocode/src/hellogo 23:18:20]#go run main.go
你好,欢迎来到超哥的golang世界

//go fmt格式化go代码文件,统一代码风格
[root@pyyuc /opt/gocode/src/hellogo 23:20:13]#go fmt main.go

//go build 编译一个二进制可执行程序,用于编译指定的源码文件或代码包以及它们的依赖包。
[root@pyyuc /opt/gocode/src/hellogo 23:20:16]#go build main.go
[root@pyyuc /opt/gocode/src/hellogo 23:22:43]#ls
main  main.go

//执行二进制命令,这个命令可以拖动到其他linux机器,直接使用
[root@pyyuc /opt/gocode/src/hellogo 23:22:44]#./main
你好,欢迎来到超哥的golang世界

//go install编译一个二进制可执行程序,放在GOBIN目录下,也就是在$GOPATH/bin目录下
[root@pyyuc /opt/gocode/src/hellogo 23:35:54]#go install main.go
[root@pyyuc /opt/gocode/src/hellogo 23:36:04]#ls ../../bin/
main
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux搭建Go环境 的相关文章

  • 用另一个文件的标签为图表(ggplot2)中的标题添加下标

    在我的程序中 我有两个主要文件 第一个包含数据 第二个包含标签 或图形标题 文件总数1 数据 3 10000 3 32039232 1 0 0017290351 2 0 0002781092 3 10001 3 32101193 1 0 0
  • 无法在 Linux 的 NetBeans 中编译 C++ 和 OpenGL (GLFW) 的简单源代码

    我开始学习 OpenGL glfw 我从教程中复制源代码并尝试编译它 但出现了错误 我想我已经正确安装了所有头文件 glm glfw 等 这是我的来源 我没有在头文件中使用这些字符 include iostream include stdi
  • linux新手关于嵌入式linux设备驱动的问题

    最近在研究linux驱动 正如我读过的那些文章所说 设备驱动程序模块很可能会根据内核的需要自动加载 因此我想知道内核如何确定为特定设备 声卡 I2C spi 设备 等 我也无法彻底想象内核如何在启动时检测每个硬件设备 与嵌入式linux相关
  • Bash:检查是否给出了参数(例如是否有参数“-a”?)

    我有一个脚本 它应该接受 2 个参数 s 和 d 如果未给出 d 参数 我想删除我的调试文件 与 s 相同 如何检查 1 或 2 是否为 s 或 d 舒尔有两个参数 我可以做到 蛮力 if test 1 d test 2 d then rm
  • 找出Linux上一个进程使用了​​多少内存页

    我需要找出进程分配了多少内存页 每个页面是 4096 进程内存使用情况我在查找正确值时遇到一些问题 当我查看 gome system monitor 时 内存映射下有几个值可供选择 Thanks 这样做的目的是将内存使用量除以页数并验证页大
  • 何时用引号将 shell 变量括起来?

    我应该或不应该在 shell 脚本中用引号括住变量吗 例如 下列说法正确的是 xdg open URL eq 2 or xdg open URL eq 2 如果是这样 为什么 一般规则 如果它可以为空或包含空格 或实际上任何空格 或特殊字符
  • PIL 的 Image.show() 带来*两个*不同的查看器

    在 python shell 中处理图像时 我使用 image show 其中 image 是 Image 的实例 很久以前什么也没发生 但在定义了一个名为 xv 的 Mirage 符号链接后 我很高兴 最近几天 show 将显示 Imag
  • 选择fasta文件中氨基酸超过300个且“C”出现至少4次的序列

    我有一个包含蛋白质序列的 fasta 文件 我想选择超过 300 个氨基酸且半胱氨酸 C 氨基酸出现超过 4 次的序列 我使用此命令来选择具有超过 300 个 aa 的序列 cat 72hDOWN fasta fasta bioawk c
  • Linux中如何避免sleep调用因信号而中断?

    我在 Linux 中使用实时信号来通知串行端口中新数据的到达 不幸的是 这会导致睡眠呼叫在有信号时被中断 有人知道避免这种行为的方法吗 我尝试使用常规信号 SIGUSR1 但我不断得到相同的行为 来自 nanosleep 联机帮助页 nan
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • BASH:输入期间按 Ctrl+C 会中断当前终端

    我的 Bash 版本是 GNU bash version 4 3 11 1 release x86 64 pc linux gnu 我有一段这样的代码 while true do echo n Set password read s pas
  • Crontab 每 5 分钟一次 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何告诉 crontab 每 5 分钟运行一次 但从每小时的第二分钟开始 换句话说 我想在以下时间执行我的脚本minute 5 2 例如 我的脚本应
  • 正则表达式删除块注释也删除 * 选择器

    我正在尝试使用 bash 从 css 文件中删除所有块注释 我有以下 sed 命令的正则表达式 sed r s w s w d 这可以很好地去除块注释 例如 This is a comment this is another comment
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • 如何在 Linux 上通过 FTP 递归下载文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win

随机推荐