aboutsummaryrefslogtreecommitdiff
path: root/google-go-lang/README
blob: 066318752278590ebbd01abe8869fac38f911b54 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
The Go programming language is an open source project to make
programmers more productive. Go is expressive, concise, clean,
and efficient. Its concurrency mechanisms make it easy to write
programs that get the most out of multicore and networked machines,
while its novel type system enables flexible and modular program
construction. Go compiles quickly to machine code yet has the
convenience of garbage collection and the power of run-time
reflection. It's a fast, statically typed, compiled language that
feels like a dynamically typed, interpreted language.

The tools are added to the path by putting go.sh and go.csh files in
/etc/profile.d and letting the system's /etc/profile or /etc/csh.login
pick it up.  If you want to add any of Go's environment variables you
can add them there.

Also, to easily setup a user-independent path for Go libraries to
be installed to and used, is the GOPATH environment variable. This
variable can be colon delimited. For example, once installing the
built google-go-lang package, then set in your user's ~/.bashrc
something like:

  export GOPATH="$HOME"

Then, you'll be able to use the `go` command to install an additional
library that will not need root permission and will be in the
compiler's path.  Like so:

  go get golang.org/x/tools/cmd/godoc

Now in ~/src you'll have this source code checked-out, and a binary
built at ~/bin/godoc

Since the golang idiom is very `go get'able as a limited user,
installed libraries from slackbuilds.org are located outside of GOROOT
(which is only for golang standard library), in /usr/share/gocode By
not setting a system-wide GOPATH defaulting to this location, then
it is up to the user of whether to include this system path as well,
like:

  export GOPATH="$HOME:/usr/share/gocode"

This system source directory is primarly only for buildtime of
slackbuilds.

This is because `go get' iterates through the paths provided, looking
for matching imports. If a match is not found, then is cloned to the
first path provided.  You would not want this to be a system path, as
to need root privilege to clone source.

As of go1.2, the 'go doc ...' command has been relocated to the
go.tools library (golang-googlecode-gotools), which provide `godoc`.

As of go1.5, shared libraries are now supported. The flags to use
linking are available for `go get`, `go install` and `go build`.
To learn more see `go help buildmode`.

To elect to run the buildtime tests of this package, provide the
environment variable RUN_TEST=true at build time.