2017-04-03 78 views
1

我想在我的ubuntu機器上安裝CockroachDB的特定版本。我跟着在網站和下載〜200MB後的指南,最新版本的安裝:如何在不使用go的情況下安裝Go應用程序?

$ go get -d github.com/cockroachdb/cockroach 
$ cd $GOPATH/src/github.com/cockroachdb/cockroach 
$ git checkout beta-20170330 
$ make install 

一個問題是,/src/github.com/cockroachdb/cockroach是300MB,而如果我從GitHub的頁面下載最新版本,只有30MB。爲什麼?

我用git checkout v0.1-alpha切換到我想要的版本:

warning: unable to rmdir vendor: Directory not empty 
Previous HEAD position was f0f5783... Merge pull request #14448 from BramGruneir/vendorsnappy 
HEAD is now at 26088f8... Merge pull request #3475 from mrtracy/mtracy/code_review_feedback 

但運行make install後失敗:

github.com/agtorre/gocolorize      99fea4bc9517 [checkout f42b554bf7f0] 
github.com/biogo/store        913427a1d5e8 [checkout 3b4c041f52c2] 
github.com/cockroachdb/c-lz4      834d3303c9e8 [checkout c40aaae2fc50] 
github.com/cockroachdb/c-protobuf     323984796a7b [checkout 6a18bfcdd516] 
github.com/cockroachdb/c-rocksdb     0dd42399d1f0 [checkout bf15ead80bdc] 
github.com/cockroachdb/c-snappy     c0cd3c9ce92f [checkout 5c6d0932e0ad] 
github.com/cockroachdb/yacc      7c99dfd2164a [get checkout 443154b1852a] 
github.com/coreos/etcd        38a914973544 [checkout 0eb46eb1457b] 
github.com/cpuguy83/go-md2man      a65d4d2de4d5 [get checkout 71acacd42f85] 
github.com/docker/docker       6311e9fc9d34 [get checkout 5e0283effa73] 
github.com/elazarl/go-bindata-assetfs    30f82fa23fd8 [checkout d5cac425555c] 
github.com/go-sql-driver/mysql      9dee4ca50b83 [get checkout d512f204a577] 
github.com/gogo/protobuf       c0656edd0d9e [checkout 8658879224bd] 
github.com/golang/lint        cb00e5669539 [get checkout 32a87160691b] 
github.com/google/btree       316fb6d3f031 [checkout cc6329d4279e] 
github.com/gordonklaus/ineffassign     f0c5cfc1817d [get checkout 507e48671a07] 
github.com/inconshreveable/mousetrap    76626ae9c91c [get OK] 
github.com/jteeuwen/go-bindata      a0ff2567cfb7 [get OK] 
github.com/julienschmidt/httprouter    6f3f3919c878 [checkout f30ab90cccbd] 
github.com/kisielk/errcheck      23699b7e2cbf [get checkout 12fd1ab9811e] 
github.com/kisielk/gotool       0de1eaf82fa3 [get checkout 58a7a198f2ec] 
github.com/kr/pretty        cfb55aafdaf3 [get checkout e6ac2fc51e89] 
github.com/kr/text         7cafcd837844 [get checkout bb797dc4fb83] 
github.com/lib/pq         2704adc878c2 [checkout 11fc39a580a0] 
github.com/mattn/go-runewidth      14207d285c6c [checkout d96d1bd051f2] 
github.com/mibk/dupl        3447d9b0cb5a [get checkout 47b66d6a523f] 
github.com/montanaflynn/stats      f8cd06f93c6c [checkout 4dd27fe9ac79] 
github.com/olekukonko/tablewriter     febf2d34b54a [checkout 333c0610de34] 
github.com/opennota/check       11e2eec79ec4 [get checkout 591428223a6a] 
github.com/peterh/liner       88609521dc4b [checkout 4d47685ab2fd] 
github.com/rcrowley/go-metrics      1f30fe9094a5 [checkout 7839c01b09d2] 
github.com/robfig/glock       39b969c32281 [checkout cb3c3ec56de9] 
github.com/russross/blackfriday     5f33e7b78783 [get checkout d18b67ae0afd] 
github.com/samalba/dockerclient     a30362618471 [get checkout 4656b1bc6cbc] 
github.com/shurcooL/sanitized_anchor_name   1dba4b3954bc [get checkout 10ef21a441db] 
github.com/spf13/cobra        7aeaa2cce6ae [checkout ee6224d01f6a] 
github.com/spf13/pflag        d16db1e50e33 [checkout 08b1a584251b] 
github.com/tebeka/go2xunit       13c29c7515e6 [get checkout 0519fcc9b45b] 
github.com/termie/go-shutil      bcacb06fecae [get OK] 
golang.org/x/crypto        88915ccf7aeb [checkout 7b85b097bf75] 
golang.org/x/net         ffcf1bedda3b [checkout 21af302bb527] 
golang.org/x/text         f4b4367115ec [checkout 00e205363f74] 
golang.org/x/tools         620ecdb8d794 [checkout 1cdaff4a02c5] 
gopkg.in/yaml.v1         9f9df34309c0 [OK] 
cmd github.com/cockroachdb/c-protobuf/cmd/protoc    [built] 
cmd github.com/cockroachdb/cockroach/protoc-gen-gogoroach  [error exit status 2] 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/gogoproto 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/vanity 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/testgen 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/defaultcheck 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/embedcheck 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/enumstringer 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/marshalto 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/oneofcheck 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/populate 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/unmarshal 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/compare 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/description 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/equal 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/face 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/gostring 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/size 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/stringer 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/plugin/union 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc 
github.com/cockroachdb/cockroach/vendor/github.com/gogo/protobuf/vanity/command 
github.com/cockroachdb/cockroach/protoc-gen-gogoroach 
# github.com/cockroachdb/cockroach/protoc-gen-gogoroach 
protoc-gen-gogoroach/main.go:12: undefined: vanity.NotInPackageGoogleProtobuf 
go install -tags '' -ldflags '-X "github.com/cockroachdb/cockroach/util.buildTag=alpha-6447-g26088f8" -X "github.com/cockroachdb/cockroach/util.buildTime=2017/04/03 11:46:56" -X "github.com/cockroachdb/cockroach/util.buildDeps=github.com/cockroachdb/c-lz4:c40aaae2fc50293eb8750b34632bc3efe813e23f github.com/cockroachdb/cockroach:26088f81e5ecfb2fd63f8f15f524102c9a0c1c05 github.com/cockroachdb/cockroach/vendor:17711805119083543d94edac10e423260a597426 github.com/julienschmidt/httprouter:f30ab90cccbd5171771d26b6557d3c2f49e047a6 github.com/peterh/liner:4d47685ab2fd2dbb46c66b831344d558bc4be5b9 gopkg.in/yaml.v1:9f9df34309c04878acc86042b16630b0f696e1de"' 
# github.com/cockroachdb/cockroach/cli 
cli/sql_util.go:148: table.Append(row) used as value 
Makefile:71: recipe for target 'install' failed 
make: *** [install] Error 2 

我真的很感激,如果我可以安裝我下載的特定版本來自GitHub,因爲它體積較小,結構更清潔。但它缺少一些文件,如.go-version.bootstrapfatal: Not a git repository (or any of the parent directories): .git

是否go get自己插入這些文件?我如何初始化它們?

不應該有更好的方法來做到這一點,而不必每次下載額外的100MB我運行make install

+1

蟑螂回購的克隆大於300MB。你在看什麼只有30MB? Cockroachdb並不意味着通過'go get'安裝,因此如果這是您的目標,您需要閱讀他們有關如何從源代碼構建的文檔。如果他們的構建說明不起作用,那麼你可以向他們提出問題。 – JimB

+0

@JimB我相信30MB來自於從github ui下載zip/tar文件。 –

回答

0

使用go get下載cockroachdb我得到一個尺寸爲664MB的$GOPATH/src/github.com/cockroachdb/cockroach

然後我試圖克隆蟑螂數據庫的github數據庫,它的大小爲304MB,其中大部分是因爲.git隱藏文件夾是263MB。

從github ui下載一個zip文件並解壓它,最終得到一個42MB的文件夾。

純git克隆回購和zipfile版本,但缺乏vendor folder which you can read about here。它佔了另外的302MB。當使用go get下載回購庫時(我猜測它跟隨供應商回購蟑螂的鏈接,你可以在github頁面上看到),該文件夾被填充了cockroachdb的依賴關係。

由於我已經從主分支完成了這項工作,我的尺寸與v0.1-alpha版本有點不同。但我猜測它的尺寸差異有類似的原因。

要使用zip文件來「工作」,您可以嘗試將zip文件解壓到$GOPATH/src/github.com/cockroachdb/cockroach。然後在該文件夾中執行git init。然後按照該標籤中的自述文件中的說明進行操作,說明您應該運行make build。但是,我相信你仍然需要獲得一些cockroachdb的依賴關係,所以按照官方說明進行操作可能會簡單得多。

我還沒有嘗試過,但是您確定make install每次運行時都會導致新的下載?

+0

用'/ cockroach'文件夾替換zip內容,從'go get'版本複製'.go-version'和'.bootstrap',運行'make build',這就是我遇到的情況: '#github.com/在調用logflags.InitFlags時沒有足夠的參數 \t有(* syncutil.Mutex,* bool,* logDirName,* bool,*級別,* moduleSpec,* traceLocation) \t想要(sync.Locker,* bool,flag.Value,* bool,* bool,flag.Value,flag.Value,flag.Value) Makefile:122:recipe for target'安裝'失敗 make:*** [install] Error 2' – d9ngle

+0

在'logflags.go'的第74行將'sync.Locker'改爲'* syncutil.Mutex',遇到此錯誤: '#github.com/cockroachdb/cockroach/pkg/util/log/logflags pkg/util/log/logflags/logflags.go:74:undefined:syncutil in syncutil.Mutex Makefile:122:recipe for target'install '失敗 使:*** [安裝]錯誤2'' 恢復了更改。再次運行'make build'。它以某種方式現在起作用!!!!!!!當然,exec文件在'/ bin'中。我'乾淨'再試一次,只是爲了確保和下一次我運行生成時,exec文件在蟑螂文件夾中。爲什麼它表現得如此隨意!? – d9ngle

+0

@ d9ngle你確定你正在使用正確的分支下載嗎?我認爲它會包含源代碼樹中的所有文件。另外,如果你只需要構建應用程序,那麼一旦你建立了應用程序,你可以刪除源代碼(如果你需要的話)。這是一個問題,您正在構建用於docker鏡像的cockroachdb或其中圖像大小很重要的東西? –

4

我用git checkout v0。1-α切換到我要

v0.1-alpha是古老的版本,當然不是你想要的(我不是太驚訝,它不興建新的;我們改進的可重複性我們從那時起構建過程)。最新版本(截至撰寫本文時)是beta-YYYYMMDD的形式。

蟑螂DB binary releases可以安裝沒有go get。我們目前正在修改安裝說明,以使用源代碼壓縮包而不是go getgit clone

+0

管理得到它建立!順便這篇博客文章重複了兩次[爲什麼我不能運行100個節點的CockroachDB集羣?](https://www.cockroachlabs.com/blog/cant-run-100-node-cockroachdb-cluster/) – d9ngle

+0

感謝您指出,我們會修復它。 –

相關問題