Skip to main content

Installing Golang : The fast way

Steps only for Ubuntu. Other OS quick installation guide coming up soon!

So, this article is useful when you are in hurry and obviously, want to trust me :)


There are basically two ways to install golang - one is using the classical apt-get method and the other one is installing from source. he


First method

    $ sudo apt-get update
    $ sudo apt-get install golang

This will pretty much do the thing. Just two commands.
You can verify the installation just by checking this:
    $ go env GOROOT

This command will output the directory name where go is installed. Usually, it will show /usr/lib/go.

You can check go version:
    $ go version
    go version go1.5.1 linux/amd64

You are set to use golang. Please don't forget to configure $GOPATH and $GOBIN directories explained below. 

Note: This method will install go version which is included in os package. If you need to install particular version of go, read on.

Second Method

You can install go directly from source. Also, golang is a beautiful language. It is getting widely accepted and evolving periodically. So, you can install whatever version you want to.

Pre-requisites: Git should be preinstalled in your system to use this method as we will be cloning a git repo directly.

Following commands will create a directory named which will be go installation directory. You can run them anywhere. To make it easy for you, do it in home directory ;-)
    $ git clone https://go.googlesource.com/go
    $ cd go
    $ git checkout go1.7
    $ cd src
    $ ./all.bash

If everything is fine, you  should see the below output:
ALL TEST PASSED

Most important step, set your GOPATH and GOBIN path variables

Now, to utilize go development at its fullest, go programs are generally written in a directory which will all the go related packages, dependencies.

In short, you just create a directory and consider it as your workspace for go programs. A directory, anywhere. Later this directory will hold three sub directories - src, pkg, bin. 
src - will contain all the source code.
pkg - will contain all the packages which your source code will use.
bin - will contain the binary files.

But the go compiler should know where this directory is. So, just follow this
    $ mkdir gocode
    $ cd gocode
    $ mkdir src pkg bin

Set the paths
    $ export GOPATH=$HOME/gocode
    $ export GOBIN=$GOPATH/bin

Provided your gocode directory is in home directory. Now to avoid exporting the path each time you login, you need to put these commands in bashrc or similar file.

    $ vim ~/.bashrc
    * Append the two export commands in this file and save.

Comments

Popular posts from this blog

error: invalid application of ‘sizeof’ to incomplete type ‘struct ’

list.c:47:39: error: invalid application of ‘sizeof’ to incomplete type ‘struct Litsnode’ So, I was trying to run a program based on linked list and this is what I got. This is a very silly problem. I am mentioning it here just to help those who got frustrated like me :-\ Let me show you the line where this error occurred : 46   struct Listnode * newnode; 47   newnode = (struct Listnode *) malloc(sizeof(struct Litsnode)); Now, View it properly. Check the name(spelling) of the structure mentioned to sizeof : " struct Li ts node ". Though the defined name of the structure was : " struct Listnode " That's it.  This happens all the time that we may type something wrong. The important thing is to identify it. :-) Feel free to give any suggestions :)

Expandable Arrays in C : behind the code

Arrays. They are beautiful. In C, we always try to work through restrictions arrays have i.e the size of the array must be statically defined. We always want a dynamic array whose size can be decided at run-time. There are ways which we use widely for e.g by using pointers and then dynamically allocating memory to it using malloc or calloc. But depending on the situation, we might require more efficient and organizable ways. I will explain the concept with a series of examples as in how simple arrays evolved to the tricky expandable ones. The classic way is to use pointers This snippet will allocate a memory block of size = array_size(integer array). Though this is not what I wanted to explain because this way is too clumsy. Imagine if you need 10 dynamic arrays in your program, you have to write these four lines each time and you have to keep track of all the 10 sizes. A better way is to use structures: We can simply create a structure containing two elements: array_size and...

ssh: Could not resolve hostname git: No address associated with hostname

I came across this error when I needed to clone a git repo. I tried few times but I couldn't get it working. There were few suggestions on the internet, but none resolved my issue. So, lets get to the point, this issue may occur due to following reasons: 1. If you are using proxy to access git and it is not properly configured/proxy is not allowing you access git due to permission issues. More here: git-clone-no-address-associated-with-name getting-git-to-work-with-a-proxy-server 2. This happens due to a silly mistake. [I do make silly mistakes sometimes] Are you actually using git clone for cloning? I used this - ssh git@github.com:neovim/neovim.git instead of git clone git@github.com:neovim/neovim.git ----- Hope this have resolved your issue :-) Happy Coding.