web-dev-qa-db-ja.com

go getでどうやってパッケージをインストールできますか?

Githubからgopathにパッケージをインストールしたいのですが、これを試してみました。

go get github.com:capotej/groupcache-db-experiment.git

リポジトリは ここ です。

80
roger

Command go

パッケージと依存関係をダウンロードしてインストールする

使用法:

go get [-d] [-f] [-t] [-u] [-v] [-fix] [-insecure] [build flags] [packages]

インポートパスで指定されたパッケージとその依存関係をダウンロードします。それから、 'go install'のように、指定されたパッケージをインストールします。

-dフラグは、パッケージをダウンロードした後にgetを停止するように指示します。つまり、パッケージをインストールしないようにgetに指示します。

-fフラグは、-uが設定されている場合にのみ有効で、get -uに、各パッケージがソース管理リポジトリからチェックアウトされていることをインポートパスで暗黙的に確認しないようにします。これは、ソースがオリジナルのローカルフォークの場合に便利です。

-fixフラグは、依存関係を解決したりコードをビルドしたりする前に、ダウンロードしたパッケージに対して修正ツールを実行するようにgetに指示します。

-insecureフラグを使用すると、HTTPなどの安全でない方式を使用してリポジトリから取得し、カスタムドメインを解決できます。慎重に使用してください。

-tフラグは、指定されたパッケージのテストをビルドするために必要なパッケージもダウンロードするようにgetに指示します。

-uフラグは、ネットワークを使用して名前付きパッケージとその依存関係を更新するように指示します。デフォルトでは、getは不足しているパッケージをチェックアウトするためにネットワークを使用しますが、既存のパッケージへの更新を探すためにそれを使用しません。

-vフラグは、詳細な進行状況とデバッグ出力を有効にします。

Getはインストールを制御するためのビルドフラグも受け付けます。 「ビルドヘルプヘルプ」を参照してください。

新しいパッケージをチェックアウトするとき、getはターゲットディレクトリGOPATH/src /を作成します。 GOPATHに複数のエントリが含まれる場合、getは最初のエントリを使用します。詳細については、 'go help gopath'を参照してください。

パッケージをチェックアウトまたは更新するときに、getはローカルにインストールされたバージョンのGoに一致するブランチまたはタグを探します。最も重要な規則は、ローカルインストールがバージョン "go1"を実行している場合、 "go1"という名前のブランチまたはタグを取得することです。そのようなバージョンが存在しない場合は、パッケージのデフォルトのブランチを取得します。

Gitリポジトリをチェックアウトまたは更新すると、リポジトリによって参照されているすべてのgitサブモジュールも更新されます。

ベンダーのディレクトリに格納されているコードをチェックアウトしたり更新したりしないでください。

パッケージの指定の詳細については、「go help packages」を参照してください。

「get get」がダウンロードするソースコードをどのように見つけるかについての詳細は、「go help importpath」を参照してください。

このテキストは、GOPATHを使用してソースコードと依存関係を管理するときのgetの動作について説明しています。代わりにgoコマンドがモジュール対応モードで実行されている場合は、「go help get」と同様に、getのフラグと効果の詳細が変わります。 「go help modules」および「go help module-get」を参照してください。

参照してください:ビルド、インストール、クリーンに行きます。


たとえば、詳細な出力を表示すると、

$ go get -v github.com/capotej/groupcache-db-experiment/...
github.com/capotej/groupcache-db-experiment (download)
github.com/golang/groupcache (download)
github.com/golang/protobuf (download)
github.com/capotej/groupcache-db-experiment/api
github.com/capotej/groupcache-db-experiment/client
github.com/capotej/groupcache-db-experiment/slowdb
github.com/golang/groupcache/consistenthash
github.com/golang/protobuf/proto
github.com/golang/groupcache/lru
github.com/capotej/groupcache-db-experiment/dbserver
github.com/capotej/groupcache-db-experiment/cli
github.com/golang/groupcache/singleflight
github.com/golang/groupcache/groupcachepb
github.com/golang/groupcache
github.com/capotej/groupcache-db-experiment/frontend
$ 
86
peterSO

まず、GOPATHが必要です

$GOPATHは、その環境変数によって指定されたフォルダー(またはフォルダーのセット)です。これはGoがインストールされている$GOROOTディレクトリではないことに注意してください。

export GOPATH=$HOME/gocode
export PATH=$PATH:$GOPATH/bin

アプリケーションのソースとその依存関係を格納するために、コンピュータで~/gocodeパスを使用しました。 GOPATHディレクトリには、それらのパッケージのバイナリも格納されます。

次にGo envをチェックしてください。

あなたのシステムは$GOPATH$GOROOTを持っている必要があります。

GOARCH="AMD64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="AMD64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/elpsstu/gocode"
GORACE=""
GOROOT="/home/pravin/go"
GOTOOLDIR="/home/pravin/go/pkg/tool/linux_AMD64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

さて、あなたはdownload go packageを実行します:

go get [-d] [-f] [-fix] [-t] [-u] [build flags] [packages]

ダウンロードを取得し、インポートパスで指定されたパッケージをそれらの依存関係と共にインストールします。詳細は こちら をご覧ください。

58
Pravin Mishra