Julia Installer 4 Linux(and MacOS) - Light
Project description
JILL.py
The Python fork of JILL - Julia Installer 4 Linux (and MacOS) - Light
Features
- download latest Julia release from nearest mirror server. Check sources for the list of all registered mirrors.
- install julia for Linux and MacOS (including nightly build:
latest
) - manage multiple julia releases
- easily set up a new release mirror
Installation
First you'll need to install jill
using pip: pip install jill --user -U
Note that Python >= 3.6
is required.
Usage examples for most users
TL;DR jill install [version]
covers most of your need. jill install
does the following things:
- query latest julia release version, currently, it's
1.3.1
- download, verify and install julia
1.3.1
- make symlinks:
julia
,julia-1
,julia-1.3
andjulia-1.3.1
- remove downloaded files
Here's a list of slightly advanced usages that you may be interested in:
- download:
- latest stable release for current system:
jill download
- latest
1.y
version:jill download 1
- latest
1.3.z
version:jill download 1.3
- temporary releases:
jill download 1.4.0-rc1
- from specific upstream:
jill download --upstream Official
- specific release version:
jill download --version 1.3.0
- specific system:
jill download --sys freebsd
- specific architecture:
jill download --arch i686
- download Julia to specific dir:
jill download --outdir another/dir
- latest stable release for current system:
- install Julia for current system:
- system-wide for root:
sudo jill install
(make symlink in/usr/bin
) - only for current non-root user:
jill install
(make symlink in~/.local/bin
) - specific version:
jill install 1.3
- also copy root project from older julia environment:
jill install --upgrade
- don't need interactive promopt:
jill install --confirm
- system-wide for root:
- check if there're new Julia versions:
jill update
- add
--update
flag todownload
orinstall
commands
- find out all registered upstreams:
jill upstream
- check the not-so-elaborative documentation:
jill [COMMAND] -h
(e.g.,jill download -h
)
For who are interested in setting up a new release mirror
Mirror
jill mirror [outdir]
:
- checks if there're new julia releases
- downloads all releases Julia releases into
outdir
(default./julia_pkg
) - (Optional): with flag
--period PERIOD
, it will repeat step 1 and 2 everyPERIOD
seconds
You can create a mirror.json
in current folder to override the default mirror
behaviors. The mirror configuration example shows the default
values for all possible configurable items.
Repository jill-mirror provides an easy to
start docker-compose.yml
for you to start with, which is just a simple docker image built
upon jill mirror
.
Register new mirror
If it's an public mirror and you want to share it worldwide. You can add an entry to the public registry, make a PR, then I will tag a new release for that.
If it's an internal mirror and you don't plan to make it public, you can create a config
file at ~/.config/jill/sources.json
locally. The contents will be appended to
the public registry and overwrite already existing items if there are.
In the registry config file, a new mirror is a dictionary in the upstream
field:
name
: a distinguishable mirror nameurls
: URL template to retrive Julia releaselatest_urls
: URL template to retrive the nightly build of Julia release
Placeholders
Placeholders are used to register new mirrors. For example, the stable release url of
the "Official" release server owned by JuliaComputing is
"https://julialang-s3.julialang.org/bin/$sys/$arch/$minor_version/$filename"
There're several predefined placeholders for various systems and architectures:
system
:windows
,macos
,linux
,freebsd
sys
:winnt
,mac
,linux
,freebsd
os
:win
,mac
,linux
,freebsd
architecture
:x86_64
,i686
,ARMv7
,ARMv8
arch
:x86
,x64
,armv7l
,aarch64
osarch
:win32
,win64
,mac64
,linux-armv7l
,linux-aarch64
osbit
:win32
,win64
,linux32
,linux64
,linuxaarch64
bit
:32
,64
extension
:exe
,tar.gz
,dmg
(no leading.
)
There're also placeholders for versions:
patch_version
:1.2.3
,latest
minor_version
:1.2
,latest
major_version
:1
version
:1.2.3-pre
,latest
(no leadingv
)vpatch_version
:v1.2.3
,latest
vminor_version
:v1.2
,latest
vmajor_version
:v1
,latest
To keep consistent names with official releases, you can use predefined name placeholders:
- stable release
filename
:julia-$version-$osarch.$extension
- nightly release
latest_filename
:"julia-latest-$osbit.$extension"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.