Julia v1.7.1 on RPI4: Use JILL

Running Ubuntu 21.10 on RPI4 and I had trouble installing anything except v1.5 via sudo apt install julia so I wanted to highlight how well JILL works. Just scroll down to the Advanced: The Python API section. It’s not too advanced, so don’t worry.

dmoored4@rpi4:~$ sudo apt install python3-pip

dmoored4@rpi4:~$ pip install jill

At this point, the “advanced” is necessary because the command jill install did not work. I think maybe the shell script doesn’t work on rpi but I’m not entirely sure. Just start python and follow the instructions from there.

dmoored4@rpi4:~ python3
>>> from jill.install import install_jilia
>>> from jill.download import download_package
>>> install_julia(confirm=True)
>>> exit()

Open a new terminal and type julia to start.

Highly recommend this process and thanks to those who made it!


Thankyou for sharing that. Your point about the distribution provided packages is well made. I work in HPC and see this often - to get the latest scientific packages you have to use Eaybuild or Spack.
I will turn the point around though - the reason why Ubuntu is popular in the ML space is because it has very up to date packages available from distro channels. Clearly not Julia though!

I am recalling I’ve been encountering problems with jill on Neoverse N1 thus I believe ARM is not fully supported (by jill). I have not been digging into this topic so thanks for your info and solution (workaround) to the problem.

It’s not a shell script, it’s a Python script. But, why did it fail? … hmm, even if you had installed the jill.sh bash script, it’s called jill.sh not jill, so I doubt that interfered. If you recall or can capture the output of the failed jill install and post it here, or better yet, on the (Python) jill github repo, it would useful.

If the workaround (explicit instructions above) work, then this means jill supports the platform, since the Python script jill does essentially the same thing. But, why the executable jill failed is a good question.

I just did some testing on Neoverse N1. I can not confirm problems with pip3 install on Neoverse N1. The installation process went ok (I used pip3 with sudo, probably better is to use pip3 install --user. I have not checked that) . However, my memory related to the use of jill.sh on Neoverse seems to be correct. When executing the script I received an error once again.

$ JULIA_VERSION=1.7.1 bash -u -ci "$(curl -fsSL https://raw.githubusercontent.com/abelsiqueira/jill/master/jill.sh)"
bash: BASHRCSOURCED: unbound variable
JILL - Julia Installer 4 Linux - Light
Copyright (C) 2017-2021 Abel Soares Siqueira <abel.s.siqueira@gmail.com>
Distributed under terms of the GPLv3 license.

This script will:

  - Try to download julia version '1.7.1'
  - Create a link for julia
  - Create a link for julia-VER

Download folder: '/home/opc/packages/julias'
Link folder: '/home/opc/.local/bin'

Download folder will be created if required
Do you accept these terms? (Y/N) y
Downloading Julia version 1.7.1
error downloading julia-1.7.1
### OK
$ sudo yum install python3-pip
Last metadata expiration check: 1:46:47 ago on Wed 02 Feb 2022 02:31:57 PM GMT.
Package python3-pip-9.0.3-20.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
### OK
$ sudo pip3 install jill
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting jill
  Downloading https://files.pythonhosted.org/packages/36/79/979f61cd3c3a4ce248124b000b1036cfffbf662ce1e34ae6bce62908f409/jill-0.10.1-py3-none-any.whl (40kB)
    100% |████████████████████████████████| 40kB 11.1MB/s 
Collecting fire (from jill)
  Downloading https://files.pythonhosted.org/packages/11/07/a119a1aa04d37bc819940d95ed7e135a7dcca1c098123a3764a6dcace9e7/fire-0.4.0.tar.gz (87kB)
    100% |████████████████████████████████| 92kB 13.2MB/s 
Collecting wget (from jill)
  Downloading https://files.pythonhosted.org/packages/47/6a/62e288da7bcda82b935ff0c6cfe542970f04e29c756b0e147251b2fb251f/wget-3.2.zip
Collecting python-gnupg (from jill)
  Downloading https://files.pythonhosted.org/packages/42/b2/6e6ac110f4755ac02e15c469b7c71a154c564fcdfaec19bf2ea22a03436a/python_gnupg-0.4.8-py2.py3-none-any.whl
Requirement already satisfied: requests in /usr/lib/python3.6/site-packages (from jill)
Collecting semantic-version (from jill)
  Downloading https://files.pythonhosted.org/packages/a5/15/00ef3b7888a10363b7c402350eda3acf395ff05bebae312d1296e528516a/semantic_version-2.8.5-py2.py3-none-any.whl
Collecting requests-futures (from jill)
  Downloading https://files.pythonhosted.org/packages/63/9e/7b986554f6de56f1d43f9fdc410631009af6034027efa31f90867d264319/requests_futures-1.0.0-py2.py3-none-any.whl
Requirement already satisfied: jsonschema in /usr/lib/python3.6/site-packages (from jill)
Requirement already satisfied: six in /usr/lib/python3.6/site-packages (from fire->jill)
Collecting termcolor (from fire->jill)
  Downloading https://files.pythonhosted.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/lib/python3.6/site-packages (from requests->jill)
Requirement already satisfied: idna<2.8,>=2.5 in /usr/lib/python3.6/site-packages (from requests->jill)
Requirement already satisfied: urllib3<1.25,>=1.21.1 in /usr/lib/python3.6/site-packages (from requests->jill)
Installing collected packages: termcolor, fire, wget, python-gnupg, semantic-version, requests-futures, jill
  Running setup.py install for termcolor ... done
  Running setup.py install for fire ... done
  Running setup.py install for wget ... done
Successfully installed fire-0.4.0 jill-0.10.1 python-gnupg-0.4.8 requests-futures-1.0.0 semantic-version-2.8.5 termcolor-1.1.0 wget-3.2
### OK
jill install
JILL - Julia Installer 4 Linux (MacOS, Windows and FreeBSD) -- Light

jill will:
  1) install Julia latest stable release for linux-aarch64 into /home/opc/packages/julias
  2) make symlinks in /home/opc/.local/bin
You may need to manually add /home/opc/.local/bin to PATH
Continue installation? [Y/n] Y


$ julia
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.7.1 (2021-12-22)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |
Architecture:        aarch64
Vendor ID:           ARM
Model:               1
Model name:          Neoverse-N1
cat /etc/os-release
NAME="Oracle Linux Server"
PRETTY_NAME="Oracle Linux Server 8.5"