# Building Julia Offline

**URL:** <https://discourse.julialang.org/t/building-julia-offline/9252>\
**Category:** General Usage\
**Created:** [February 22, 2018, 1:32pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252 "2018-02-22T13:32:59Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![jokalokao](https://avatars.discourse-cdn.com/v4/letter/j/f14d63/32.png) [@jokalokao](https://discourse.julialang.org/u/jokalokao)\
**Post date:** [February 22, 2018, 1:32pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252/1 "2018-02-22T13:32:59Z")

</div>

So, I’m trying to build Julia 0.6.2 on a machine without access to the internet.  
I am able to do a make without errors using the julia-full package.  
The problem starts with make install. How do I run make install without needing git to download packages (eg: METADATA.jl) from github? I tried to set NO\_GIT=1, but that does not work. Is there any way I can download the packages myself and copy them to the installation build path?

---

<div class="post-metadata">

**Author:** ![John\_Hearns](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/john_hearns/32/1685_2.png) [@John\_Hearns](https://discourse.julialang.org/u/John_Hearns)\
**Post date:** [February 22, 2018, 2:33pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252/2 "2018-02-22T14:33:05Z")

</div>

jokalokao I am interested in this also, as I have installed systems on sites where people with guns inspect your security pass. (I’m talking about UK SEcure sites).

Does make full-source-dist not help?

Julia has lots of build dependencies where we use patched versions that has not yet been included by the popular package managers. These dependencies will usually be automatically downloaded when you build, but if you want to be able to build Julia on a computer without internet access you should create a full-source-dist archive with the special make target  
make full-source-dist

that creates a julia-version-commit.tar.gz archive with all required dependencies.

---

<div class="post-metadata">

**Author:** ![nalimilan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nalimilan/32/147_2.png) [@nalimilan](https://discourse.julialang.org/u/nalimilan)\
**Post date:** [February 22, 2018, 3:09pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252/3 "2018-02-22T15:09:46Z")

</div>

Can you post the `make install` output? There have been issues with `make` attempting to rebuild the docs when it should not be necessary, and that requires installing packages.

---

<div class="post-metadata">

**Author:** ![JaredCrean2](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jaredcrean2/32/3574_2.png) [@JaredCrean2](https://discourse.julialang.org/u/JaredCrean2)\
**Post date:** [February 22, 2018, 4:26pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252/4 "2018-02-22T16:26:10Z")

</div>

I ran into the same problem on julia 0.7. The workaround in that case was to

1. build julia 0.7 on some other machine (with access to the internet)
2. copy the `_build` directory to the non-networked machine,
3. run `touch doc/_build/html/en/index.html`.
4. run `make install`

This tricked `make install` into thinking the documentation was already up-to-date, so it doesn’t try to rebuild it, and therefore downloading packages.

---

<div class="post-metadata">

**Author:** ![John\_Hearns](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/john_hearns/32/1685_2.png) [@John\_Hearns](https://discourse.julialang.org/u/John_Hearns)\
**Post date:** [February 22, 2018, 4:31pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252/5 "2018-02-22T16:31:46Z")

</div>

@jokalokao This seems to work for me  
Download the Julia tarball with dependencies julia-0.6.2-full.tar.gz  
Transfer to machine with no internet access  
tar zxvf julia-0.6.2-full.tar.gz ; cd julia-0.6.2  
create Make.user file containing:  
NO\_GIT:=1  
USE\_SYSTEM\_CURL:=0  
USE\_SYSTEM\_ARPACK:=0  
OPENBLAS\_TARGET\_ARCH:=HASWELL

I had to edit this line out of the Makefile:  
# Get all the dependencies downloaded  
# @$(MAKE) -C deps getall NO\_GIT=1

make -C base version\_git.jl.phony but this seems to do nothing ???

then make all the dependency libraries in ./deps  
make -C deps -j 20  
make

I suspect having to edit the Makefile is a misunderstanding on my part rather than a buglet

I am fighting with the Openblas build at the moment. Seems to come from Easybuild using version 2.66 of binutils. TO explain, my gcc is provided by Easybuild

ps. On that subject - has anyone worked with Easybuild and Julia? If I’m not wrong I may have asked this question.

---

<div class="post-metadata">

**Author:** ![jokalokao](https://avatars.discourse-cdn.com/v4/letter/j/f14d63/32.png) [@jokalokao](https://discourse.julialang.org/u/jokalokao)\
**Post date:** [February 22, 2018, 6:29pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252/6 "2018-02-22T18:29:38Z")

</div>

> [@John\_Hearns](#):
>
> make full-source-dist

It falls in the same problem

---

<div class="post-metadata">

**Author:** ![jokalokao](https://avatars.discourse-cdn.com/v4/letter/j/f14d63/32.png) [@jokalokao](https://discourse.julialang.org/u/jokalokao)\
**Post date:** [February 22, 2018, 6:29pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252/7 "2018-02-22T18:29:40Z")

</div>

I’ve got some warnings:

```
 Warning: git information unavailable; versioning information limited

```

And here the error occurs:

Building HTML documentation.  
INFO: Initializing package repository /path/to/julia-0.6.2/doc/deps/v0.6  
INFO: Cloning METADATA from [https://github.com/JuliaLang/METADATA.jl](https://github.com/JuliaLang/METADATA.jl)  
ERROR: LoadError: GitError(Code:ERROR, Class:Net, curl error: Failed to connect to [github.com](http://github.com) port XXX: Connection timed out  
)

---

<div class="post-metadata">

**Author:** ![nalimilan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nalimilan/32/147_2.png) [@nalimilan](https://discourse.julialang.org/u/nalimilan)\
**Post date:** [February 22, 2018, 10:37pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252/8 "2018-02-22T22:37:25Z")

</div>

Looks like the error I suspected. It’s generally due to file timestamps: the built manual is older than at least one source file, which prompts make to rebuild it. It was supposed to be fixed by [this PR](https://github.com/JuliaLang/julia/pull/24496), but it also depends on how the tarballs are built… Cc: @ararslan

---

<div class="post-metadata">

**Author:** ![ararslan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ararslan/32/3825_2.png) [@ararslan](https://discourse.julialang.org/u/ararslan)\
**Post date:** [February 27, 2018, 10:55pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252/9 "2018-02-27T22:55:28Z")

</div>

> [@nalimilan](#):
>
> but it also depends on how the tarballs are built

I don’t know what information is particularly relevant here, but you can take a look at the `light-` and `full-source-dist` targets in the [Julia Makefile](https://github.com/JuliaLang/julia/blob/master/Makefile#L465-L500).

---

<div class="post-metadata">

**Author:** ![nalimilan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nalimilan/32/147_2.png) [@nalimilan](https://discourse.julialang.org/u/nalimilan)\
**Post date:** [February 28, 2018, 8:41pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252/10 "2018-02-28T20:41:05Z")

</div>

I’ve just tried locally `make && make install`, and the docs were not rebuilt. Could you try that without any other options and without modifying any file? In particular, editing makefiles will likely trigger a rebuild.

---

<div class="post-metadata">

**Author:** ![jokalokao](https://avatars.discourse-cdn.com/v4/letter/j/f14d63/32.png) [@jokalokao](https://discourse.julialang.org/u/jokalokao)\
**Post date:** [March 7, 2018, 4:39pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252/11 "2018-03-07T16:39:45Z")

</div>

Yeah, removing some options I had chosen helped with the METADATA problem.  
And as @JaredCrean2 suggested:

> [@JaredCrean2](#):
>
> run touch doc/\_build/html/en/index.html.

I could install Julia.

Thank you for all your help!

---

<div class="post-metadata">

**Author:** ![nalimilan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nalimilan/32/147_2.png) [@nalimilan](https://discourse.julialang.org/u/nalimilan)\
**Post date:** [March 7, 2018, 5:06pm UTC](https://discourse.julialang.org/t/building-julia-offline/9252/12 "2018-03-07T17:06:32Z")

</div>

Do you know what options exactly? It would be useful to understand the problem.
