Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

[インデックス 17893] ファイルの概要

このコミットは、Go言語の公式ドキュメントにおけるインストール手順の更新に関するものです。具体的には、GOROOT環境変数の設定に関する説明を明確化し、カスタムインストールパスを使用する場合にのみ設定が必要であることを強調しています。また、バイナリ配布ページからNetBSDの記述を削除し、インストール手順から「What's next」のリンクを削除しています。さらに、「How to Write Go Code」ページへの誘導をより目立つように変更しています。

コミット

commit c497c9ea4bbe90833ee0bb8660fe91b8f17adee7
Author: Andrew Gerrand <adg@golang.org>
Date:   Thu Nov 21 07:55:29 2013 +1100

    doc: update installation instructions
    
    Clarify that GOROOT should only be set when using a custom install path.
    Remove NetBSD from binary install page (we don't provide binaries).
    Remove "What's next" links from installation instructions.
    Emphasize "How to Write Go Code" page.
    
    Fixes #6613.
    
    R=golang-dev, r
    CC=golang-dev
    https://golang.org/cl/28700043

GitHub上でのコミットページへのリンク

https://github.com/golang/go/commit/c497c9ea4bbe90833ee0bb8660fe91b8f17adee7

元コミット内容

このコミットの目的は、Go言語のインストール手順に関するドキュメントを更新することです。主な変更点は以下の通りです。

  • GOROOTの設定に関する明確化: GOROOT環境変数は、Goをデフォルト以外のパスにインストールした場合にのみ設定する必要があることを明確にしています。
  • NetBSDの削除: バイナリ配布ページからNetBSDの記述を削除しています。これは、GoチームがNetBSD向けのバイナリを提供していないためです。
  • 「What's next」リンクの削除: インストール手順の最後にあった「What's next」セクションへのリンクを削除しています。
  • 「How to Write Go Code」ページの強調: Goのツールを使い始めるための「How to Write Go Code」ドキュメントへの誘導をより目立つように変更しています。
  • 関連するIssueの修正: Issue #6613を修正しています。

変更の背景

このコミットが行われた背景には、当時のGo言語のインストール手順に関するユーザーの混乱があったと考えられます。特にGOROOT環境変数の設定は、Goのインストールパスがデフォルト(/usr/local/goc:\Go)である場合とそうでない場合で扱いが異なり、多くの新規ユーザーが不必要にGOROOTを設定してしまい、問題を引き起こすことがありました。このコミットは、その混乱を解消し、より明確で誤解の少ないインストールガイドを提供することを目的としています。

また、NetBSD向けの公式バイナリが提供されていないにもかかわらず、ドキュメントにその記述が残っていたため、ユーザーが誤解する可能性がありました。これを削除することで、ドキュメントの正確性を向上させています。

さらに、「How to Write Go Code」はGo開発を始める上で非常に重要なドキュメントであり、その重要性をより強調することで、新規ユーザーがスムーズにGoの開発環境を構築し、最初のコードを書き始めることができるように意図されています。

前提知識の解説

Go言語のインストールと環境変数

Go言語をシステムにインストールする際、いくつかの重要な環境変数が関連します。

  • GOROOT: GoのSDKがインストールされているルートディレクトリを指します。通常、Goをデフォルトのパス(例: Linux/macOSでは/usr/local/go、Windowsではc:\Go)にインストールした場合、この変数を明示的に設定する必要はありません。Goツールはデフォルトの場所を自動的に検出します。しかし、Goをカスタムの場所にインストールした場合(例: $HOME/go)、GoツールがSDKを見つけられるようにGOROOTをそのカスタムパスに設定する必要があります。このコミットは、この点を明確にすることを目的としています。
  • GOPATH: Go 1.11以前のバージョンでは、Goのソースコード、パッケージ、実行可能ファイルが配置されるワークスペースのルートディレクトリを指していました。Go 1.11でGo Modulesが導入されてからは、GOPATHの役割は大きく変わり、モジュールを使用するプロジェクトでは通常、GOPATH内にプロジェクトを配置する必要がなくなりました。しかし、このコミットが作成された2013年時点では、GOPATHはGo開発における中心的な概念であり、「How to Write Go Code」ドキュメントでその設定方法が詳しく説明されていました。
  • PATH: オペレーティングシステムが実行可能ファイルを探すディレクトリのリストです。Goのインストール後、$GOROOT/bin(または$GOPATH/bin、Go Modules導入後は$HOME/go/binなど)をPATHに追加することで、goコマンドやその他のGoツールをどこからでも実行できるようになります。

Goのドキュメント構造

Goの公式ドキュメントは、Go言語のウェブサイト(golang.org)上で提供されており、HTML形式で構成されています。これらのドキュメントは、Goのインストール方法、言語仕様、標準ライブラリのAPIリファレンス、チュートリアル、ベストプラクティスなど、Go開発に必要なあらゆる情報を提供しています。

  • doc/install.html: Goのインストール手順に関する主要なドキュメント。
  • doc/install-source.html: ソースコードからGoをビルドしてインストールする手順に関するドキュメント。
  • doc/code.html: 「How to Write Go Code」ドキュメント。Goのワークスペース設定、パッケージの作成、goコマンドの基本的な使い方など、Go開発の基礎を説明しています。

Issueトラッカー

Goプロジェクトは、バグ報告や機能リクエストのためにIssueトラッカー(当時はGoogle CodeのIssueトラッカー、現在はGitHub Issues)を使用しています。Fixes #6613という記述は、このコミットがIssue 6613で報告された問題を解決したことを意味します。

技術的詳細

このコミットは、主にGoの公式ドキュメントのHTMLファイルを修正しています。

  1. doc/code.htmlの変更:

    • id="more"の見出しをid="next"に変更し、「What's next」セクションを導入しています。
    • golang-announceメーリングリストへの購読を促す記述を追加しています。
    • 「Getting help」セクションを新設し、Freenode IRCの#go-nutsチャンネル、golang-nutsメーリングリスト、Go issue trackerへのリンクをまとめています。
    • 以前の「Further reading」セクションにあった「Effective Go」や「documentation page」へのリンクはそのまま残されています。
  2. doc/install-source.htmlの変更:

    • 「Set up your work environment」セクションにおいて、「How to Write Go Code」ドキュメントへのリンクをより視覚的に強調するデザイン(downloadクラスとbig/descスパン)に変更しています。
    • 「essential setup instructions」という文言を追加し、このドキュメントの重要性を強調しています。
  3. doc/install.htmlの変更:

    • NetBSDの削除: バイナリ配布が利用可能なOSのリストからNetBSDを削除しています。
    • GOROOTの説明の明確化:
      • 以前は「Go binary distributions assume they will be installed in /usr/local/go... but it is possible to install them in a different location. If you do this, you will need to set the GOROOT environment variable...」という説明が、インストール手順の冒頭にありました。
      • 変更後、「Installing to a custom location」という新しいサブセクションを設け、その中でGOROOTの設定が必要なのはカスタムインストールの場合のみであること、そしてGOROOTはカスタムインストールの場合にのみ設定すべきであるという「Note」を強調して追加しています。これにより、デフォルトパスにインストールするユーザーが誤ってGOROOTを設定してしまうことを防ぎます。
    • Windowsインストールの説明順序の変更: MSIインストーラーの説明をZipアーカイブの説明よりも前に配置し、MSIインストーラーが推奨されるインストール方法であることを示唆しています。
    • 「What's next」セクションの削除: doc/code.htmlに移動したため、doc/install.htmlからこのセクションを完全に削除しています。
    • 「Set up your work environment」セクションの強調: doc/install-source.htmlと同様に、「How to Write Go Code」へのリンクを視覚的に強調し、その重要性を強調しています。
    • 「Getting help」セクションの追加: doc/code.htmlと同様のヘルプ情報(IRC、メーリングリスト、Issueトラッカー)をdoc/install.htmlにも追加しています。

これらの変更は、ユーザーがGoをインストールし、開発環境をセットアップする際の混乱を減らし、よりスムーズな体験を提供することを目的としています。

コアとなるコードの変更箇所

doc/install.htmlにおけるGOROOT説明の変更

--- a/doc/install.html
+++ b/doc/install.html
@@ -125,11 +98,36 @@ variable. You can do this by adding this line to your <code>/etc/profile</code>
 export PATH=$PATH:/usr/local/go/bin
 </pre>
 
+<h4 id=\"tarball_non_standard\">Installing to a custom location</h3>
+
+<p>
+The Go binary distributions assume they will be installed in
+<code>/usr/local/go</code> (or <code>c:\\Go</code> under Windows),
+but it is possible to install the Go tools to a different location. 
+In this case you must set the <code>GOROOT</code> environment variable
+to point to the directory in which it was installed.
+</p>
+
+<p>
+For example, if you installed Go to your home directory you should add the
+following commands to <code>$HOME/.profile</code>:
+</p>
+
+<pre>
+export GOROOT=$HOME/go
+export PATH=$PATH:$GOROOT/bin
+</pre>
+
+<p>
+<b>Note</b>: <code>GOROOT</code> must be set only when installing to a custom
+location.
+</p>
+
 <h3 id=\"osx\">Mac OS X package installer</h3>
 
 <p>
-Open the <a href=\"http://code.google.com/p/go/downloads/list?q=OpSys-OSX+Type-Installer\">package file</a>
-and follow the prompts to install the Go tools.\nThe package installs the Go distribution to <code>/usr/local/go</code>.
+<a href=\"http://code.google.com/p/go/downloads/list?q=OpSys-OSX+Type-Installer\">Download the package file</a>,
+open it, and follow the prompts to install the Go tools.\nThe package installs the Go distribution to <code>/usr/local/go</code>.
 </p>

doc/install.htmlにおけるNetBSDの削除

--- a/doc/install.html
+++ b/doc/install.html
@@ -53,7 +48,6 @@ proceeding. If your OS or architecture is not on the list, it\'s possible that
 <tr><td>Linux 2.6.23 or later with glibc</td> <td>amd64, 386, arm</td> <td>CentOS/RHEL 5.x not supported; no binary distribution for ARM yet</td></tr>
 <tr><td>Mac OS X 10.6 or later</td> <td>amd64, 386</td> <td>use the gcc<sup>&#8224;</sup> that comes with Xcode<sup>&#8225;</sup></td></tr>
 <tr><td>Windows 2000 or later</td> <td>amd64, 386</td> <td>use mingw gcc<sup>&#8224;</sup>; cygwin or msys is not needed</td></tr>
-<tr><td>NetBSD 6 or later</td> <td>amd64, 386</td> <td></td></tr>
 </table>

doc/install-source.htmlおよびdoc/install.htmlにおける「How to Write Go Code」の強調

--- a/doc/install-source.html
+++ b/doc/install-source.html
@@ -216,10 +216,23 @@ If you see the \"hello, world\" message then Go is installed correctly.\n <h2 id=\"gopath\">Set up your work environment</h2>\n \n <p>\n-The document <a href=\"/doc/code.html\">How to Write Go Code</a> explains how to\n-set up a work environment in which to build and test Go code.\n+You\'re almost done.\n+You just need to do a little more setup.\n </p>\n \n+<p>\n+<a href=\"/doc/code.html\" class=\"download\" id=\"start\">\n+<span class=\"big\">How to Write Go Code</span>\n+<span class=\"desc\">Learn how to set up and use the Go tools</span>\n+</a>\n+</p>\n+\n+<p>\n+The <a href=\"/doc/code.html\">How to Write Go Code</a> document \n+provides <b>essential setup instructions</b> for using the Go tools.\n+</p>\n+\n+\n <h2 id=\"tools\">Install additional tools</h2>\n \n <p>\n```

## コアとなるコードの解説

上記の変更箇所は、Goのインストールと初期設定に関するユーザーエクスペリエンスを向上させるためのものです。

*   **`GOROOT`説明の変更**: 以前は`GOROOT`に関する説明がインストール手順の早い段階で、かつやや曖昧に記述されていました。この変更により、「Installing to a custom location」という専用のセクションが設けられ、`GOROOT`が**カスタムインストールの場合にのみ**設定されるべきであるという重要な注意書きが追加されました。これにより、多くの新規ユーザーが陥りがちだった`GOROOT`の誤設定を防ぎ、混乱を軽減します。

*   **NetBSDの削除**: `doc/install.html`からNetBSDの行が削除されたのは、GoチームがNetBSD向けの公式バイナリを提供していないためです。これにより、ドキュメントの正確性が保たれ、ユーザーが利用できないバイナリを探す無駄な時間を省くことができます。

*   **「How to Write Go Code」の強調**: `doc/install-source.html`と`doc/install.html`の両方で、「How to Write Go Code」ドキュメントへのリンクがより大きく、目立つように変更されました。これは、Goのインストール後に開発環境をセットアップする上でこのドキュメントが非常に重要であるため、ユーザーがこれを見落とさないようにするための配慮です。特に、`class="download"`や`<span>`タグを用いたスタイリングは、クリックを促す視覚的な効果を狙っています。

これらの変更は、Goのドキュメントがより正確で、分かりやすく、新規ユーザーにとって親切なものになるようにという意図が込められています。

## 関連リンク

*   Go言語公式サイト: [https://golang.org/](https://golang.org/)
*   Go issue tracker: [http://code.google.com/p/go/issues/list](http://code.google.com/p/go/issues/list) (当時のリンク。現在はGitHub Issuesに移行)
*   golang-announceメーリングリスト: [http://groups.google.com/group/golang-announce](http://groups.google.com/group/golang-announce)
*   Go Nutsメーリングリスト: [http://groups.google.com/group/golang-nuts](http://groups.google.com/group/golang-nuts)
*   Freenode IRC: [http://freenode.net/](http://freenode.net/) (当時のIRCサーバー)
*   Go Downloads: [http://code.google.com/p/go/downloads](http://code.google.com/p/go/downloads) (当時のダウンロードページ)

## 参考にした情報源リンク

*   Go言語の公式ドキュメント (コミット当時のバージョンを想定)
*   Go言語の環境変数に関する一般的な情報
*   Go Modules導入以前の`GOPATH`に関する情報
*   Issue 6613に関する情報 (公開されている場合)
*   Go言語の歴史とドキュメントの変遷に関する一般的な知識