web-dev-qa-db-ja.com

ダウンロードソースからgolangサードパーティプロジェクトをインストールする方法は?

mgo をインストールしようとしています。これはgolangで書かれたmongo-driverです。

標準コマンド:

go get launchpad.net/mgo

しかし、いくつかの証明書の問題のために失敗しました。

そのため、手動でmgoのソースをローカルE:\mgoにダウンロードしますが、インストール方法がわかりません。

ファイルツリー:

├─.bzr
│  ├─branch
│  │  └─lock
│  ├─branch-lock
│  ├─checkout
│  │  └─lock
│  └─repository
│      ├─indices
│      ├─lock
│      ├─obsolete_packs
│      ├─packs
│      └─upload
├─bson
└─testdb

私は試した:

cd mgo
go install

報告する:

auth.go:34:2: import "launchpad.net/mgo/bson": cannot find package

しかし、最初にbsonをインストールしようとすると:

cd bson
go install

別のエラーを報告します:

go install: no install location for _/E_/mgo/bson

それで、それをインストールする正しいコマンドは何ですか?

42
Freewind

最後に、mgoプロジェクトを正常にインストールしました。初心者には役立つと思うので、ここで答えます。

まず、GOPATHが必要です

環境変数GOPATHを定義します。これはプロジェクトのルートディレクトリであり、サブディレクトリsrcが必要です。

私にとっては、E:\WORKSPACE_GO\mgoに定義してから、サブディレクトリsrcを作成します

プロジェクトをsrcにコピー

次に、mgoプロジェクトを%GOPATH%/mgoにコピーしますが、ディレクトリ構造に注意する必要があります。ソースで定義されているパッケージとまったく同じでなければなりません。

mgoの場合、パッケージはlaunchpad.net/mgoであるため、構造は次のようになります。

E:\WORKSPACE_GO\mgo\src\launchpad.net\mgo

インストールを開始

最後に、go installそれら:

cd E:\WORKSPACE_GO\mgo\src\launchpad.net\mgo\bson
go install

cd ..
go install

エラー入力がなければ、正常にインストールされているはずです。

44
Freewind

セット[〜#〜] gopath [〜#〜]$GOPATHの下にコードを移動します。それから

cd $GOPATH/src/github.com/user/package
go get .

説明:

go build .    # produces binary in current dir 
go install .  # produces binary in $GOPATH/bin 
go get .      # same as 'install' but resolves import deps 

詳細

28
rofrol

インポートパス(GOPATH/srcに渡したパス)を保持したまま、go installディレクトリに置くにする必要があります。

フォールバックGOPATHはgo install directoryです。したがって、mgoリポジトリをgo/src/pkg/launchpad.net/mgoに複製できます。

または、プロジェクトディレクトリ/環境を設定する場合プロジェクト用 mgoに依存し、GOPATH環境変数をその[〜 #〜] folder [〜#〜]mgoリポジトリをFOLDER/src/launchpad.net/mgo/にクローンできます。

その後、プロジェクトでmgoパッケージを期待どおりに使用できます。

import "launchpad.net/mgo"
5
Kissaki

このすべての軟膏のフライは、GOPATHがpath-JavaのクラスパスまたはUnixのPATHに似ているということです。単一のディレクトリの場所ではなく、一連のディレクトリの場所です。たとえば、私は定期的に次の形式のステートメントを使用します。

GOPATH=dira:dirb:dirc go install mypackage
0
cliffberg