JILL -- Julia Installer for Linux (MacOS, Windows and FreeBSD) -- Light
Project description
JILL.py
The enhanced Python fork of JILL -- Julia Installer for Linux (MacOS, Windows and FreeBSD) -- Light
Features
let's make a simple and stupid julia installer 中文说明
- download latest Julia release from nearest mirror server.
- across multiple platforms.
- manage multiple julia releases.
Installation
First you'll need to install jill
using pip: pip install jill --user -U
Note that Python >= 3.6
is required. For base docker images, you also need to make sure wget
and gnupg
are installed.
Usage examples for most users
TL;DR jill install [version]
covers most of your need.
installation demo
When you type jill install
, it does the following things:
- query latest stable release, it's
1.4.2
at the time of writing. - download, verify and install julia
1.4.2
- make alias:
julia
,julia-1
,julia-1.4
and possiblyjulia-latest
Valid version
syntax:
stable
: latest stable release1
: latest stable1.y.z
release1.2
: latest stable1.2.z
release1.2.3
/1.2.3-rc1
: as it isnightly
/latest
: nightly builds
Here's a list of slightly advanced usages that you may be interested in:
- download only:
- latest stable release for current system:
jill download
- specific system:
jill download --sys freebsd --arch x86_64
- download Julia to specific dir:
jill download --outdir another/dir
- latest stable release for current system:
- install Julia for current system:
- (linux only) system-wide for root:
sudo jill install
- upgrade from older julia version:
jill install --upgrade
- don't need interactive promopt:
jill install --confirm
- (linux only) system-wide for root:
- upstream:
- from specific upstream:
jill install --upstream Official
- find out all registered upstreams:
jill upstream
- add a private upstream: make a modifed copy of public registry at:
- Linux, MacOS and FreeBSD:
~/.config/jill/sources.json
- Windows:
~/AppData/Local/julias/sources.json
- Linux, MacOS and FreeBSD:
- from specific upstream:
You can find a more verbose documentation using 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 provided by Julialang.org 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.