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环境 的相关文章

  • 隐式声明“gets”

    据我所知 隐式声明 通常意味着该函数必须在调用之前放置在程序的顶部 或者我需要声明原型 然而 gets应该在stdio h文件 我已包含 有没有什么办法解决这一问题 include
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 如何使用 nohup 获取正在运行的程序列表

    我正在通过 SSH 连接访问运行 CentOS linux 发行版 的服务器 由于我无法始终保持登录状态 因此我使用 nohup command 来运行我的程序 我找不到如何获取我开始使用 nohup 的所有程序的列表 工作 只有在我注销之
  • grep 彩色线条

    我编写了一个简单的 PHP shell 脚本 它解析文件并输出某些元素 它产生大量的输出 采用不同的 bash 颜色 绿色表示正常 黄色表示警告 红色表示错误等 在开发过程中我想过滤掉一些行 例如 所有包含红色文本的行 我可以使用grep
  • 用于 e NetworkManager VPN 连接的 dbus 信号处理程序

    我需要开发一些在建立 VPN 连接时执行的 python 代码 VPN 由 NetworkManager 控制 我试图弄清楚如何为此使用 NM DBUS 事件 使用 dbus monitor system 我能够识别连接信号 signal
  • 使用 Python 将阿拉伯语或任何从右到左书写系统的字符串打印到 Linux 终端

    非常简单的例子是 city print city 我期望输出是 但实际上输出是相反的字符串 字母看起来有点不同 因为它们有开始 中间和结束形式 我无法将其粘贴到此处 因为复制粘贴会再次更正字符串的顺序 如何在 Linux 终端上正确打印阿拉
  • 打印 STDOUT/STDERR 并将它们写入 Bash 中的文件?

    有没有办法让 Bash 将 STDOUT STDERR 重定向到文件 但仍然将它们打印到终端 这会将 STDOUT 和 STDERR 重定向到同一个文件 some command 2 gt 1 tee file log Example to
  • 每个虚拟主机的错误日志?

    在一台运行 Apache 和 PHP 5 的 Linux 服务器上 我们有多个带有单独日志文件的虚拟主机 我们似乎无法分离 phperror log虚拟主机之间 覆盖此设置
  • PHP mail() 函数不发送邮件

    我有一个小问题 我正在使用一个工作脚本 在我的测试帐户 共享服务器上工作 使用 mail 函数通过 PHP 发送邮件 我刚刚得到了一个专用服务器 但我还无法让该功能发挥作用 在过去的 10 个小时左右的时间里 我阅读了有关 BIND 用于
  • gpg:抱歉,根本没有请求终端 - 无法获取输入

    解密时出现以下错误 eyaml decrypt s ENC and the key goes on here gnupg quiet no secmem warning no permission warning no tty yes de
  • 使用 Vala 和 GLib 的正则表达式

    有没有一个函数 比如http php net manual en function preg match all php http php net manual en function preg match all php 使用 GLibh
  • X 按键/释放事件捕获,与焦点窗口无关

    我想记录所有传入的按键事件 无论哪个窗口处于焦点状态或指针位于何处 我编写了一个示例代码 它应该捕获当前焦点窗口的按键事件 include
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • ARM 的内核 Oops 页面错误错误代码

    Oops 之后的错误代码给出了有关 ARM EX 中的恐慌的信息 Oops 17 1 PREEMPT SMP在这种情况下 17 给出了信息 在 x86 中它代表 bit 0 0 no page found 1 protection faul
  • Linux Shellcode“你好,世界!”

    我有以下可用的 NASM 代码 global start section text start mov eax 0x4 mov ebx 0x1 mov ecx message mov edx 0xF int 0x80 mov eax 0x1
  • 在Linux中将日期附加到文件名

    我想在文件名旁边添加日期 somefile txt 例如 somefile 25 11 2009 txt 或 somefile 25Nov2009 txt 或任何类似的内容 也许脚本或终端窗口中的某些命令可以执行 我正在使用Linux Ub
  • 为什么“script”命令会生成 ^[ 和 ^M 字符以及如何使用 vim 搜索和替换删除它们?

    在linux上 使用bash shell 当我使用script命令时 生成的文件称为typescript 当我用 vim 打开该文件时 每一行都包含 M字符 并且有几行 由于我的彩色命令提示符 包含一个字符 我想用任何东西替换这些字符 从而
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • 如何获取 bash 中从 Ping 接收到的数据包的百分比?

    当 ping 主机时 我希望输出仅显示收到的数据包 已发送 5 个 的百分比 我想我需要使用grep不知怎的 但我不知道如何 我是 bash 编程的新手 这是我所在的地方 ping c 5 q host grep grep 中应该包含什么

随机推荐