# Installing julia in the scaleway bare metal ARMv7 servers

**URL:** <https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169>\
**Category:** New to Julia\
**Tags:** question\
**Created:** [October 11, 2018, 10:35am UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169 "2018-10-11T10:35:04Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![abhi18av](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abhi18av/32/5698_2.png) [@abhi18av](https://discourse.julialang.org/u/abhi18av)\
**Post date:** [October 11, 2018, 10:35am UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/1 "2018-10-11T10:35:04Z")

</div>

Hi everyone,

I come after being redirected from [this issue on github repo](https://github.com/JuliaLang/julia/issues/29589#issuecomment-428860303), regarding how can I install the julia-1.0.1 version to my ARMv7 server.

I tried using the ppa but it doesn’t seem to be there for the ARMv7 architecture.

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [October 11, 2018, 5:59pm UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/2 "2018-10-11T17:59:31Z")

</div>

> [@abhi18av](#):
>
> how can I install the julia-1.0.1 version to my ARMv7 server.

Maybe you can install from the source.  
According to the [https://github.com/JuliaLang/julia/blob/master/README.arm.md#julia-on-arm-linux](https://github.com/JuliaLang/julia/blob/master/README.arm.md#julia-on-arm-linux)

- _“On the current [Scaleway](http://scaleway.com/) ARM servers, the Julia build works out of the box.”_

---

<div class="post-metadata">

**Author:** ![abhi18av](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abhi18av/32/5698_2.png) [@abhi18av](https://discourse.julialang.org/u/abhi18av)\
**Post date:** [October 13, 2018, 3:38am UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/3 "2018-10-13T03:38:52Z")

</div>

@ImreSamu, nah I tried and it didn’t work out that well. Have you managed to do it?

And I do think the Readme needs to be updated for ARM devices.

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [October 13, 2018, 12:44pm UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/4 "2018-10-13T12:44:40Z")

</div>

Sorry, I don’t have an experience on ARM.

As I see only ( ARMv7 1.0.0 binaries ) exist now.

> [@Where are the ARM binaries?](https://discourse.julialang.org/t/where-are-the-arm-binaries/15752/3):
>
> You can still use the 1.0.0 binaries on ARM: [https://julialang-s3.julialang.org/bin/linux/armv7l/1.0/julia-1.0.0-linux-armv7l.tar.gz](https://julialang-s3.julialang.org/bin/linux/armv7l/1.0/julia-1.0.0-linux-armv7l.tar.gz). I’ll post on the 1.0.1 announcement once ARM binaries are available for 1.0.1.

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [October 13, 2018, 2:08pm UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/5 "2018-10-13T14:08:23Z")

</div>

I have made a little experiment,

so …

My workaround for **SCALEWAY ARMv8** - tested NOW.

INSTANCE TYPE: ARM64-2GB  
CORES: 4 ARMv8  
MEMORY: 2 GB  
IMAGE: Ubuntu Bionic Beaver (18.04 LTS)

Steps:

- **command line upgrade to 18.10 ( complex task ) + reboot**
- apt-get install julia
- julia

```julia
root@arm8julia:~# julia
               _
   _ _ _(_)_ | Documentation: https://docs.julialang.org
  (_) | (_) (_) |
   _ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` | |
  | | |_| | | | (_| | | Version 1.0.1
 _/ |\ __'_|_|_|\__'_| | Ubuntu ⛬ julia/1.0.1-0ubuntu1
|__/ |

julia> versioninfo()
Julia Version 1.0.1
Platform Info:
  OS: Linux (aarch64-linux-gnu)
  CPU: unknown
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, generic)

julia> 

```

system info:

```julia
root@arm8julia:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu Cosmic Cuttlefish (development branch)
Release:	18.10
Codename:	cosmic
root@arm8juliat:~# lscpu
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: Cavium
Model: 1
Model name: ThunderX 88XX
Stepping: 0x1
BogoMIPS: 200.00
NUMA node0 CPU(s): 0-3
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
root@arm8julia:~# dpkg -l | grep -E 'llvm|julia'
ii julia 1.0.1-0ubuntu1 arm64 high-performance programming language for technical computing
ii julia-common 1.0.1-0ubuntu1 all high-performance programming language for technical computing (common files)
ii libjulia1 1.0.1-0ubuntu1 arm64 high-performance programming language for technical computing (runtime library)
ii libllvm6.0:arm64 1:6.0.1-9 arm64 Modular compiler and toolchain technologies, runtime library
root@arm8julia:~# 

```

---

<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:** [October 13, 2018, 2:41pm UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/6 "2018-10-13T14:41:57Z")

</div>

FWIW, Fedora 29 (upcoming) also has a Julia package for ARM (and PPC) now.

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [October 13, 2018, 5:20pm UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/7 "2018-10-13T17:20:46Z")

</div>

just a note

I have tried a similar upgrade → ( ARMv7 (C2) ubuntu 18.04 → ubuntu 18.10 )  
but the julia ( ubuntu18.10 + ARMv7) is not working for me.  
( and the Scaleway ARMv7 CPU is extremely slow ( BogoMIPS: 50.00 )

```julia
root@scw-dbaef4:~# ldd /usr/bin/julia
	libjulia.so.1 => /usr/bin/../lib/arm-linux-gnueabihf/libjulia.so.1 (0xb6d22000)
	libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6d0f000)
	librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb6cf9000)
	libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6cd4000)
	libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6cab000)
	libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6bb1000)
	libutf8proc.so.2 => /usr/bin/../lib/arm-linux-gnueabihf/libutf8proc.so.2 (0xb6b57000)
	libLLVM-6.0.so.1 => /usr/bin/../lib/arm-linux-gnueabihf/libLLVM-6.0.so.1 (0xb416b000)
	libunwind.so.8 => /usr/bin/../lib/arm-linux-gnueabihf/libunwind.so.8 (0xb412c000)
	libstdc++.so.6 => /usr/bin/../lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb4019000)
	libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb3f9e000)
	/lib/ld-linux-armhf.so.3 (0xb6f1c000)
	libffi.so.6 => /usr/lib/arm-linux-gnueabihf/libffi.so.6 (0xb3f88000)
	libedit.so.2 => /usr/lib/arm-linux-gnueabihf/libedit.so.2 (0xb3f57000)
	libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0xb3f2d000)
	libtinfo.so.6 => /lib/arm-linux-gnueabihf/libtinfo.so.6 (0xb3f01000)
	liblzma.so.5 => /lib/arm-linux-gnueabihf/liblzma.so.5 (0xb3ed7000)
root@scw-dbaef4:~# /usr/bin/julia
ERROR: Unable to find compatible target in system image.
root@scw-dbaef4:~# julia
ERROR: Unable to find compatible target in system image.

root@scw-dbaef4:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu Cosmic Cuttlefish (development branch)
Release:	18.10
Codename:	cosmic
root@scw-dbaef4:~# lscpu
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Vendor ID: Marvell
Model: 2
Model name: PJ4B-MP
Stepping: 0x2
CPU max MHz: 1333.0000
CPU min MHz: 666.5000
BogoMIPS: 50.00
Flags: half thumb fastmult vfp edsp thumbee vfpv3 tls idiva idivt vfpd32 lpae
root@scw-dbaef4:~# dpkg -l | grep -E 'llvm|julia'
ii julia 1.0.1-0ubuntu1 armhf high-performance programming language for technical computing
ii julia-common 1.0.1-0ubuntu1 all high-performance programming language for technical computing (common files)
ii libjulia1 1.0.1-0ubuntu1 armhf high-performance programming language for technical computing (runtime library)
ii libllvm6.0:armhf 1:6.0.1-9 armhf Modular compiler and toolchain technologies, runtime library
root@scw-dbaef4:~# 

˙``
```

---

<div class="post-metadata">

**Author:** ![abhi18av](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abhi18av/32/5698_2.png) [@abhi18av](https://discourse.julialang.org/u/abhi18av)\
**Post date:** [October 14, 2018, 3:12am UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/8 "2018-10-14T03:12:00Z")

</div>

Thanks for the replies on this one, guys! 🙂

However, I really do prefer using an LTS in Ubuntu ( if the new `julia` build aren’t available for CentOS etc ) .

Moreover, I tried downloading the binaries mentioned in [https://julialang-s3.julialang.org/bin/linux/armv7l/1.0/julia-1.0.0-linux-armv7l.tar.gz](https://julialang-s3.julialang.org/bin/linux/armv7l/1.0/julia-1.0.0-linux-armv7l.tar.gz) but when I try to use that it throws the following error

````julia
root@pup:~# ./julia-1.0.0/bin/julia
Invalid ARM instruction at 0xadc03274: 0xf2800050

signal (4): Illegal instruction
in expression starting at no file:0
__init__ at ./sysinfo.jl:92
jl_apply_generic at /buildworker/worker/package_linuxarmv7l/build/src/gf.c:2182
jl_apply at /buildworker/worker/package_linuxarmv7l/build/src/julia.h:1536 [inlined]
jl_module_run_initializer at /buildworker/worker/package_linuxarmv7l/build/src/toplevel.c:90
_julia_init at /buildworker/worker/package_linuxarmv7l/build/src/init.c:811
julia_init__threading at /buildworker/worker/package_linuxarmv7l/build/src/task.c:302
main at /buildworker/worker/package_linuxarmv7l/build/ui/repl.c:227
__libc_start_main at /lib/arm-linux-gnueabihf/libc.so.6 (unknown line)
_start at ./julia-1.0.0/bin/julia (unknown line)
Allocations: 2997 (Pool: 2992; Big: 5); GC: 0
Illegal instruction (core dumped)```
````

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [October 14, 2018, 12:18pm UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/9 "2018-10-14T12:18:19Z")

</div>

> [@abhi18av](#):
>
> However, I really do prefer using an LTS in Ubuntu ( if the new `julia` build aren’t available for CentOS etc ) .

- the (Scaleway)ARMv7 is important ? imho the (Scaleway)ARMv8 is better ( same price + \>4x performance )
- on ARMv8 - you can containerize the Julia system.

on (Scaleway)ARMv8 + Ubuntu18.04 LTS

- `apt install docker.io`

**v1. ubuntu:18.10** - looks OK

- `docker run -it ubuntu:18.10 bash`
- `apt-get update`
- `apt-get install julia`

**v2. fedora:29** - looks OK

- `docker run -it fedora:29 bash`
- `dnf update`
- `dnf install julia`

or you can create a customized JULIA docker image with your packages

```julia
FROM ubuntu:18.10
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        build-essential \
        ca-certificates \
        git \
        nano \
        sqlite3 \
        julia \
        wget \
    && rm -rf /var/lib/apt/lists/* /tmp/*
RUN julia -O3 -e 'using Pkg; Pkg.REPLMode.pkgstr("add CSV ; precompile"); using CSV'
RUN julia -O3 -e 'using Pkg; Pkg.REPLMode.pkgstr("add DataFrames ; precompile"); using DataFrames'
RUN julia -O3 -e 'using Pkg; Pkg.REPLMode.pkgstr("add DataStreams; precompile"); using DataStreams'

```

```julia
root@scw-058524:~/julia# docker run -it julia julia 
               _
   _ _ _(_)_ | Documentation: https://docs.julialang.org
  (_) | (_) (_) |
   _ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` | |
  | | |_| | | | (_| | | Version 1.0.1
 _/ |\ __'_|_|_|\__'_| | Ubuntu ⛬ julia/1.0.1-0ubuntu1
|__/ |

julia> 

```

---

<div class="post-metadata">

**Author:** ![abhi18av](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abhi18av/32/5698_2.png) [@abhi18av](https://discourse.julialang.org/u/abhi18av)\
**Post date:** [October 14, 2018, 2:03pm UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/10 "2018-10-14T14:03:59Z")

</div>

Hi @ImreSamu

Thanks for the speed comparisons! I have since switched to ARMv8 servers and I installed docker already.

However, the nature of my experiement is that I’d have to call `julia` from `python pyjulia` library and see if I could use the `julia` libraries together from python. I don’t know whether this is possible using the `docker` image ?

Please let me know if there’s a `julia-1.0` build which I could run natively on the `ARMv8` instance 🙂

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [October 14, 2018, 4:14pm UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/11 "2018-10-14T16:14:14Z")

</div>

> [@abhi18av](#):
>
> Please let me know if there’s a `julia-1.0` build which I could run natively on the `ARMv8` instance

You can subscribe to the [Julia 64bit ARM Binary Version is missing for Julia 1.0.0 · Issue #28783 · JuliaLang/julia · GitHub](https://github.com/JuliaLang/julia/issues/28783) notifications.  
I prefer the AMD64 platform → more user → less surprise. ( imho: this is much better platform for the first experiments with `julia + python pyjulia` ) If it works - you can re-test on ARMv8.

> [@abhi18av](#):
>
> However, the nature of my experiement is that I’d have to call `julia` from `python pyjulia` library and see if I could use the `julia` libraries together from python. I don’t know whether this is possible using the `docker` image ?

you can put and run everything (python + julia + R + … ) inside to the docker image.  
for example : **Jupyter datascience-notebook** ( x86\_64 )

- [https://github.com/jupyter/docker-stacks/blob/master/datascience-notebook/Dockerfile](https://github.com/jupyter/docker-stacks/blob/master/datascience-notebook/Dockerfile)

or **[math-server-docker](https://github.com/felipenoris/math-server-docker)**

- “The ideal multi-user Data Science server with Jupyterhub and RStudio, ready for Python, R and Julia languages.” [GitHub - felipenoris/math-server-docker: The ideal multi-user Data Science server with Jupyterhub and RStudio, ready for Python, R and Julia languages.](https://github.com/felipenoris/math-server-docker)  
[https://github.com/felipenoris/math-server-docker/blob/master/Dockerfile](https://github.com/felipenoris/math-server-docker/blob/master/Dockerfile) ( **centos:7 x86\_64** )

I prefer the Docker-based development/experimenting. - because I have a clean environment and no package problems.

---

<div class="post-metadata">

**Author:** ![abhi18av](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abhi18av/32/5698_2.png) [@abhi18av](https://discourse.julialang.org/u/abhi18av)\
**Post date:** [October 15, 2018, 11:53am UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/12 "2018-10-15T11:53:36Z")

</div>

Hi @ImreSamu,

I have since moved away from the `ARM` servers based on this experience and the issues I’ve been facing. I do agree with your advice regarding sticking with what’s more generally used.

And I am grateful for the `docker` based links you have shared! 👍

---

<div class="post-metadata">

**Author:** ![viralbshah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/viralbshah/32/54_2.png) [@viralbshah](https://discourse.julialang.org/u/viralbshah)\
**Post date:** [October 16, 2018, 10:05am UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/13 "2018-10-16T10:05:03Z")

</div>

Don’t the default binaries from [julialang.org](http://julialang.org) for ARM just work? We just need to delete README.arm.md.

-viral

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [October 16, 2018, 12:47pm UTC](https://discourse.julialang.org/t/installing-julia-in-the-scaleway-bare-metal-armv7-servers/16169/14 "2018-10-16T12:47:16Z")

</div>

> [@viralbshah](#):
>
> Don’t the default binaries from [julialang.org](http://julialang.org) for ARM just work?

As I see - no **ARMv7** / **ARMv8** binaries link ( for the latest Julia (\>= v1.0) ) here :

- [Download Julia](https://julialang.org/downloads/)
- [https://julialang.org/downloads/nightlies.html](https://julialang.org/downloads/nightlies.html)

Only **Julia v0.5.2 (unmaintained)** for ARMv7

- [https://julialang.org/downloads/oldreleases.html](https://julialang.org/downloads/oldreleases.html)

Or on the old website: **v0.7.0-beta2** for ARMv7

- http://www\_old.julialang.org/downloads/

The [status.julialang.org - Service Monitoring](https://status.julialang.org/download/linux-arm) - link (from README.arm.md ) not working for me.

As I see the Ubuntu 18.10 Julia (ARMv8) compiled with `USE_SYSTEM_LLVM=1 ` flags.  
but [_"Using an unpatched or different version of LLVM will result in errors and/or poor performance. "_](https://github.com/JuliaLang/julia/blob/master/README.md#llvm)
