This tutorial will work also to Ubuntu and similar linux distros.
Step 1 – Download
Since golang is having updates frequently, I recommend installing only from http://golang.org/doc/install, and not from apt-get, or any package other than the official site, because you will have an old release of golang tools.
Open http://golang.org/dl/ and download the lastest file to OS: linux.
Right now the last version is 1.3, so you must download go1.3.linux-amd64.tar.gz (for 64 bits computers (you probably have a 64 bits computer)).
Download the file with your browser (click here), or in Terminal:
cd ~/Downloads wget http://golang.org/dl/go1.3.linux-amd64.tar.gz
Note: “cd ~” takes you to the user folder, example “cd ~” is equals to “cd /home/rover” in my machine.
Step 2 – Install
In a terminal, navigate to the download folder (where go1.3.linux-amd64.tar.gz is) and install it on /src/local folder:
sudo tar -C /usr/local -xzf go1.3.linux-amd64.tar.gz
Now you have to enable go as a program.
export PATH=$PATH:/usr/local/go/bin
Right now you can type “go version” in terminal to ensure go is installed successfully.
Step 3 – Hello World!
Create a hello.go file, having:
package main import "fmt" func main() { fmt.Println("Hello World!") }
In terminal, go to the same folder you saved hello.go, and run on terminal:
go run hello.go
Voilá!
Step 4 – Golang external imports
Let’s create a more elaborated Hello World, using go-gtk lib.
In golang, we can import a git repository only declaring import “github.com/mattn/go-gtk/gtk” . But to have this working, we must configure $GOPATH, that must point to your project directory. Create a golang-hello folder, to hold the project, and create a “src”, “pkg” and “bin” folders. To configure $GOPATH, supposing that you created your project folder as “/home/rover/workspace/golang-hello”, use:
export GOPATH=/home/rover/workspace/golang-hello
In “src” folder, create a file called gtkhello.go, having the following code:
package main import ( "github.com/mattn/go-gtk/glib" "github.com/mattn/go-gtk/gtk" ) func main() { gtk.Init(nil) window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL) window.SetPosition(gtk.WIN_POS_CENTER) window.SetTitle("Hello GTK+Go world!") window.SetIconName("gtk-dialog-info") window.Connect("destroy", func(ctx *glib.CallbackContext) { gtk.MainQuit() }, "foo") vbox := gtk.NewVBox(false, 1) button := gtk.NewButtonWithLabel("Hello world!") button.SetTooltipMarkup("Say Hello World to everybody!") button.Clicked(func() { messagedialog := gtk.NewMessageDialog( button.GetTopLevelAsWindow(), gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, "Hello!") messagedialog.Response(func() { messagedialog.Destroy() }) messagedialog.Run() }) vbox.PackStart(button, false, false, 0) window.Add(vbox) window.SetSizeRequest(300, 50) window.ShowAll() gtk.Main() }
Before run this program properly, you must install GTK developer packages. Follows:
sudo apt-get install libgtk2.0-dev libgtk-3-dev
Then run it, in terminal:
cd src/ go get go run gtkhello.go
Cheers! 🙂