使用 Go 1.18.4 Toolset
安装和使用 Go 1.18.4 Toolset
摘要
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
第 1 章 Go Toolset 复制链接链接已复制到粘贴板!
Go Toolset 是 Red Hat Enterprise Linux (RHEL)上的开发人员。它提供 Go 编程语言工具和库。请注意,Go 也称为 golang。
Go Toolset 作为 Red Hat Enterprise Linux 7 的 Red Hat Developer Tools 的一部分发布。Go Toolset 作为 Red Hat Enterprise Linux 8 的模块提供。Go Toolset 作为 Red Hat Enterprise Linux 9 的软件包提供。
1.1. Go Toolset 组件 复制链接链接已复制到粘贴板!
以下组件作为 Go Toolset 的一部分提供:
| 名称 | 版本 | 描述 |
|---|---|---|
| golang | RHEL 7 — 1.18.4, RHEL 8 — 1.18.4, RHEL 9 — 1.18.4 | Go 编译器。 |
| delve | RHEL 7 — 1.8.0, RHEL 8 — 1.8.0, RHEL 9 — 1.8.0 | Go 调试器。 |
1.2. Go Toolset 兼容性 复制链接链接已复制到粘贴板!
Go Toolset 可用于 Red Hat Enterprise Linux 7 和 Red Hat Enterprise Linux 8 和 Red Hat Enterprise Linux 9:
- AMD 和 Intel 64 位
- 64 位 ARM (RHEL 8 和 RHEL 9)
- IBM Power Systems, Little Endian
- 64-bit IBM Z
1.3. 在 Red Hat Enterprise Linux 7 上访问 Go Toolset 复制链接链接已复制到粘贴板!
要在 Red Hat Enterprise Linux 7 上安装 Go Toolset,您必须访问并启用 Red Hat Developer Tools 和 Red Hat Software Collections 软件仓库。
如果这些软件仓库已附加到您的系统,请参阅安装 Go Toolset。
流程
运行以下命令安装
Wget:yum install wget
# yum install wgetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令下载最新的订阅数据:
subscription-manager refresh
# subscription-manager refreshCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令注册您的系统:
subscription-manager register
# subscription-manager registerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要使用图形用户界面(GUI) 注册您的系统,请按照注册和取消注册系统 指南进行操作。
运行以下命令,显示所有可用订阅列表并标识池 ID:
subscription-manager list --available
# subscription-manager list --availableCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
在以池 ID 开头的行中查找
池 ID。 运行以下命令,附加可让您访问
Red Hat Developer Tools仓库的订阅:subscription-manager attach --pool=<pool ID from the subscription>
# subscription-manager attach --pool=<pool ID from the subscription>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 subscription > 中的 < 池 ID 替换为您在上一步中确定的池 ID。
-
运行以下命令验证将哪些订阅附加到您的系统中:
sudo subscription-manager list --consumed
# sudo subscription-manager list --consumedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,启用
rhel-7-variant-devtools-rpms存储库:subscription-manager repos --enable rhel-7-<variant>-devtools-rpms
# subscription-manager repos --enable rhel-7-<variant>-devtools-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<variant> 替换为您的 Red Hat Enterprise Linux 系统变体:server或workstation。使用
服务器访问最广泛的开发工具。
运行以下命令,启用
rhel-变体- rhscl-7-rpms存储库:subscription-manager repos --enable rhel-<variant>-rhscl-7-rpms
# subscription-manager repos --enable rhel-<variant>-rhscl-7-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<variant> 替换为您的 Red Hat Enterprise Linux 系统变体:server或workstation。
-
将
运行以下命令,将 Red Hat Developer Tools GPG 密钥添加到您的系统中:
cd /etc/pki/rpm-gpg wget -O RPM-GPG-KEY-redhat-devel https://www.redhat.com/security/data/a5787476.txt rpm --import RPM-GPG-KEY-redhat-devel
# cd /etc/pki/rpm-gpg # wget -O RPM-GPG-KEY-redhat-devel https://www.redhat.com/security/data/a5787476.txt # rpm --import RPM-GPG-KEY-redhat-develCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4. 安装 Go Toolset 复制链接链接已复制到粘贴板!
完成以下步骤以安装 Go Toolset,包括所有依赖软件包。
先决条件
-
在 Red Hat Enterprise Linux 7 中,提供对 Red Hat Developer Tools 内容集访问权限的订阅会附加到您的系统。
要附加订阅,请参阅 Red Hat Enterprise Linux 7 中的 Go Toolset 的访问权限。 - 已安装所有可用的 Red Hat Enterprise Linux 更新。
流程
在 Red Hat Enterprise Linux 7 中,运行以下命令来安装 go-toolset-1.18 集合:
yum install go-toolset-1.18
# yum install go-toolset-1.18
在 Red Hat Enterprise Linux 8 中,运行以下命令来安装 go-toolset 模块:
yum module install go-toolset
# yum module install go-toolset
在 Red Hat Enterprise Linux 9 中,运行以下命令来安装 go-toolset 软件包:
dnf install go-toolset
# dnf install go-toolset
1.5. 安装 Go 文档 复制链接链接已复制到粘贴板!
您可以在本地系统上为 Go 编程语言安装文档。
先决条件
-
Go Toolset 已安装。
如需更多信息,请参阅安装 Go Toolset。
流程
要安装 golang-docs 软件包,请运行以下命令:
在 Red Hat Enterprise Linux 7 上:
yum install go-toolset-1.18-golang-docs
# yum install go-toolset-1.18-golang-docsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以在以下路径中找到文档:
/opt/rh/go-toolset-1.18/root/usr/lib/go-toolset-1.18-golang/doc/docs.html。在 Red Hat Enterprise Linux 8 中:
yum install golang-docs
# yum install golang-docsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以在以下路径中找到文档:
/usr/lib/golang/doc/effective_go.html。在 Red Hat Enterprise Linux 9 中:
dnf install golang-docs
# dnf install golang-docsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以在以下路径中找到文档:
/usr/lib/golang/doc/go_spec.html。
第 2 章 Go 编译器 复制链接链接已复制到粘贴板!
Go 编译器是 Go 编程语言的构建工具和依赖项管理器。它为您的代码提供错误检查和优化。
2.1. 先决条件 复制链接链接已复制到粘贴板!
-
Go Toolset 已安装。
如需更多信息,请参阅安装 Go Toolset。
2.2. 设置 Go 工作区 复制链接链接已复制到粘贴板!
要编译 Go 程序,您需要设置 Go 工作区。
流程
创建一个工作区目录,作为
$GOPATH/src的子目录。常见选择是
$HOME/go。- 将您的源文件放到工作区目录中。
运行以下命令,将工作区目录的位置设置为
$HOME/.bashrc文件:echo 'export GOPATH=<workspace_dir>' >> $HOME/.bashrc source $HOME/.bashrc
$ echo 'export GOPATH=<workspace_dir>' >> $HOME/.bashrc $ source $HOME/.bashrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <workspace_dir> 替换为工作区目录的名称。
2.3. 编译 Go 程序 复制链接链接已复制到粘贴板!
您可以使用 Go 编译器编译 Go 程序。Go 编译器因为编译后创建一个可执行的二进制文件。
先决条件
-
设定的 Go 工作区。
有关如何设置工作区的详情,请参考 设置 Go 工作区。
流程
在项目目录中,运行:
在 Red Hat Enterprise Linux 7 上:
scl enable go-toolset-1.18 'go build <output_file>'
$ scl enable go-toolset-1.18 'go build <output_file>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<output_file< 替换为输出文件的所需名称,<go_main_package> 替换为您的主软件包的名称。
-
将
在 Red Hat Enterprise Linux 8 中:
go build <output_file>
$ go build <output_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<output_file> 替换为输出文件的所需名称,<go_main_package> 替换为您的主软件包的名称。
-
将
在 Red Hat Enterprise Linux 9 中:
go build <output_file>
$ go build <output_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<output_file> 替换为输出文件的所需名称,<go_main_package> 替换为您的主软件包的名称。
-
将
2.4. 运行一个 Go 程序 复制链接链接已复制到粘贴板!
Go 编译器因为编译后创建一个可执行的二进制文件。完成以下步骤以执行此文件并运行您的程序。
先决条件
-
您的程序被编译。
有关如何编译程序的更多信息,请参阅 编译 Go 程序。
流程
要运行您的程序,请在包含可执行文件的目录中运行:
./<file_name>
$ ./<file_name>
-
将
<file_name> 替换为可执行文件的名称。
2.5. 安装编译的 Go 项目 复制链接链接已复制到粘贴板!
您可以安装已编译的 Go 项目,以便在进一步的 Go 项目中使用其可执行文件和库。安装后,项目的可执行文件和库会根据 Go 工作区中的目录复制到。另外还会安装其依赖项。
先决条件
-
Go 工作区。
如需更多信息 ,请参阅设置 Go 工作区。
流程
要安装 Go 项目,请运行:
在 Red Hat Enterprise Linux 7 上:
scl enable go-toolset-1.18 'go install <go_project>'
$ scl enable go-toolset-1.18 'go install <go_project>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<go_project> 替换为您要安装的 Go 项目的名称。
-
将
在 Red Hat Enterprise Linux 8 中:
go install <go_project>
$ go install <go_project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<go_project> 替换为您要安装的 Go 项目的名称。
-
将
在 Red Hat Enterprise Linux 9 中:
go install <go_project>
$ go install <go_project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<go_project> 替换为您要安装的 Go 项目的名称。
-
将
2.6. 下载并安装 Go 项目 复制链接链接已复制到粘贴板!
您可以从在线资源下载并安装第三方 Go 项目,以便在进一步的 Go 项目中使用其可执行文件和库。安装后,项目的可执行文件和库会根据 Go 工作区中的目录复制到。另外还会安装其依赖项。
先决条件
-
Go 工作区。
如需更多信息 ,请参阅设置 Go 工作区。
流程
要下载并安装 Go 项目,请运行:
在 Red Hat Enterprise Linux 7 上:
scl enable go-toolset-1.18 'go get <third_party_go_project>'
$ scl enable go-toolset-1.18 'go get <third_party_go_project>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<third_party_go_project> 替换为您要下载的项目的名称。
-
将
在 Red Hat Enterprise Linux 8 中:
go get <third_party_go_project>
$ go get <third_party_go_project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<third_party_go_project> 替换为您要下载的项目的名称。
-
将
在 Red Hat Enterprise Linux 9 中:
go get <third_party_go_project>
$ go get <third_party_go_project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<third_party_go_project> 替换为您要下载的项目的名称。
-
将
有关第三方项目的可能值的信息,请运行:
在 Red Hat Enterprise Linux 7 上:
scl enable go-toolset-1.18 'go help importpath'
$ scl enable go-toolset-1.18 'go help importpath'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 8 中:
go help importpath
$ go help importpathCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Red Hat Enterprise Linux 9 中:
go help importpath
$ go help importpathCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 3 章 gofmt 格式工具 复制链接链接已复制到粘贴板!
Go 编程语言使用 gofmt 代码格式工具,而不是样式的指南。Gofmt 根据 Go 布局规则自动格式化您的代码。
3.1. 先决条件 复制链接链接已复制到粘贴板!
-
Go Toolset 已安装。
如需更多信息,请参阅安装 Go Toolset。
3.2. 格式化代码 复制链接链接已复制到粘贴板!
您可以使用 gofmt 格式化工具在给定路径中格式化代码。当路径导致单个文件时,更改只应用于文件。当路径导致某个目录时,将处理目录中的所有 .go 文件。
流程
要在给定路径中格式化您的代码,请运行:
在 Red Hat Enterprise Linux 7 上:
scl enable go-toolset-1.18 'gofmt -w <code_path>'
$ scl enable go-toolset-1.18 'gofmt -w <code_path>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要格式的代码的路径。
-
将
在 Red Hat Enterprise Linux 8 中:
gofmt -w <code_path>
$ gofmt -w <code_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要格式的代码的路径。
-
将
在 Red Hat Enterprise Linux 9 中:
gofmt -w <code_path>
$ gofmt -w <code_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要格式的代码的路径。
-
将
要将格式化代码打印到标准输出而不是将其写入原始文件,请省略 -w 选项。
3.3. 预览代码更改 复制链接链接已复制到粘贴板!
您可以使用 gofmt 格式化工具来预览由给定路径中格式化代码所完成的更改。统一 diff 格式的输出将打印到标准输出中。
流程
要显示您在给定路径中的代码的不同,请运行:
在 Red Hat Enterprise Linux 7 上:
scl enable go-toolset-1.18 'gofmt -d <code_path>'
$ scl enable go-toolset-1.18 'gofmt -d <code_path>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要比较的代码的路径。
-
将
在 Red Hat Enterprise Linux 8 中:
gofmt -d <code_path>
$ gofmt -d <code_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要比较的代码的路径。
-
将
在 Red Hat Enterprise Linux 9 中:
gofmt -d <code_path>
$ gofmt -d <code_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要比较的代码的路径。
-
将
3.4. 简化代码 复制链接链接已复制到粘贴板!
您可以使用 gofmt 格式化工具来简化代码。
流程
要简化给定路径中的代码,请运行:
在 Red Hat Enterprise Linux 7 上:
scl enable go-toolset-1.18 'gofmt -s <code_path>'
$ scl enable go-toolset-1.18 'gofmt -s <code_path>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要简化代码的路径。
-
将
在 Red Hat Enterprise Linux 8 中:
gofmt -s <code_path>
$ gofmt -s <code_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要简化代码的路径。
-
将
在 Red Hat Enterprise Linux 9 中:
gofmt -s <code_path>
$ gofmt -s <code_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要简化代码的路径。
-
将
要应用这些更改,请运行:
在 Red Hat Enterprise Linux 7 上:
scl enable go-toolset-1.18 'gofmt -w <code_path>'
$ scl enable go-toolset-1.18 'gofmt -w <code_path>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要格式的代码的路径。
-
将
在 Red Hat Enterprise Linux 8 中:
gofmt -w <code_path>
$ gofmt -w <code_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要格式的代码的路径。
-
将
在 Red Hat Enterprise Linux 9 中:
gofmt -w <code_path>
$ gofmt -w <code_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要格式的代码的路径。
-
将
3.5. 重构代码 复制链接链接已复制到粘贴板!
您可以使用 gofmt 格式工具通过应用任意替换来重构代码。
流程
要在给定路径中重构您的代码,请运行:
在 Red Hat Enterprise Linux 7 上:
scl enable go-toolset-1.18 'gofmt -r <rewrite_rule> <code_path>'
$ scl enable go-toolset-1.18 'gofmt -r <rewrite_rule> <code_path>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要重构的代码的路径,将 <rewrite_rule> 替换为您要重写的规则。
-
将
在 Red Hat Enterprise Linux 8 中:
gofmt -r <rewrite_rule> <code_path>
$ gofmt -r <rewrite_rule> <code_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要重构的代码的路径,将 <rewrite_rule> 替换为您要重写的规则。
-
将
在 Red Hat Enterprise Linux 9 中:
gofmt -r <rewrite_rule> <code_path>
$ gofmt -r <rewrite_rule> <code_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要重构的代码的路径,将 <rewrite_rule> 替换为您要重写的规则。
-
将
要应用这些更改,请运行:
在 Red Hat Enterprise Linux 7 上:
scl enable go-toolset-1.18 'gofmt -w <code_path>'
$ scl enable go-toolset-1.18 'gofmt -w <code_path>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要格式的代码的路径。
-
将
在 Red Hat Enterprise Linux 8 中:
gofmt -w <code_path>
$ gofmt -w <code_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要格式的代码的路径。
-
将
在 Red Hat Enterprise Linux 9 中:
gofmt -w <code_path>
$ gofmt -w <code_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<code_path> 替换为您要格式的代码的路径。
-
将
第 4 章 Go 竞争条件 复制链接链接已复制到粘贴板!
Go Toolset 包括 Go race detector,这是用于查找竞争条件的 Go 标准库的工具。
请注意,竞争检测器具有显著的运行时资源开销。
4.1. 先决条件 复制链接链接已复制到粘贴板!
-
Go Toolset 已安装。
如需更多信息,请参阅安装 Go Toolset。
4.2. 使用 Go 竞争条件 复制链接链接已复制到粘贴板!
使用 Go 竞争条件检查您的代码。
流程
要使用竞争条件,请运行:
在 Red Hat Enterprise Linux 7 上:
scl enable go-toolset-1.18 'go build -race -o <output_file> <go_main_package>'
$ scl enable go-toolset-1.18 'go build -race -o <output_file> <go_main_package>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<output_file> 替换为可执行文件的名称,<go_main_package> 替换为您要测试的软件包的名称。
-
将
在 Red Hat Enterprise Linux 8 中:
go build -race -o <output_file> <go_main_package>
$ go build -race -o <output_file> <go_main_package>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<output_file> 替换为可执行文件的名称,<go_main_package> 替换为您要测试的软件包的名称。
-
将
在 Red Hat Enterprise Linux 9 中:
go build -race -o <output_file> <go_main_package>
$ go build -race -o <output_file> <go_main_package>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<output_file> 替换为可执行文件的名称,<go_main_package> 替换为您要测试的软件包的名称。
-
将
第 5 章 使用 Go Toolset 的容器镜像 复制链接链接已复制到粘贴板!
您可以从 Red Hat Enterprise Linux 容器镜像或 Red Hat Universal Base Images (UBI)构建自己的 Go Toolset 容器。
5.1. Red Hat Enterprise Linux Go Toolset 容器镜像内容 复制链接链接已复制到粘贴板!
Go Toolset 的 Red Hat Enterprise Linux 7、Red Hat Enterprise Linux 8 和 Red Hat Enterprise Linux 9 容器镜像包含以下软件包:
| 组件 | 版本 | 软件包 |
|---|---|---|
|
| 1.18 | RHEL 7 — go-toolset-1.18.4 RHEL 8 — go-toolset-1.18.4 RHEL 9 — go-toolset-1.18.4 |
5.2. 访问 Red Hat Enterprise Linux 容器镜像 复制链接链接已复制到粘贴板!
在运行容器并执行操作前,从红帽 registry 中拉取容器镜像。
流程
要拉取所需的镜像,请运行:
对于基于 Red Hat Enterprise Linux 7 的镜像:
podman pull registry.redhat.io/devtools/go-toolset-rhel7
# podman pull registry.redhat.io/devtools/go-toolset-rhel7Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于基于 Red Hat Enterprise Linux 8 的镜像:
podman pull registry.redhat.io/rhel8/go-toolset
# podman pull registry.redhat.io/rhel8/go-toolsetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于基于 Red Hat Enterprise Linux 9 的镜像:
podman pull registry.redhat.io/rhel9/go-toolset
# podman pull registry.redhat.io/rhel9/go-toolsetCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3. 访问 RHEL 8 上的 UBI Go Toolset 容器镜像 复制链接链接已复制到粘贴板!
在 RHEL 8 中,安装 UBI Go Toolset 容器镜像来访问 Go Toolset。
另外,您可以在 RHEL 8 基本 UBI 容器镜像中安装 Go Toolset。如需更多信息,请参阅 RHEL 8 上的基础 UBI 容器镜像访问 Go Toolset。
流程
要从 Red Hat registry 中拉取 UBI Go Toolset 容器镜像,请运行:
podman pull registry.access.redhat.com/ubi8/go-toolset
# podman pull registry.access.redhat.com/ubi8/go-toolset
5.4. 从 RHEL 8 的基本 UBI 容器镜像访问 Go Toolset 复制链接链接已复制到粘贴板!
在 RHEL 8 中,Go Toolset 软件包是 Red Hat Universal Base Images (UBI)存储库的一部分,这意味着您可以将 Go Toolset 作为基础 UBI 容器镜像的补充。要将容器镜像大小保持小,请只安装独立的软件包,而不是整个 Go Toolset。
或者,您可以安装 UBI Go Toolset 容器镜像来访问 Go Toolset。如需更多信息,请参阅在 RHEL 8 上访问 UBI Go Toolset 容器镜像。
先决条件
-
一个现有的 Containerfile。
有关创建 Containerfiles 的详情,请参考 Dockerfile 参考 页面。
流程
- 要创建包含 Go Toolset 的容器镜像,请在 Containerfile 中添加以下行:
FROM registry.access.redhat.com/ubi8/ubi:latest RUN yum module install -y go-toolset
FROM registry.access.redhat.com/ubi8/ubi:latest
RUN yum module install -y go-toolset
要创建仅包含单个软件包的容器镜像,请在 Containerfile 中添加以下行:
RUN yum install -y <package-name>
RUN yum install -y <package-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 <
package-name> 替换为您要安装的软件包的名称。
-
将 <
您可以使用 Go Toolset 容器镜像作为 Red Hat Enterprise Linux 7 上的 Source-to-Image (S2I)构建器镜像。
流程
-
将
IMPORT_URL变量设置为指定代码位置的 URL。 -
要构建 S2I 构建器镜像,请运行
s2i build命令。
如果主软件包位置与 IMPORT_URL 变量指定的位置不同,请将 INSTALL_URL 变量设置为 URL,用于指定构建时提供应用程序主可执行文件的软件包位置。
第 6 章 Go Toolset 中的更改 复制链接链接已复制到粘贴板!
Go Toolset 已从 RHEL 7、RHEL 8 和 RHEL 9 上的 1.17 版本更新至 1.18.4。
主要变更包括:
- 在保持与之前版本的 Go 的向后兼容性的同时引入一般性。
- 新的 fuzzing 库。
-
新的
debug/buildinfo和net/netip软件包。 -
go get工具不再构建或安装软件包。现在,它只会处理go.mod中的依赖项。 -
如果主模块的
go.mod文件指定了go 1.17或更高版本,则在没有指定任何参数的情况下运行go mod download命令只会下载主模块的go.mod文件中明确需要的模块的源代码。要下载用于传输依赖项的源代码,请使用go mod download all命令。 -
go mod vendor子命令现在支持-o选项来设置输出目录。 -
go mod tidy命令现在为需要其源代码的模块保留额外校验和的go.sum文件中,以验证构建列表中只有一个模块提供每个导入的软件包。这个更改不适用于主模块的go.mod文件中的 Go 版本。