このコマンドはリモート コード パッケージを動的に取得できます。現在サポートされているのは BitBucket、GitHub、Google Code、Launchpad です。 go get コマンドを使用する前に、Git、SVN、HG などのリモート パッケージに一致するコード管理ツールをインストールし、パラメーターにパッケージ名を指定する必要があります。
このコマンドは実際には内部的に 2 つのステップに分かれています。最初のステップはソース パッケージをダウンロードすることであり、2 番目のステップは go install を実行することです。ソース コード パッケージをダウンロードする go ツールは、異なるドメイン名に応じて異なるソース コード ツールを自動的に呼び出します。対応する関係は次のとおりです。
BitBucket (Mercurial Git)
GitHub (Git)
Google Code Project Hosting (Git, Mercurial, Subversion)
Launchpad (Bazaar)
したがって、 go get コマンドが適切に機能するには、適切なソース コード管理ツールがインストールされていることを確認し、同時にこれらのコマンドを PATH に追加する必要があります。実際、 go get はカスタム ドメイン名の機能をサポートしています。
パラメータの紹介:
- -d ダウンロードのみでインストールはしません
- -f は、-u パラメーターを含めた場合にのみ有効です。各インポートが取得されたことを -u で検証させないでください。これは、ローカル フォーク パッケージの場合に特に便利です。
- -fix ソース コードを取得した後、最初に fix を実行し、その後、他の作業を実行します。
- -t は、テストの実行に必要なパッケージもダウンロードします。
- -u は、パッケージとその依存関係を更新するためにネットワークの使用を強制します。
- -v は実行されたコマンドを表示します
リモートパッケージのパス形式
Go 言語のコードは、Git コード管理ツールをベースにした Github.com Web サイトでホストされており、多くの有名なプロジェクトがこの Web サイトでコードをホストしています。他の同様のホスティング サイトには、code.google.com、bitbucket.org などがあります。
これらの Web サイトのプロジェクト パッケージ パスには、次の図に示すように共通の標準があります。
図のリモート パッケージ パスは Go 言語のソース コードであり、このパスは 3 つの部分で構成されます。
- Web サイトのドメイン名: 電子メール @ の背後にあるサーバー アドレスと同様に、コードがホストされている Web サイトを示します。
- 著者または機関: このプロジェクトの帰属を示します。通常は Web サイトのユーザー名です。この著者の下にあるすべてのプロジェクトを見つける必要がある場合は、Web サイトで「ドメイン名/著者」を直接検索できます。この部分は Email@ の前の部分と似ています。
- プロジェクト名: 各 Web サイトの作成者または組織は同時に多数のプロジェクトを所有している場合があり、図でマークされた部分はプロジェクト名を示します。
go get+ リモート パッケージ
デフォルトでは、 go get works を直接実行します。たとえば、go のソース コードを取得してコンパイルする場合は、次のコマンド ラインを使用します。
$ go get github.com/cellnet
取得する前に、GOPATH が設定されていることを確認してください。 Go バージョン 1.8 以降、GOPATH はデフォルトでユーザー ディレクトリの go フォルダーにあります。
cellnet は単なるネットワーク ライブラリであり、実行可能ファイルはありません。そのため、go get 操作が成功した後、GOPATH の下の bin ディレクトリにはコンパイルされたバイナリ ファイルは存在しません。
バイナリを取得してコンパイルするためのテストが必要な場合は、次のコマンドを試してください。取得が完了すると、コンパイルされたバイナリファイルがGOPATHのbinディレクトリに自動生成されます。
$ go get github.com/tabtoy
go get を使用する場合、次の表に示すように、追加パラメータを使用して詳細情報を表示し、特別なダウンロードおよびインストール操作を実現できます。
追加パラメータ | 述べる |
---|---|
-v | 操作プロセスのログや情報を表示し、エラーの確認に便利 |
-u | 不足しているパッケージをダウンロードしますが、既存のパッケージは更新しません |
-d | ダウンロードのみでインストールは不可 |
-unsafe | 安全でない HTTP メソッドを使用したダウンロード操作を許可する |