55 lines
2.4 KiB
Plaintext
55 lines
2.4 KiB
Plaintext
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/src/go"
|
|
|
|
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 labix.org/v2/mgo
|
|
|
|
Now in ~/src/go, you'll have this library available!
|
|
|
|
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/src/go:/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.
|