如何在 Debian 9 上安装 Go

2023-11-13

Go 是 Google 创建的一种现代开源编程语言,用于构建可靠、简单、快速、高效的软件。许多流行的应用程序,包括 Kubernetes、Docker、Teraform 和 Grafana 都是用 Go 编写的。

在本教程中,我们将引导您完成在 Debian 9 系统上下载和安装 Go 所需的步骤。

先决条件#

在继续本教程之前,请确保您以以下身份登录具有 sudo 权限的用户 .

如何安装Go#

在撰写本文时,Go 的最新稳定版本是 1.13 版本。下载 tarball 之前,请访问官方 Go下载页面并检查是否有新版本可用。

请按照以下步骤在 Debian 9 上安装 Go:

  1. 正在下载Go.

    下载包含以下内容的 Go tarballwget命令 :

    wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz
  2. 验证 Go 压缩包。

    Use the sha256sum验证下载文件校验和的实用程序:

    sha256sum go1.13.linux-amd64.tar.gz
    68a2297eb099d1a76097905a2ce334e3155004ec08cdea85f24527be3c48e856  go1.13.linux-amd64.tar.gz

    确保上面命令打印的哈希值与前往下载页面 .

  3. 提取 Go tarball。

    以下命令会将 tarball 解压到/usr/local目录:

    sudo tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz
  4. 调整路径变量。

    现在,当解压 Go tarball 时,我们需要编辑$PATH环境变量,以便我们的系统知道 Go 可执行二进制文件的位置。 我们可以通过将以下行附加到/etc/profile文件(用于系统范围的安装)或$HOME/.profile文件(对于当前用户安装):

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

    保存文件,并将新的 PATH 环境变量应用到当前 shell 会话:

    source ~/.profile

测试安装#

为了测试 Go 是否正确安装在我们的机器上,我们将设置一个工作区并构建一个简单的“Hello world”程序。

  1. 创建工作区目录

    默认情况下,工作区目录设置为$HOME/go,要创建它,请输入:

    mkdir ~/go
  2. 创建一个简单的“Hello World”Go 文件。

    在工作空间内创建一个新目录src/hello

    mkdir -p ~/go/src/hello

    并在该目录中创建一个名为的文件hello.go

    〜/go/src/hello/hello.go
    package main
    
    import "fmt"
    
    func main() {
        fmt.Printf("Hello, World\n")
    }

    要了解有关 Go 工作区目录层次结构的更多信息,请访问去文档 page.

  3. 构建 hello.go 文件:

    构建文件switch to the ~/go/src/hello目录并运行go build:

    cd ~/go/src/hellogo build

    上面的命令将构建一个名为hello.

  4. 运行可执行文件:

    您只需执行以下命令即可运行可执行文件:

    ./hello
    Hello, World

    如果你看到与上面相同的输出,那么你已经成功安装了 Go。

结论#

现在您已经在 Debian 计算机上下载并安装了 Go,您可以开始处理 Go 项目了。

如果您遇到问题或有反馈,请在下面发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Debian 9 上安装 Go 的相关文章

  • Go1编译器如何工作?

    我在一个学校项目中接触 Go 大约一个月了 我注意到 src pkg go 文件夹中的 go ast go token go parser 等包 但是 gc 编译器基于位于 src cmd gc 中的 C 文件 我的问题是关于 Go1 中用
  • ConstantTimeByteEq 如何工作?

    在大神的密码库里 找到了这个函数ConstantTimeByteEq http golang org src pkg crypto subtle constant time go s 897 936 L17 它有什么作用 如何工作 Cons
  • go:找到模块但不包含包

    我正在尝试安装 go 的网络包 但收到 不包含包错误 终端截图 我咨询过 go 模块 latest 已找到但不包含包 https stackoverflow com questions 62974985 go module latest f
  • 地图中的最大元素数

    GO 中的 Map 最多可以存储多少个元素 如果我需要经常从 Map 访问数据 那么在长时间运行的程序中不断向 Map 添加项目并从中检索项目是一个好主意吗 除了map length类型的最大值之外 map中的元素数量没有理论上的限制 in
  • IntelliJ 2017.1.2 GOLANG 调试不适用于包中的断点

    我的应用程序由一个 main go 文件和一些包组成 当在 main go 中命中断点时 IntelliJ 按预期工作 显示变量值等 但是 当在不同的包中设置断点时 除了被命中之外 不会显示任何变量 并且不会跳过 进入功能按预期工作 被击中
  • Golang delve,如何启动调试器并启动正在调试的应用程序?

    我正在尝试设置一个可以远程连接的无头深度调试器 我无法找到一种方法来启动调试服务器 而该服务器不会暂停我正在调试的应用程序 我一直在使用dlv attach headless true listen 2345 attach 32但这会暂停该
  • 当所有通道都关闭时中断 select 语句

    我有两个独立生成数据的 goroutine 每个将其发送到一个通道 在我的主 goroutine 中 我想在每个输出进入时使用它们 但不关心它们进入的顺序 每个通道在耗尽其输出时都会自行关闭 虽然 select 语句是像这样独立使用输入的最
  • 如何使用golang中通过引用传递的索引访问切片中的元素

    我将切片的引用传递给函数 并且我正在函数内的切片中进行更改 我还尝试使用索引访问切片中的元素 它在 golang 中抛出异常 通过引用传递的索引访问切片中的元素的最佳方法是什么 您可以在此处找到示例代码 参考 http www reddit
  • Go 中的切片分块

    我有一个切片 其中包含约 210 万条日志字符串 我想创建一个切片切片 其中字符串尽可能均匀分布 这是我到目前为止所拥有的 logs is a slice with 2 1 million strings in it var divided
  • 如何通过模板中的变量访问对象字段?

    我有一个嵌套循环 columns columns range dx dataList range c columns index dx c end end dataList是orm模型数组 和ID Title字段 那么columns is
  • Google Cloud Kubernetes 上任务队列的替代方案

    我发现任务队列主要用于App Engine标准环境 我正在将现有服务从 App Engine 迁移到 Kubernetes 任务队列的一个好的替代方案是什么 推送队列是当前正在使用的队列 我在线阅读文档并浏览了此链接 何时使用 PubSub
  • 如何使用 Java 原生接口从 Java 调用 Go 函数?

    可以通过以下方式调用 C 方法JNA https en wikipedia org wiki Java Native AccessJava 中的接口 如何使用 Go 实现相同的功能 package main import fmt impor
  • 在 Go 中使用互斥锁

    我想了解互斥体是如何工作的 据我目前的理解 它是为了进行原子操作并同步对某些数据的访问 我在这里构建了一个队列数据结构的示例 https github com arnauddri algorithms blob master data st
  • 在 Go 中生成随机、固定长度的字节数组

    我有一个字节数组 固定长度为4 token make byte 4 我需要将每个字节设置为随机字节 我怎样才能以最有效的方式做到这一点 这math rand就我而言 方法不提供随机字节函数 也许有一种内置的方法 或者我应该生成一个随机字符串
  • 初始化嵌套匿名结构

    我有一个 json 作为 fields time id status customerId additionalDetail pageInfo start 0 rows 1000 我想将我的结构编组到上面的 json 并创建如下结构 typ
  • 从 []byte 到 char*

    我想包装一个 C 函数 它需要一个char 指向非空字节缓冲区 的第一个元素 我正在尝试使用 CGo 将其包装在 Go 函数中 以便我可以将其传递给 byte 但我不知道如何进行转换 C 函数签名的简化版本是 void foo char c
  • 如何更改Python使用的SQLite版本?

    我在 Debian 9 12 上安装了 Python 3 8 和 SQLite 3 16 2 并且需要升级到较新版本的 SQLite 我已经下载并编译了 SQLite 网站上提供的合并 并将其放入 usr bin 所以当我这样做时 sqli
  • Go中如何自定义http.Client或http.Transport超时重试?

    我想实现一个自定义http Transport对于标准http Client 如果客户端超时 它将自动重试 附 由于某种原因 习俗http Transport is a 一定有 我已经查过了hashcorp go retryablehttp
  • 当涉及多个渠道时,select 如何工作?

    我发现在多个非缓冲通道上使用 select 时 例如 select case lt chana case lt chanb 即使两个通道都有数据 但在处理此选择时 case chana 和 case chanb 的跟注不平衡 package
  • Go io.Pipe 的缓冲版本

    有缓冲版本吗io Pipe https golang org pkg io Pipe 在标准库或第三方库中 在我推出自己的库之前 上下文 我正在尝试使用这个解决方案 https stackoverflow com a 36229262 15

随机推荐

  • 如何在 Linux 上禁用 IPv6

    IPv6是下一代互联网协议 旨在取代当前的互联网协议 IP 版本 4 两个设备之间的通信需要 IP 地址 它是互联网上计算机的身份 本文将帮助您从 Linux 机器中禁用 IPv6 1 检查 IPv6 地址 Use 如果配置命令查看系统上当
  • 如何使用命令行备份 SAP HANA 数据库

    SAP HANA是一个内存数据平台 可部署为本地设备或云中 它是一个革命性的平台 最适合执行实时分析以及开发和部署实时应用程序 点击here了解有关 SAP HANA 的更多信息 使用以下步骤使用命令行备份 SAP HANA 数据库 仅建议
  • 如何从 Linux 系统中完全删除 MySQL

    MySQL 是一种流行的开源关系数据库管理系统 然而 有时由于各种原因 您可能需要从 Linux 系统中删除 MySQL 例如升级到新版本 替换为其他数据库系统或干脆卸载它 在本文中 我们将向您展示如何以安全有效的方式从 Linux 系统中
  • 如何在 Linux 中强制用户下次登录时更改密码

    所有的Linux系统都将用户信息保存在 etc passwd and etc shadow文件 用户密码和帐户期限详细信息存储在影子文件中 时效信息包含密码更改和帐户状态的详细信息 在本教程中 您将了解如何在 Linux 中强制用户更改密码
  • 如何在 Ubuntu 22.04 和 20.04 上安装和使用 Rkhunter

    Rkhunter 是 Rootkit Hunter 的缩写 是一种开源安全工具 可扫描 Linux 和 Unix 系统中的 rootkit 后门和其他可能的安全威胁 它是任何具有安全意识的用户工具包的重要补充 本文将提供有关如何在 Ubun
  • 如何在 Ubuntu 20.04 上安装 Anaconda

    Anaconda 是一个用于 R 编程和 Python 的开源平台 其中包含各种各样的包和存储库 它的功能很重要 因为它提供大规模的处理和计算数据 并且还可以用Python语言进行编程 Anaconda 是一个很好的 Python 应用程序
  • 如何在 Java 中使用三元运算符并举例

    与其他编程语言一样 Java 也提供了三元运算符 三元运算符是 if then else 语句的简单单行语句 三元运算符使用 and 简单 一个简单的三元运算符的工作原理类似于如果 那么 否则陈述 如果任何条件计算为 true 则执行 tr
  • 如何使您的功能分支保持最新。

    在 git 存储库中为新功能创建单独的分支是个好主意 在这种情况下 不要忘记使您的功能分支与主分支保持同步 因此 请定期更新您的功能分支 以避免任何合并冲突 本教程将帮助您从父分支更新功能分支 我们假设您的父分支是 master 执行以下命
  • 如何在 CentOS/RHEL 8 上安装 PHP 8

    PHP 8 0 是 PHP 团队于 2020 年 11 月 26 日发布的重大更新 较之前版本包含大量新功能和优化 要了解更多信息 请阅读PHP 8 变更日志 REMI 和 EPEL 是最流行的存储库 包含用于安装的最新 RPM 软件包 它
  • 什么是开放系统互连 (OSI) 模型?

    The 开放系统互连 OSI 模型是网络中的一个重要概念 您必须理解它才能掌握数据在网络中传输的方式 如果您是网络世界的新手 这份综合指南将为您提供 OSI 模型的扎实介绍 什么是 OSI 模型 OSI 模型是一个概念框架 用于标准化通信或
  • 如何将 Ubuntu 升级到 22.04 LTS (Jammy Jellyfish)

    Ubuntu 22 04 LTS Jammy Jellyfish 已于 2022 年 4 月 21 日发布 该版本将支持到 2027 年 升级谁 Ubuntu 桌面和开发用户可以立即升级到 Ubuntu 22 04 LTS 但Ubuntu服
  • 使用 Curl 传递自定义标头:实用指南

    Curl 是一个强大的命令行工具 世界各地的开发人员都使用它来通过 URL 传输数据 Curl 是一种多功能工具 支持各种协议 例如 HTTP HTTPS FTP 等 Curl 的宝贵功能之一是它能够在发出请求时传递自定义标头 本文旨在深入
  • Linux 中的 ls 命令(列出文件和目录)

    ls是任何 Linux 用户都应该知道的基本命令之一 The ls命令列出文件系统中的文件和目录 并显示有关它们的详细信息 它是安装在所有 Linux 发行版上的 GNU 核心实用程序包的一部分 本文将通过实际示例和最常见 ls 选项的详细
  • 如何在 CentOS 7 上安装 WildFly (JBoss)

    WildFly 以前称为 JBoss 是一个用 Java 编写的跨平台开源应用程序运行时 可帮助您构建令人惊叹的应用程序 WildFly 灵活 轻量 并且基于可根据需要添加或删除的可插拔子系统 本教程介绍如何在 CentOS 7 上安装 W
  • 如何在 CentOS 上启用 EPEL 存储库

    EPEL Extra Packages for Enterprise Linux 存储库提供了标准 Red Hat 和 CentOS 存储库中未包含的附加软件包 创建 EPEL 存储库是因为 Fedora 贡献者希望使用他们在 Red Ha
  • Linux 中的 who 命令

    在这篇文章中 我们解释了who捆绑在 GNU coreutils 包中的命令 who是一个命令行实用程序 用于打印当前登录用户的列表 它还可以显示当前的运行级别 上次系统启动的时间等 如何使用who命令 的基本语法为who命令如下 who
  • 如何在 Linux 中截断(空)文件

    在某些情况下 您可能希望将现有文件截断 清空 至零长度 简单来说 截断文件就是删除文件内容而不删除文件 截断文件比截断文件更快更容易删除文件 重新创造它 并设置正确的权限和所有权 此外 如果该文件由进程打开 则删除该文件可能会导致使用该文件
  • 如何在 CentOS 8 上安装 PostgreSQL

    PostgreSQL 或 Postgres 是一种开源通用对象关系数据库管理系统 具有许多高级功能 允许您构建容错环境或复杂的应用程序 在本指南中 我们将讨论如何在 CentOS 8 上安装 PostgreSQL 数据库服务器 在选择安装哪
  • 如何在 Ubuntu 18.04 上安装 Pip

    Pip 是一个包管理系统 可简化用 Python 编写的软件包 例如 Python 包索引 PyPI 中的软件包 的安装和管理 Ubuntu 18 04 上默认不安装 Pip 但安装非常简单 在本教程中 我们将向您展示如何使用 Ubuntu
  • 如何在 Debian 9 上安装 Go

    Go 是 Google 创建的一种现代开源编程语言 用于构建可靠 简单 快速 高效的软件 许多流行的应用程序 包括 Kubernetes Docker Teraform 和 Grafana 都是用 Go 编写的 在本教程中 我们将引导您完成