1. Clone the repo
    git clone https://github.com/JuliaLang/julia.git
  2. Make sure your version of Git supports --detach. If not, you'll run into this issue

    cd julia
    git checkout --detach
    

    If it does support --detach, keep going. If not, upgrade Git. Check this guide on how to do it without privileges

  3. Now we run make.

    make
    

    We can use -j X where X is a number (number of cores for example) to specify how many commands make can run simultaneously. If we specify -j without a number, make will not limit the amount of processes that can run simultaneously.

  4. Everytime I've tried to build Julia, I've gotten an error towards the end. The last time the error was:

    \033[33;1m*** Clean the OpenBLAS build with 'make -C deps clean-openblas'. Rebuild with 'make OPENBLAS_USE_THREAD=0 if OpenBLAS had trouble linking libpthread.so, and with 'make OPENBLAS_TARGET_ARCH=NEHALEM' if there were errors building SandyBridge support. Both these options can also be used simultaneously. ***\033[0m
    Makefile:1131: recipe for target 'build/openblas/libopenblas64_.so' failed
    make[1]: *** [build/openblas/libopenblas64_.so] Error 1
    Makefile:78: recipe for target 'julia-deps' failed
    make: *** [julia-deps] Error 2
    

    The good thing is Julia is very well built. Doing what it says, has always worked for me. In this case:

    make -C deps clean-openblas
    make OPENBLAS_USE_THREAD=0 OPENBLAS_TARGET_ARCH=NEHALEM
    

    Remember to add -j X if you want.

  5. Once this finishes, there will be a binary named julia in this folder.

  6. Now you can create a symbolic link in any folder that is specified in your $PATH
    echo $PATH
      /home/ruben/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin
    

    In this case, I'll create the symbolic link under /home/ruben/bin which is defined already. mkdir $HOME/bin ln -s $(pwd)/julia ${HOME}/bin Since I don't know where you put the julia folder we cloned using Git. $(pwd) will give us that path (the path of the current folder to be more specific). And since I don't know the username you use, ${HOME} will give us that.

Optional: If for some reason /home/<username>/bin is not defined and you don't have access to write to any of the other folders, you can always add that to the $PATH variable.

    nano ~/.bashrc

Replace nano with whichever editor you want.
At the end add:

    export PATH=/home/<username>/bin:${PATH}

To exit nano

    ctrl+o
    ctrl+x