[インデックス 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の後継)