- Clone the repo
git clone https://github.com/JuliaLang/julia.git -
Make sure your version of Git supports
--detach
. If not, you'll run into this issuecd 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 -
Now we run make.
make
We can use
-j X
where X is a number (number of cores for example) to specify how many commandsmake
can run simultaneously. If we specify-j
without a number,make
will not limit the amount of processes that can run simultaneously. -
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. -
Once this finishes, there will be a binary named
julia
in this folder. - 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