2017-04-03 2 views
1

우분투 컴퓨터에 특정 버전의 CockroachDB를 설치하려고합니다. 나는이 사이트에와 ~ 200MB가 다운로드 한 후 안내를 따라, 최신 버전이 설치됩니다go get을 사용하지 않고 Go 앱을 설치하는 방법은 무엇입니까?

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

한 가지 문제는 내가 GitHub의 페이지에서 최신 버전을 다운로드하는 경우에만 30메가바이트 인 반면 /src/github.com/cockroachdb/cockroach이 3백메가바이트는 것입니다. 왜?

나는 내가 원하는 버전으로 전환하는 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이 파일 자체를 삽입합니까? 어떻게 초기화합니까?

make install을 실행할 때마다 추가로 100MB를 다운로드하지 않고도 더 좋은 방법이 있습니까?

+1

바퀴벌레 공화국의 클론은> 300MB입니다. 30MB 밖에 안 들려요? Cockroachdb는'go get '을 통해 설치하기위한 것이 아니므로 목표가 무엇인지를 소스에서 빌드하는 방법에 대한 문서를 읽어야합니다. 구축 지침이 작동하지 않으면 문제를 제기 할 수 있습니다. – JimB

+0

@JimB 저는 30MB가 github에서 zip/tar 파일을 다운로드한다고 생각합니다. –

답변

0

go get을 사용하여 cockroachdb를 다운로드하면 크기는 664MB이고 $GOPATH/src/github.com/cockroachdb/cockroach이됩니다.

나는 Gothub Repo를 cockroachdb에 복제하려고 시도했다. 그 중 가장 큰 것은 .git 숨겨진 폴더 인 263MB로, 크기는 304MB이다.

github에서 zip 파일을 다운로드하고 압축을 풀면 42MB 폴더로 끝납니다.

순수 복제 된 repo 및 zipfile 버전은 vendor folder which you can read about here이 부족합니다. 또 다른 302MB를 차지합니다. 폴더에는 go get이 repo를 다운로드하는 데 사용되는 경우 cockroachdb의 종속성이 채워집니다 (나는 github 페이지에서 볼 수있는 바퀴벌레의 공급 업체 레포 링크를 따라 간다고 추측합니다).

나는 마스터 브랜치에서이 작업을 했으므로 크기는 v0.1-alpha 버전과 조금 다릅니다. 하지만 크기 차이가 비슷한 이유가 있다고 생각합니다.

zipfile을 사용하여 "작동"하게하려면 zip 파일의 압축을 풀어 $GOPATH/src/github.com/cockroachdb/cockroach으로 만들 수 있습니다. 그런 다음 해당 폴더에서 git init을 수행하십시오. 그리고 나서 해당 태그의 README에있는 지침에 따라 make build을 실행해야 함을 나타냅니다. 그러나, 나는 당신이 여전히 일부 cockroachdb의 의존성을 얻을 필요가 있다고 믿습니다. 그래서 공식적인 지시를 따르는 것이 훨씬 더 간단합니다.

아직 시도하지는 않았지만 실행할 때마다 make install이 새로운 다운로드를 생성한다고 확신합니까?

+0

은 zip 내용을'/ goroach' 폴더로 대체하고,'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 : install 'failed 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 : 정의되지 않음 : syncutil.utex에서 syncutil Makefile : 122 : 대상 '설치를위한 조리법 'failed make : *** [설치] 오류 2' 변경 사항을 되돌 렸습니다. make build를 다시 실행했다. 어떻게 든 그것은 지금 일한다! !!!!!!! exec 파일은'/ bin'에 있습니다. 나는 다시 시도하기 위해'깨끗하게 '하고, 다음 번에는 빌드를 실행하고, exec 파일은 바퀴벌레 폴더에 있습니다. 왜 그렇게 무작위로 행동할까요? – d9ngle

+0

@ d9ngle 올바른 지점에서 다운로드를 사용하고 있습니까? 소스 트리의 모든 파일을 포함한다고 생각합니다. 또한 응용 프로그램을 빌드해야하는 경우에는 일단 응용 프로그램을 빌드하면 소스가 삭제 될 수 있습니다 (공간이 필요한 경우). 이것은 도커 이미지 나 이미지 크기가 중요한 곳에서 사용하기 위해 cockroachdb를 빌드 할 때 문제가됩니까? –

4

나는 git checkout v0을 사용했다.1 알파 내가

v0.1-alpha 고대입니다 원하는 버전으로 전환하고, 확실하지 당신은 (원하는 나는 그것이 더 이상 건설하지 않는 것을 너무 놀라지 아니에요 무엇을, 우리는의 반복성을 개선했습니다 우리 그 이후의 프로세스 구축). 최신판 (이 글을 쓰는 시점에서)은 beta-YYYYMMDD 형태의 것들입니다.

CockroachDB binary releasesgo get없이 설치할 수 있습니다. 현재 설치 지침을 다시 작성하여 go get 또는 git clone 대신 소스 타볼을 사용합니다.

+0

빌드하여 관리하십시오! 그런데이 블로그 게시물이 두 번 반복됩니다 [왜 100 노드짜리 CockroachDB 클러스터를 실행할 수 없습니까?] (https://www.cockroachlabs.com/blog/cant-run-100-node-croroachdb-cluster/) – d9ngle

+0

지적 해 주셔서 고맙습니다. –