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

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

このコミットは、Go言語の公式インストールガイドである doc/install.html に、Goのアンインストール手順を追加するものです。既存のGoのアップグレード手順の一部として、古いバージョンのGoを削除する方法が簡潔に記述されていましたが、このコミットにより、より詳細で独立したアンインストールセクションが設けられました。これにより、ユーザーはGoのインストールだけでなく、クリーンなアンインストール方法についても公式ドキュメントで確認できるようになります。

コミット

commit f43b6d470eea1618b3ead2e1e21612b6d22730e1
Author: Andrew Gerrand <adg@golang.org>
Date:   Mon Sep 16 11:20:07 2013 +1000

    doc: add uninstallation instructions
    
    Fixes #5821.
    
    R=golang-dev, kamil.kisiel
    CC=golang-dev
    https://golang.org/cl/13720043

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

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

元コミット内容

doc: add uninstallation instructions

Fixes #5821.

R=golang-dev, kamil.kisiel
CC=golang-dev
https://golang.org/cl/13720043

変更の背景

この変更の背景には、Go言語のインストールガイドが提供されている一方で、そのアンインストール方法に関する明確な指示が不足していたという問題があります。コミットメッセージにある Fixes #5821 は、GoのIssueトラッカーにおける特定の課題(Issue 5821)を解決することを示唆しています。

Issue 5821は、「doc: add uninstallation instructions to install.html」というタイトルで、install.html にアンインストール手順を追加する要望でした。ユーザーがGoをアップグレードする際や、単にシステムからGoを削除したい場合に、公式ドキュメントにその手順が明記されていないため、混乱や不便が生じていました。特に、Goのインストールは単にバイナリを配置するだけでなく、PATH 環境変数の設定なども伴うため、クリーンなアンインストールにはこれらの設定の解除も必要となります。

このコミットは、ユーザーエクスペリエンスの向上と、ドキュメントの完全性を目指して行われました。これにより、ユーザーはGoのライフサイクル全体(インストールからアンインストールまで)を公式ドキュメントでカバーできるようになります。

前提知識の解説

このコミットの変更内容を理解するためには、以下の前提知識が必要です。

  • Go言語のインストール方法: Go言語は、通常、バイナリアーカイブをダウンロードし、特定のディレクトリ(例: /usr/local/goc:\Go)に展開し、そのGoのバイナリが格納されているディレクトリ(例: /usr/local/go/binc:\Go\bin)をシステムの PATH 環境変数に追加することでインストールされます。WindowsではMSIインストーラーも提供されています。
  • GOROOT 環境変数: Goのインストールディレクトリを指す環境変数です。Go 1.8以降では、GOROOT を明示的に設定する必要はほとんどありませんが、それ以前のバージョンや特定の状況では重要でした。
  • PATH 環境変数: オペレーティングシステムが実行可能ファイルを探すディレクトリのリストを定義する環境変数です。Goのコマンド(gogofmt など)を実行可能にするために、Goの bin ディレクトリが PATH に追加されます。
  • HTMLドキュメント: doc/install.html はHTML形式のドキュメントであり、ウェブブラウザで閲覧されることを想定しています。変更はHTMLタグとテキストの追加・修正によって行われます。
  • Unix系システムにおけるファイルパス: Linux、macOS、FreeBSDなどのUnix系システムでは、ファイルパスは / で区切られ、ルートディレクトリは / です。/usr/local/go は一般的なGoのインストールパスです。
  • Windows系システムにおけるファイルパス: Windowsでは、ファイルパスは \ で区切られ、ドライブレター(例: c:)から始まります。c:\Go は一般的なGoのインストールパスです。
  • プロファイルファイル: Unix系システムでは、ユーザーの環境変数を設定するために ~/.profile/etc/profile などのファイルが使用されます。これらはシェルが起動する際に読み込まれます。
  • macOSの paths.d: macOSでは、PATH 環境変数を設定する別の方法として /etc/paths.d/ ディレクトリがあります。このディレクトリ内のファイルにパスを記述することで、システム全体の PATH に追加されます。
  • rm -r コマンド: Unix系システムでディレクトリとその内容を再帰的に削除するためのコマンドです。
  • MSIインストーラー: Microsoft Windows Installerの略で、Windowsアプリケーションのインストール、メンテナンス、削除を行うためのパッケージ形式です。

技術的詳細

このコミットは、doc/install.html ファイルに対して以下の主要な変更を加えています。

  1. 既存のアップグレード手順の簡素化:

    • 変更前は、Goのアップグレード時に既存のバージョンを削除するための具体的なコマンド rm -r /usr/local/go が直接記述されていました。
    • 変更後は、この具体的なコマンドを削除し、代わりに「既存のバージョンを削除する」というリンク(<a href="#uninstall">remove the existing version</a>)に置き換えられました。これにより、アンインストール手順の詳細が新しい専用セクションに集約され、ドキュメントの重複が避けられ、保守性が向上しました。
  2. Windows MSIインストーラーの記述変更:

    • 変更前は、Windows向けのMSIインストーラーが「experimental (実験的)」と記述されていました。
    • 変更後は、「experimental」の記述が削除され、MSIインストーラーが安定したインストールオプションとして扱われるようになったことを示唆しています。これは、MSIインストーラーの成熟度と信頼性が向上した結果と考えられます。
  3. 新しいアンインストールセクションの追加:

    • <h2>Uninstalling Go</h2> という新しい見出しが追加され、Goのアンインストールに関する独立したセクションが設けられました。
    • このセクションでは、Goのインストールディレクトリを削除すること(Linux, macOS, FreeBSDでは /usr/local/go、Windowsでは c:\Go)が明確に指示されています。
    • さらに、PATH 環境変数からGoの bin ディレクトリを削除する方法についても詳細なガイダンスが提供されています。
      • LinuxおよびFreeBSDユーザー向けには、/etc/profile または $HOME/.profile の編集が推奨されています。
      • macOSユーザー向けには、Goパッケージでインストールした場合の /etc/paths.d/go ファイルの削除が指示されています。
      • Windowsユーザー向けには、環境変数の設定に関する既存のセクションへの参照が提供されています。

これらの変更により、Goのインストールとアンインストールに関するドキュメントがより体系的になり、ユーザーがGoの管理をより容易に行えるようになりました。特に、アンインストール手順が明確になったことで、システムをクリーンに保つための情報が提供され、ユーザーの利便性が向上しています。

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

--- a/doc/install.html
+++ b/doc/install.html
@@ -94,12 +94,7 @@ environment variables under Windows</a>.
 
 <p>
 If you are upgrading from an older version of Go you must
-first remove the existing version from <code>/usr/local/go</code>:
-</p>
-
-<pre>
-rm -r /usr/local/go
-</pre>
+first <a href="#uninstall">remove the existing version</a>.
 
 <p>
 Extract <a href="http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+OR+OpSys-NetBSD+Type-Archive">the archive</a>
@@ -150,7 +145,7 @@ Terminal sessions for the change to take effect.\n The Go project provides two installation options for Windows users\n (besides <a href="/doc/install/source">installing from source</a>):\n a zip archive that requires you to set some environment variables and an\n-experimental MSI installer that configures your installation automatically.\n+MSI installer that configures your installation automatically.\n </p>\n \n <h4 id=\"windows_zip\">Zip archive</h4>\n@@ -169,7 +164,7 @@ the <code>GOROOT</code> environment variable to your chosen path.\n Add the <code>bin</code> subdirectory of your Go root (for example, <code>c:\\Go\\bin</code>) to your <code>PATH</code> environment variable.\n </p>\n \n-<h4 id=\"windows_msi\">MSI installer (experimental)</h4>\n+<h4 id=\"windows_msi\">MSI installer</h4>\n \n <p>\n Open the <a href="http://code.google.com/p/go/downloads/list?q=OpSys-Windows+Type%3DInstaller">MSI file</a>\n@@ -275,3 +270,26 @@ The official mailing list for discussion of the Go language is\n Bugs should be reported using the\n <a href="http://code.google.com/p/go/issues/list\">Go issue tracker</a>.\n </p>\n+\n+\n+<h2 id=\"uninstall\">Uninstalling Go</h2>\n+\n+<p>\n+To remove an existing Go installation from your system delete the\n+<code>go</code> directory. This is usually <code>/usr/local/go</code>\n+under Linux, Mac OS X, and FreeBSD or <code>c:\\Go</code>\n+under Windows.\n+</p>\n+\n+<p>\n+You should also remove the Go <code>bin</code> directory from your\n+<code>PATH</code> environment variable.\n+Under Linux and FreeBSD you should edit <code>/etc/profile</code> or\n+<code>$HOME/.profile</code>.\n+If you installed Go with the <a href=\"#osx\">Mac OS X package</a> then you\n+should remove the <code>/etc/paths.d/go</code> file.\n+Windows users should read the section about <a href=\"#windows_env\">setting\n+environment variables under Windows</a>.\n+</p>\n+\n+\n```

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

このdiffは、`doc/install.html` ファイルに対する変更を示しています。

1.  **行 94-99 の変更**:
    *   `- first remove the existing version from <code>/usr/local/go</code>:`
    *   `- </p>`
    *   `- <pre>`
    *   `- rm -r /usr/local/go`
    *   `- </pre>`
    *   これらの行は、Goのアップグレード時に既存のGoを削除するための具体的なコマンド (`rm -r /usr/local/go`) とその説明を削除しています。これは、アンインストール手順を新しい専用セクションに移動させるための準備です。
    *   `+ first <a href="#uninstall">remove the existing version</a>.`
    *   この行は、削除された内容の代わりに、新しく追加される「Uninstalling Go」セクションへの内部リンク (`#uninstall`) を挿入しています。これにより、ユーザーはアップグレード時にアンインストール手順の詳細を参照できるようになります。

2.  **行 150-151 の変更**:
    *   `-experimental MSI installer that configures your installation automatically.`
    *   この行は、Windows向けのMSIインストーラーが「experimental (実験的)」であるという記述を削除しています。これは、MSIインストーラーがより安定した状態になったことを反映しています。
    *   `+MSI installer that configures your installation automatically.`
    *   「experimental」の記述がなくなったバージョンです。

3.  **行 169-170 の変更**:
    *   `- <h4 id="windows_msi">MSI installer (experimental)</h4>`
    *   この行は、Windows MSIインストーラーのセクション見出しから「(experimental)」という記述を削除しています。
    *   `+ <h4 id="windows_msi">MSI installer</h4>`
    *   「(experimental)」が削除された見出しです。

4.  **行 275-300 の追加**:
    *   `+ <h2 id="uninstall">Uninstalling Go</h2>`
    *   `+`
    *   `+ <p>`
    *   `+ To remove an existing Go installation from your system delete the`
    *   `+ <code>go</code> directory. This is usually <code>/usr/local/go</code>`
    *   `+ under Linux, Mac OS X, and FreeBSD or <code>c:\Go</code>`
    *   `+ under Windows.`
    *   `+ </p>`
    *   `+`
    *   `+ <p>`
    *   `+ You should also remove the Go <code>bin</code> directory from your`
    *   `+ <code>PATH</code> environment variable.`
    *   `+ Under Linux and FreeBSD you should edit <code>/etc/profile</code> or`
    *   `+ <code>$HOME/.profile</code>.`
    *   `+ If you installed Go with the <a href="#osx">Mac OS X package</a> then you`
    *   `+ should remove the <code>/etc/paths.d/go</code> file.`
    *   `+ Windows users should read the section about <a href="#windows_env">setting`
    *   `+ environment variables under Windows</a>.`
    *   `+ </p>`
    *   `+`
    *   `+`
    *   これらの行は、Goのアンインストールに関する新しいセクションを丸ごと追加しています。
        *   まず、Goのインストールディレクトリ(例: `/usr/local/go` や `c:\Go`)を削除するよう指示しています。
        *   次に、`PATH` 環境変数からGoの `bin` ディレクトリを削除する方法を、OSごとに具体的に説明しています。Linux/FreeBSDユーザーにはプロファイルファイルの編集、macOSユーザーには `/etc/paths.d/go` ファイルの削除、Windowsユーザーには既存の環境変数設定セクションへの参照を促しています。

これらの変更は、Goのドキュメントの構造を改善し、ユーザーがGoのインストールとアンインストールに関する必要な情報をより簡単に見つけられるようにすることを目的としています。

## 関連リンク

*   GitHubコミットページ: [https://github.com/golang/go/commit/f43b6d470eea1618b3ead2e1e21612b6d22730e1](https://github.com/golang/go/commit/f43b6d470eea1618b3ead2e1e21612b6d22730e1)
*   Go Code Review (CL): [https://golang.org/cl/13720043](https://golang.org/cl/13720043)
*   Go Issue 5821: [https://code.google.com/p/go/issues/detail?id=5821](https://code.google.com/p/go/issues/detail?id=5821) (現在はGitHub Issuesに移行しているため、リダイレクトされる可能性があります)

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

*   Go Issue 5821 (GitHub): [https://github.com/golang/go/issues/5821](https://github.com/golang/go/issues/5821)
*   Go Installation Instructions (現在の公式ドキュメント): [https://go.dev/doc/install](https://go.dev/doc/install) (このコミットが適用された後の最新版)
*   `PATH` 環境変数について (一般的な情報): [https://ja.wikipedia.org/wiki/PATH_(%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0)](https://ja.wikipedia.org/wiki/PATH_(%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0))
*   `rm` コマンドについて (一般的な情報): [https://ja.wikipedia.org/wiki/Rm](https://ja.wikipedia.org/wiki/Rm)
*   MSI (Microsoft Installer) について (一般的な情報): [https://ja.wikipedia.org/wiki/Windows_Installer](https://ja.wikipedia.org/wiki/Windows_Installer)