Go is a modern programming language developed by Google that uses high-level syntax similar to scripting languages. It is popular for many applications and at many companies, and has a robust set of tools and over 90,000 repos. This tutorial will walk you through downloading and installing Go 1.5.1, as well as building a simple Hello World application.
To begin, connect to your Ubuntu server via
This is what we'll use for this tutorial, so move the directory to
First, set Go's root value, which tells Go where to look for its files. First, open your
If you chose an alternate installation location for Go, add these lines instead to the same file. This example shows the commands if Go is installed in your home directory:
With the appropriate line(s) copied into your profile, save and close the file. Next, refresh your profile.
Create a new directory for your Go workspace, which is where Go will build its files.
If you plan to use Git to commit and store your Go code on GitHub, you can replace the value user with your GitHub username. This is recommended because this will allow you to import external Go packages. However, if you do not plan to use GitHub to store and manage your code, you can use any folder structure, like
This file will show "Hello, World" if it successfully runs, which shows that Go is building files correctly. Save and close the file, then compile it invoking the Go command
Prerequisites
- One Ubuntu 14.04 Machine (Physical or Virtual)
- One sudo non-root user
Step 1 — Installing Go
In this step, we’ll install Go on your server.To begin, connect to your Ubuntu server via
ssh
:
- ssh sammy@your_server_ip
Once connected, update and upgrade the Ubuntu packages on your server. This ensures that you have the latest security patches and fixes, as well as updated repos for your new packages.
- sudo apt-get update
- sudo apt-get -y upgrade
With that complete, you can begin downloading the latest package for Go by running this command, which will pull down the Go package file, and save it to your current working directory, which you can determine by running pwd
.
- curl -O https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz
Next, use tar
to unpack the package, which will open and expand the downloaded file, and create a folder using the package name.
- tar -xvf go1.5.1.linux-amd64.tar.gz
Some users prefer different locations for their Go installation, or may have mandated software locations. With the Go package now in place, you can either leave it in the home directory or move it to another location. The most common location for the Go folder is /usr/local
, which also ensures Go is in your $PATH
for Linux.This is what we'll use for this tutorial, so move the directory to
/usr/local
.
- sudo mv go /usr/local
The location you pick to house your Go folder will be referenced later in this tutorial, so remember where you placed it if the location is different than /usr/local
.Step 2 — Setting Go Paths
In this step, we’ll set some paths that Go needs. The paths in this step are all given are relative to the location of your Go installation in/usr/local
. If you chose a new directory, or left the file in download location, modify the commands to match your new location.First, set Go's root value, which tells Go where to look for its files. First, open your
.profile
file for editing.
- nano ~/.profile
If you installed Go in /usr/local
, add this line at the end of the file:
export PATH=$PATH:/usr/local/go/bin
If you chose an alternate installation location for Go, add these lines instead to the same file. This example shows the commands if Go is installed in your home directory:
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
With the appropriate line(s) copied into your profile, save and close the file. Next, refresh your profile.
- source ~/.profile
Step 3 — Testing Your Installation
Now that Go is installed and the paths are set for your server, you can test that Go is working as expected.Create a new directory for your Go workspace, which is where Go will build its files.
- mkdir ~/work
Now you can point Go to the new workspace you just created by exporting GOPATH
.
- export GOPATH=$HOME/work
Then, create a directory hierarchy in this folder for you to create your test file.If you plan to use Git to commit and store your Go code on GitHub, you can replace the value user with your GitHub username. This is recommended because this will allow you to import external Go packages. However, if you do not plan to use GitHub to store and manage your code, you can use any folder structure, like
~/my_project
.
- mkdir -p work/src/github.com/user/hello
Next, you can create a simple “Hello World” Go file.
- nano ~/work/src/github.com/user/hello/hello.go
Inside your editor, paste in the content below, which uses the main Go packages, imports the formatted IO content component, and sets a new function to print 'Hello World' when run.package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
This file will show "Hello, World" if it successfully runs, which shows that Go is building files correctly. Save and close the file, then compile it invoking the Go command
install
.
- go install github.com/user/hello
With the file compiled, you can run it by simply referring to the file at your Go path.
- $GOPATH/bin/hello
If that command returns "Hello World", then Go is successfully installed and functional.Conclusion
By downloading and installing the latest Go package and setting its paths, you now have a Ubuntu Machine to use for Go development.