Skip to main content

JILL -- Julia Installer for Linux (MacOS, Windows and FreeBSD) -- Light

Project description

JILL.py

py version version Actions Status codecov release-date

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:

  1. query latest stable release, it's 1.4.2 at the time of writing.
  2. download, verify and install julia 1.4.2
  3. make alias: julia, julia-1, julia-1.4 and possibly julia-latest

Valid version syntax:

  • stable: latest stable release
  • 1: latest stable 1.y.z release
  • 1.2: latest stable 1.2.z release
  • 1.2.3/1.2.3-rc1: as it is
  • nightly/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
  • 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
  • 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

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]:

  1. checks if there're new julia releases
  2. downloads all releases Julia releases into outdir (default ./julia_pkg)
  3. (Optional): with flag --period PERIOD, it will repeat step 1 and 2 every PERIOD 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 name
  • urls: URL template to retrive Julia release
  • latest_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 leading v)
  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jill-0.6.12.tar.gz (27.8 kB view hashes)

Uploaded Source

Built Distribution

jill-0.6.12-py3-none-any.whl (30.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page