2014-06-05 15 views
17

Các tài liệu không nói gì về những gì build vs install khôngViệc cài đặt sẽ làm gì?

Kỳ vọng của tôi là nó giống như make install; tức là nó có những thứ được biên soạn và đặt ở vị trí cuối cùng của nó (/usr/local/bin/my_new_toy hoặc bất cứ điều gì) nhưng có vẻ như nó đặt mọi thứ trong GOROOT/bin

tôi có thể nói đi để làm một make install - ví dụ: đặt mọi thứ ở nơi khác? Hoặc tôi chỉ cần viết một makefile (xin vui lòng cho tôi biết không)?

Trả lời

9

Nếu bạn muốn tập tin nhị phân để đi đến một địa điểm cụ thể, bạn có thể sử dụng các biến môi trường GOBIN:

Các bin/thư mục chứa các lệnh biên soạn. Mỗi lệnh được đặt tên cho thư mục nguồn của nó, nhưng chỉ có phần tử cuối cùng, không phải toàn bộ đường dẫn. Tức là, lệnh có nguồn trong DIR/src/foo/quux được cài đặt vào DIR/bin/quux, không phải DIR/bin/foo/quux. Foo/bị tước để bạn có thể thêm DIR/bin vào PATH của bạn để nhận các lệnh được cài đặt. Nếu biến môi trường GOBIN GOBIN được đặt, các lệnh được cài đặt vào thư mục tên thay vì DIR/bin.

Nguồn: http://golang.org/cmd/go/#hdr-GOPATH_environment_variable

GOBIN=/usr/local/bin/ go install 

Nếu bạn muốn mỗi dự án bin/ thư mục sau đó bạn có thể dễ dàng thêm đường dự án của bạn để GOPATH, tuy nhiên bạn phải có mã của bạn dưới $project-path/src/go install sẽ đặt tất cả các mã nhị phân trong $project-path/bin.

export GOPATH=/dir1:/dir2:/dir3 

Nếu Gobin không được thiết lập, mã nhị phân từ/dir1/src kết thúc trong/dir1/bin, mã nhị phân từ/dir2/src kết thúc trong/dir2/bin, và vân vân (và nhị phân từ $ GOROOT/src kết thúc bằng $ GOROOT/bin).

Nguồn: https://groups.google.com/forum/#!topic/golang-nuts/-mN8R_Fx-7M

Và nó hoàn toàn vượt qua tâm trí của tôi, nhưng bạn luôn có thể chỉ cần sử dụng (nhờ JimB):

go build -o /path/binary-name 
+3

bạn cũng có thể chỉ định tên tập tin đầu ra trực tiếp với 'đi xây dựng - o' – JimB

+0

Đúng vậy, hãy thêm nó vào câu trả lời vì mục đích đầy đủ. – OneOfOne

+0

vì vậy hãy cài đặt cũng giống như xây dựng -o $ GOPATH/bin/? – pm100

Các vấn đề liên quan