[インデックス 17699] ファイルの概要
このコミットは、Goの公式ドキュメントである doc/install-source.html に、go.tools リポジトリに含まれる追加ツールのインストール方法に関する説明を追加するものです。具体的には、godoc などのツールを go get コマンドを使ってインストールする手順が記載されています。
コミット
commit b3caa86f91a22f1aa31ac6a6cabf3a5e88751940
Author: Andrew Gerrand <adg@golang.org>
Date: Wed Sep 25 14:10:49 2013 +1000
doc: document installation of go.tools commands
Fixes #5663.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/13891043
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/b3caa86f91a22f1aa31ac6a6cabf3a5e88751940
元コミット内容
doc: document installation of go.tools commands
Fixes #5663.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/13891043
変更の背景
このコミットは、GoのIssue #5663を修正するために行われました。当時のGoのドキュメントでは、Go本体のインストール方法については詳しく説明されていましたが、godoc のようなGoエコシステムで広く利用されている重要なツール群(これらは go.tools リポジトリで管理されていました)のインストール方法については、明確な記述が不足していました。
ユーザーがGoをインストールした後、これらの追加ツールをどのように入手し、利用開始すればよいかという点で混乱が生じる可能性がありました。特に、go get コマンドの利用方法や、GOPATH の設定がこれらのツールのインストールに必要であるという点が、新規ユーザーにとっては分かりにくいポイントでした。このコミットは、このような情報不足を解消し、ユーザーがGo開発環境をよりスムーズにセットアップできるようにすることを目的としています。
前提知識の解説
このコミットの変更内容を理解するためには、以下のGo言語に関する基本的な概念を理解しておく必要があります。
-
go getコマンド:go getは、Go言語のパッケージやコマンドをリモートリポジトリからダウンロードし、ビルドしてインストールするためのコマンドです。これはGoのモジュール管理システムの一部であり、依存関係の解決と取得を自動化します。go getは、指定されたURL(通常はバージョン管理システムのURL)からソースコードを取得し、GOPATH内の適切な場所に配置し、必要に応じてビルドを行います。 -
GOPATH環境変数:GOPATHは、Goのワークスペースのルートディレクトリを指定する環境変数です。Go 1.11以降のGo Modulesの導入により、GOPATHの役割は以前よりも限定的になりましたが、このコミットが作成された2013年当時は、Goのソースコード、パッケージ、実行可能ファイルが配置される中心的な場所として非常に重要でした。GOPATHディレクトリ構造は通常、以下のようになります。src: ソースコードが配置されます。go getで取得した外部パッケージもここにダウンロードされます。pkg: コンパイル済みのパッケージオブジェクトが配置されます。bin:go installやgo getでビルドされた実行可能ファイルが配置されます。
-
go.toolsリポジトリ:go.toolsは、Go言語の公式ツール群をホストしていたGoogle Code上のリポジトリです(現在はGitHubのgolang/toolsに移行しています)。godoc(Goのソースコードからドキュメントを生成・表示するツール) やgoimports(Goのimport文を自動的に整理するツール) など、Go開発を支援する多くの便利なツールが含まれていました。これらのツールはGo本体とは別に開発・配布されていました。 -
Mercurial (Hg): Mercurialは、Gitと同様の分散型バージョン管理システムです。このコミットが作成された当時、GoプロジェクトはMercurialを使用してソースコードを管理していました。
go getコマンドは、リポジトリからソースコードを取得するために、そのリポジトリが使用しているバージョン管理システム(Git、Mercurialなど)がローカルにインストールされていることを要求します。したがって、go.toolsリポジトリがMercurialでホストされていたため、go getでそれらのツールをインストールするにはMercurialがシステムにインストールされている必要がありました。
技術的詳細
このコミットは、Goの公式ドキュメントである doc/install-source.html に、go.tools リポジトリからの追加ツールのインストール手順を追記するものです。
追加されたセクションは <h2 id="tools">Install additional tools</h2> という見出しで始まります。
-
go.toolsリポジトリの紹介:godocを含むいくつかのGoツールがhttps://code.google.com/p/go.toolsにあることが説明されています。 -
全ツールのインストール方法:
go get code.google.com/p/go.tools/cmd/...というコマンドが提示されています。このコマンドは、go.toolsリポジトリ内のcmdディレクトリ以下にあるすべてのコマンド(実行可能ファイルとしてビルドされるもの)を再帰的に取得し、インストールすることを意味します。...はワイルドカードとして機能し、指定されたパス以下のすべてのサブパッケージやコマンドを対象とします。 -
特定ツールのインストール方法:
go get code.google.com/p/go.tools/cmd/godocのように、特定のコマンド(例:godoc)のみをインストールする方法も示されています。これにより、ユーザーは必要なツールだけを選択してインストールできます。 -
前提条件の明記:
- Mercurialのインストール:
go getコマンドがこれらのツールをインストールするためには、ローカルにMercurialがインストールされている必要があることが明記されています。これは、当時のgo.toolsリポジトリがMercurialで管理されていたためです。 GOPATHの設定: ユーザーがGOPATHを設定している必要があることも強調されています。go getは取得したソースコードやビルドされたバイナリをGOPATH内に配置するため、これが正しく設定されていないとインストールが機能しません。ドキュメントの別のセクションである「How to Write Go Code」へのリンクも提供されており、GOPATHの詳細な設定方法を参照できるようになっています。
- Mercurialのインストール:
この変更により、Goのインストール手順がより包括的になり、ユーザーがGo開発に必要な基本的なツール群を容易にセットアップできるようになりました。
コアとなるコードの変更箇所
変更は doc/install-source.html ファイルに対して行われています。
--- a/doc/install-source.html
+++ b/doc/install-source.html
@@ -220,6 +220,36 @@ The document <a href="/doc/code.html">How to Write Go Code</a> explains how to
set up a work environment in which to build and test Go code.
</p>
+<h2 id="tools">Install additional tools</h2>
+<p>
+The source code for seeral Go tools (including <a href="/cmd/godoc/">godoc</a>)
+is kept in <a href="https://code.google.com/p/go.tools">the go.tools repository</a>.
+To install all of them, run the <code>go</code> <code>get</code> command:
+</p>
+<pre>
+$ go get code.google.com/p/go.tools/cmd/...
+</pre>
+<p>
+Or if you just want to install a specific command (<code>godoc</code> in this case):
+</p>
+<pre>
+$ go get code.google.com/p/go.tools/cmd/godoc
+</pre>
+<p>
+To install these tools, the <code>go</code> <code>get</code> command requires
+that <a href="#mercurial">Mercurial</a> be installed locally.
+</p>
+<p>
+You must also have a workspace (<code>GOPATH</code>) set up;
+see <a href="/doc/code.html">How to Write Go Code</a> for the details.
+</p>
+<h2 id="community">Community resources</h2>
コアとなるコードの解説
追加されたHTMLスニペットは、Goのインストールガイドに新しいセクションを挿入しています。
<h2 id="tools">Install additional tools</h2>: 「追加ツールのインストール」という新しいセクション見出しを定義しています。id="tools"は、このセクションへの内部リンクを可能にします。- 最初の
<p>タグでは、godocを含むGoツールがgo.toolsリポジトリに存在することを説明し、そのリポジトリへのリンクを提供しています。また、godocコマンド自体へのリンクも含まれています。 <pre>タグで囲まれたブロックは、シェルコマンドの例を示しています。$ go get code.google.com/p/go.tools/cmd/...:go.toolsリポジトリ内のすべてのコマンドをインストールするためのコマンドです。$ go get code.google.com/p/go.tools/cmd/godoc: 特定のコマンド(この場合はgodoc)のみをインストールするためのコマンドです。
- 次の
<p>タグでは、go getコマンドがこれらのツールをインストールするためにMercurialがローカルにインストールされている必要があることを説明しています。#mercurialへのリンクは、ドキュメント内のMercurialに関する既存のセクションを指しています。 - 最後の
<p>タグでは、GOPATHワークスペースが設定されている必要があることを強調し、GOPATHの詳細な設定方法が記載されている「How to Write Go Code」ドキュメントへのリンクを提供しています。
この追加により、Goの公式インストールガイドがより完全なものとなり、ユーザーがGo開発環境をセットアップする際の障壁が低減されました。
関連リンク
- Go言語公式サイト: https://go.dev/
- Go Modules (現在のGoの依存管理): https://go.dev/blog/go-modules
go getコマンドのドキュメント: https://go.dev/cmd/go/#hdr-Download_and_install_packages_and_dependenciesGOPATHのドキュメント (Go 1.11以前の文脈): https://go.dev/doc/code (現在のドキュメントではGo Modulesが推奨されていますが、当時の文脈を理解する上で参考になります)
参考にした情報源リンク
- Go言語の公式ドキュメント (当時のバージョン):
doc/install-source.htmlおよびdoc/code.htmlの内容 - Go言語のIssueトラッカー: Issue #5663 (ただし、検索では詳細が見つからなかったため、コミットメッセージからの推測が主)
- Go言語の歴史とツールに関する一般的な知識
- Mercurial 公式サイト: https://www.mercurial-scm.org/
- Google Code Archive (go.toolsリポジトリの当時のURL): https://code.google.com/p/go.tools (現在はアーカイブされており、GitHubに移行しています)
- golang/tools GitHubリポジトリ: https://github.com/golang/tools (go.toolsの後継)