跳转到主要内容

标签(标签)

资源精选(342) Go开发(108) Go语言(103) Go(99) angular(82) LLM(75) 大语言模型(63) 人工智能(53) 前端开发(50) LangChain(43) golang(43) 机器学习(39) Go工程师(38) Go程序员(38) Go开发者(36) React(33) Go基础(29) Python(24) Vue(22) Web开发(20) Web技术(19) 精选资源(19) 深度学习(19) Java(18) ChatGTP(17) Cookie(16) android(16) 前端框架(13) JavaScript(13) Next.js(12) 安卓(11) typescript(10) 资料精选(10) NLP(10) 第三方Cookie(9) Redwoodjs(9) LLMOps(9) Go语言中级开发(9) 自然语言处理(9) 聊天机器人(9) PostgreSQL(9) 区块链(9) mlops(9) 安全(9) 全栈开发(8) ChatGPT(8) OpenAI(8) Linux(8) AI(8) GraphQL(8) iOS(8) 软件架构(7) Go语言高级开发(7) AWS(7) C++(7) 数据科学(7) whisper(6) Prisma(6) 隐私保护(6) RAG(6) JSON(6) DevOps(6) 数据可视化(6) wasm(6) 计算机视觉(6) 算法(6) Rust(6) 微服务(6) 隐私沙盒(5) FedCM(5) 语音识别(5) Angular开发(5) 快速应用开发(5) 提示工程(5) Agent(5) LLaMA(5) 低代码开发(5) Go测试(5) gorm(5) REST API(5) 推荐系统(5) WebAssembly(5) GameDev(5) CMS(5) CSS(5) machine-learning(5) 机器人(5) 游戏开发(5) Blockchain(5) Web安全(5) Kotlin(5) 低代码平台(5) 机器学习资源(5) Go资源(5) Nodejs(5) PHP(5) Swift(5) 智能体(4) devin(4) Blitz(4) javascript框架(4) Redwood(4) GDPR(4) 生成式人工智能(4) Angular16(4) Alpaca(4) SAML(4) JWT(4) JSON处理(4) Go并发(4) kafka(4) 移动开发(4) 移动应用(4) security(4) 隐私(4) spring-boot(4) 物联网(4) nextjs(4) 网络安全(4) API(4) Ruby(4) 信息安全(4) flutter(4) 专家智能体(3) Chrome(3) CHIPS(3) 3PC(3) SSE(3) 人工智能软件工程师(3) LLM Agent(3) Remix(3) Ubuntu(3) GPT4All(3) 软件开发(3) 问答系统(3) 开发工具(3) 最佳实践(3) RxJS(3) SSR(3) Node.js(3) Dolly(3) 移动应用开发(3) 编程语言(3) 低代码(3) IAM(3) Web框架(3) CORS(3) 基准测试(3) Go语言数据库开发(3) Oauth2(3) 并发(3) 主题(3) Theme(3) earth(3) nginx(3) 软件工程(3) azure(3) keycloak(3) 生产力工具(3) gpt3(3) 工作流(3) C(3) jupyter(3) 认证(3) prometheus(3) GAN(3) Spring(3) 逆向工程(3) 应用安全(3) Docker(3) Django(3) R(3) .NET(3) 大数据(3) Hacking(3) 渗透测试(3) C++资源(3) Mac(3) 微信小程序(3) Python资源(3) JHipster(3) 大型语言模型(2) 语言模型(2) 可穿戴设备(2) JDK(2) SQL(2) Apache(2) Hashicorp Vault(2) Spring Cloud Vault(2) Go语言Web开发(2) Go测试工程师(2) WebSocket(2) 容器化(2) AES(2) 加密(2) 输入验证(2) ORM(2) Fiber(2) Postgres(2) Gorilla Mux(2) Go数据库开发(2) 模块(2) 泛型(2) 指针(2) HTTP(2) PostgreSQL开发(2) Vault(2) K8s(2) Spring boot(2) R语言(2) 深度学习资源(2) 半监督学习(2) semi-supervised-learning(2) architecture(2) 普罗米修斯(2) 嵌入模型(2) productivity(2) 编码(2) Qt(2) 前端(2) Rust语言(2) NeRF(2) 神经辐射场(2) 元宇宙(2) CPP(2) 数据分析(2) spark(2) 流处理(2) Ionic(2) 人体姿势估计(2) human-pose-estimation(2) 视频处理(2) deep-learning(2) kotlin语言(2) kotlin开发(2) burp(2) Chatbot(2) npm(2) quantum(2) OCR(2) 游戏(2) game(2) 内容管理系统(2) MySQL(2) python-books(2) pentest(2) opengl(2) IDE(2) 漏洞赏金(2) Web(2) 知识图谱(2) PyTorch(2) 数据库(2) reverse-engineering(2) 数据工程(2) swift开发(2) rest(2) robotics(2) ios-animation(2) 知识蒸馏(2) 安卓开发(2) nestjs(2) solidity(2) 爬虫(2) 面试(2) 容器(2) C++精选(2) 人工智能资源(2) Machine Learning(2) 备忘单(2) 编程书籍(2) angular资源(2) 速查表(2) cheatsheets(2) SecOps(2) mlops资源(2) R资源(2) DDD(2) 架构设计模式(2) 量化(2) Hacking资源(2) 强化学习(2) flask(2) 设计(2) 性能(2) Sysadmin(2) 系统管理员(2) Java资源(2) 机器学习精选(2) android资源(2) android-UI(2) Mac资源(2) iOS资源(2) Vue资源(2) flutter资源(2) JavaScript精选(2) JavaScript资源(2) Rust开发(2) deeplearning(2) RAD(2)

介绍


Go,有时也被称为“Golang”,是谷歌于 2012 年发布的一种开源编程语言。谷歌的目的是创建一种可以快速学习的编程语言。

自发布以来,Go 在开发人员中非常流行,并被用于从云或服务器端应用程序到人工智能和机器人技术的各种应用程序。本教程概述了如何在 Ubuntu 20.04 服务器上下载和安装最新版本的 Go(当前版本 1.16.7),构建著名的 Hello, World!应用程序,并将您的 Go 代码转换为可执行的二进制文件以供将来使用。

先决条件


本教程需要一个 Ubuntu 20.04 系统,该系统配置有具有 sudo 权限的非 root 用户和防火墙,如使用 Ubuntu 20.04 的初始服务器设置中所述。

第 1 步 — 安装 Go


在此步骤中,您将在服务器上安装 Go。

首先,通过 ssh 连接到您的 Ubuntu 服务器:

ssh sammy@your_server_ip


接下来,导航到 Web 浏览器中的官方 Go 下载页面。从那里复制当前二进制版本的 tarball 的 URL。

在撰写本文时,最新版本是 go1.16.7。要在 Ubuntu 服务器(或任何 Linux 服务器)上安装 Go,请复制以 linux-amd64.tar.gz 结尾的文件的 URL。

现在您已经准备好链接,首先确认您在主目录中:

cd ~


然后使用 curl 检索 tarball,确保将突出显示的 URL 替换为您刚刚复制的 URL。 -O 标志确保此输出到文件,而 L 标志指示 HTTPS 重定向,因为此链接取自 Go 网站,并将在文件下载之前重定向到此处:

curl -OL https://golang.org/dl/go1.16.7.linux-amd64.tar.gz


要验证您下载的文件的完整性,请运行 sha256sum 命令并将其作为参数传递给文件名:

sha256sum go1.16.7.linux-amd64.tar.gz


这将返回 tarball 的 SHA256 校验和:

Output
go1.16.7.linux-amd64.tar.gz
7fe7a73f55ba3e2285da36f8b085e5c0159e9564ef5f63ee0ed6b818ade8ef04  go1.16.7.linux-amd64.tar.gz


如果校验和与下载页面上列出的校验和匹配,则您已正确完成此步骤。

接下来,使用 tar 提取 tarball。该命令包括 -C 标志,它指示 tar 在执行任何其他操作之前更改到给定目录。这意味着提取的文件将被写入 /usr/local/ 目录,这是安装 Go 的推荐位置…… x 标志告诉 tar 提取,v 告诉它我们想要详细输出(被提取文件的列表), f 告诉它我们将指定一个文件名:

sudo tar -C /usr/local -xvf go1.16.7.linux-amd64.tar.gz


尽管 /usr/local/go 是安装 Go 的推荐位置,但某些用户可能更喜欢或需要不同的路径。

第 2 步 — 设置 Go 路径


在此步骤中,您将在您的环境中设置路径。

首先,设置 Go 的根值,它告诉 Go 在哪里查找它的文件。您可以通过编辑 .profile 文件来执行此操作,该文件包含系统在您每次登录时运行的命令列表。

使用您喜欢的编辑器打开存储在用户主目录中的 .profile。在这里,我们将使用 nano:

sudo nano ~/.profile


然后,将以下信息添加到文件末尾:

sudo nano ~/.profile

. . .
export PATH=$PATH:/usr/local/go/bin


将此信息添加到您的个人资料后,保存并关闭文件。如果您使用 nano,请按 CTRL+X,然后按 Y,然后按 Enter。

接下来,通过运行以下命令刷新您的个人资料:

source ~/.profile


之后,通过运行 go version 检查是否可以执行 go 命令:

go version


此命令将输出系统上安装的任何 Go 版本的版本号:

Output
go version go1.16.7 linux/amd64


此输出确认您现在正在服务器上运行 Go。

第 3 步 — 测试您的安装


现在已经安装了 Go 并为您的服务器设置了路径,您可以尝试创建您的 Hello, World!应用程序以确保 Go 正常工作。

首先,为您的 Go 工作区创建一个新目录,Go 将在该目录中构建其文件:

mkdir hello


然后进入刚刚创建的目录:

cd hello


导入包时,你必须通过代码自己的模块来管理依赖关系。你可以通过使用 go mod init 命令创建一个 go.mod 文件来做到这一点:

go mod init your_domain/hello


接下来,创建一个 Hello, World!在您喜欢的文本编辑器中转到文件:

nano hello.go


将以下文本添加到 hello.go 文件中:

hello.go

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

然后,按 CTRL+X、Y 和 ENTER 保存并关闭文件。

测试您的代码以检查它是否打印了 Hello, World!问候:

go run .

 

Output
Hello, World!


go run 命令从您创建的新 hello 目录和导入的路径中的 .go 源文件列表编译并运行 Go 包。但是,你也可以使用 go build 来制作一个可执行文件,这样可以节省你一些时间。

第 4 步 — 将您的 Go 代码转换为二进制可执行文件


go run 命令通常用作编译和运行需要频繁更改的程序的快捷方式。如果你已经完成了你的代码并且想要在不每次编译的情况下运行它,你可以使用 go build 将你的代码变成一个可执行的二进制文件。将您的代码构建为可执行二进制文件会将您的应用程序整合到一个文件中,其中包含执行二进制文件所需的所有支持代码。一旦你构建了二进制可执行文件,你就可以运行 go install 将你的程序放在一个可执行文件路径上,这样你就可以从系统上的任何地方运行它。然后,您的程序将成功打印 Hello, World!出现提示时,您无需再次编译程序。

尝试一下并运行 go build。确保从存储 hello.go 文件的同一目录运行它:

go build


接下来,运行 ./hello 以确认代码正常工作:

./hello

Output
Hello, World!


这确认您已成功将 hello.go 代码转换为可执行二进制文件。但是,您只能从该目录中调用此二进制文件。如果您想从服务器上的不同位置运行此程序,则需要指定二进制文件的完整文件路径才能执行它。

输入二进制文件的完整文件路径很快就会变得乏味。作为替代方案,您可以运行 go install 命令。这类似于 go build 但不是将可执行文件保留在当前目录中,而是将其放在 $GOPATH/bin 目录中,这将允许您从服务器上的任何位置运行它。

为了成功运行 go install,您必须将您使用 go build 创建的二进制文件的安装路径传递给它。要查找二进制文件的安装路径,请运行以下 go list 命令:

go list -f ‘{{.Target}}’


go list 生成存储在当前工作目录中的任何命名 Go 包的列表。 f 标志将导致 go list 根据您传递给它的任何包模板以不同的格式返回输出。此命令告诉它使用 Target 模板,这将导致 go list 返回存储在此目录中的任何包的安装路径:

Output
‘/home/sammy/go/bin/hello


这是您使用 go build 创建的二进制文件的安装路径。这意味着安装此二进制文件的目录是 /home/sammy/go/bin/。

将此安装目录添加到系统的 shell 路径中。如果不同,请务必更改此命令的突出显示部分以反映系统上二进制文件的安装目录:

export PATH=$PATH:/home/sammy/go/bin/


最后,运行 go install 编译安装包:

go install


只需输入 hello 即可尝试运行此可执行二进制文件

hello

Output
Hello, World!


如果您收到 Hello, World!输出,您已经成功地使您的 Go 程序可以从您服务器上的特定和未指定路径执行。

结论


通过下载和安装最新的 Go 包并设置其路径,您现在拥有一个用于 Go 开发的系统。您可以在我们的“Go”标签中找到并订阅有关安装和使用 Go 的其他文章

文章链接