45

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

標準コマンド:

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

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

4

4 に答える 4

45

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

まず、GOPATHが必要です

プロジェクトのルートディレクトリであるenv変数を定義します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

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

于 2012-05-27T09:50:15.937 に答える
29

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 

その詳細

于 2013-04-29T16:26:36.430 に答える
5

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

フォールバックGOPATHは、goinstallディレクトリです。したがって、 mgoリポジトリのクローンを作成できますgo/src/pkg/launchpad.net/mgo

または、 mgoに依存するプロジェクトのプロジェクトディレクトリ/環境を設定し、GOPATH環境変数をそのフォルダに設定すると、 mgoリポジトリのクローンを作成できますFOLDER/src/launchpad.net/mgo/

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

import "launchpad.net/mgo"
于 2012-06-03T17:13:10.177 に答える
0

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

GOPATH=dira:dirb:dirc go install mypackage
于 2017-09-21T01:07:01.493 に答える