Go 1.18.4 Toolset の使用
Go 1.18.4 Toolset のインストールおよび使用
概要
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 Go Toolset リンクのコピーリンクがクリップボードにコピーされました!
Go Toolset は、Red Hat Enterprise Linux (RHEL) の開発者向けの Red Hat 製品です。このツールセットは、Go プログラミング言語のツールとライブラリーを提供します。Go は golang とも呼ばれています。
Go Toolset は、Red Hat Developer Tools for Red Hat Enterprise Linux 7 の一部として配布されています。Go Toolset は、Red Hat Enterprise Linux 8 のモジュールとして利用できます。また、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 (リトルエンディアン)
- 64 ビット IBM Z
1.3. Red Hat Enterprise Linux 7 での Go Toolset へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
Go Toolset を Red Hat Enterprise Linux 7 にインストールするには、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 -
Pool 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 -
<pool ID from the subscription>は、直前の手順で特定したプール 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) に置き換えます。最も幅広い開発ツールにアクセスするには、
serverを使用します。
以下を実行して
rhel-variant-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 での LLVM 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 フォーマットツールを使用して、特定のパス内のコードをフォーマットできます。パスが 1 つのファイルである場合、変更はファイルにのみ適用されます。パスがディレクトリーである場合、ディレクトリー内のすべての .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 標準ライブラリーのツールである 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 コンテナーイメージへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
コンテナーを実行し、アクションを実行する前に、Red Hat レジストリーからコンテナーイメージをプルします。
手順
必要なイメージをプルするには、以下を実行します。
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 にアクセスします。
または、Go Toolset を RHEL8 ベースの UBI コンテナーイメージにインストールすることもできます。詳細は、RHEL 8 のベース UBI コンテナーイメージから Go Toolset にアクセスする を参照してください。
手順
Red Hat レジストリーから 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) リポジトリーの一部です。つまり、ベース UBI コンテナーイメージへの追加として Go Toolset をインストールできます。コンテナーイメージのサイズを小さくするには、Go Toolset 全体ではなく、個々のパッケージだけをインストールします。
または、UBI Go Toolset コンテナーイメージをインストールして、Go Toolset にアクセスすることもできます。詳細は、RHEL 8 での UBI Go Toolset コンテナーイメージへのアクセス を参照してください。
前提条件
-
既存の Containerfile がある。
Containerfile 作成の詳細は、Dockerfile reference ページを参照してください。
手順
- 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>は、インストールするパッケージの名前に置き換えます。
-
5.5. Red Hat Enterprise Linux 7 で Source-to-Image ビルダーイメージとしてコンテナーイメージを使用する リンクのコピーリンクがクリップボードにコピーされました!
Go Toolset コンテナーイメージは、Red Hat Enterprise Linux 7 の Source-to-Image (S2I) ビルダーイメージとして使用できます。
手順
-
IMPORT_URL変数を、コードの場所を指定する URL に設定します。 -
s2i buildコマンドを実行して、S2I ビルダーイメージをビルドします。
メインパッケージの場所が 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コマンドが、インポートされた各パッケージを提供しているビルドリスト内のモジュールが 1 つだけであることを確認するためにソースコードが必要なモジュールの追加のチェックサムをgo.sumファイルに保持するようになりました。この変更は、メインモジュールのgo.modファイルの Go バージョンに左右されません。