Home

Awesome

Juliaup - Julia version manager

This repository contains a cross-platform installer for the Julia programming language.

The installer also bundles a full Julia version manager called juliaup. One can use juliaup to install specific Julia versions, it alerts users when new Julia versions are released and provides a convenient Julia release channel abstraction.

Status

This installer is considered production ready.

Installation

On all platforms it is recommended that you first uninstall any previous Julia versions and undo any modifications you might have made to put julia on the PATH before you install Julia with the installer in this repository.

Windows

On Windows Julia and Juliaup can be installed directly from the Windows store here. One can also install exactly the same version by executing

winget install julia -s msstore

on a command line.

If the Windows Store is blocked on a system, we have an alternative MSIX App Installer based setup. Note that this is currently experimental, please report back successes and failures here. To use the App Installer version, download this file and open it by double clicking on it.

If neither the Windows Store nor the App Installer version work on your Windows system, you can also use a MSI based installer. Note that this installation methods comes with serious limitations and is generally not recommended unless no other method works. For example, there is no automatic update mechanism for Juliaup with this installation method. The 64 bit version of the MSI installer can be downloaded from here and the 32 bit version from here. By default the install will be a per-user install that does not require elevation. You can also do a system install by running the following command from a shell:

msiexec /i <PATH_TO_JULIA_MSI> ALLUSERS=1

Mac and Linux

Juliaup can be installed on Linux or Mac by executing

curl -fsSL https://install.julialang.org | sh

in a shell.

Command line arguments

One can pass various command line arguments to the Julia installer. The syntax for installer arguments is

curl -fsSL https://install.julialang.org | sh -s -- <ARGS>

Here <ARGS> should be replaced with one or more of the following arguments:

Software Repositories

Important note: As of now, we strongly recommend to install Juliaup via the Windows Store or curl command above rather than through OS-specific software repositories (see below) as the Juliaup variants provided by the latter currently have some drawbacks (that we hope to lift in the future).

Homebrew
brew install juliaup
Arch Linux - AUR

On Arch Linux, Juliaup is available in the Arch User Repository (AUR) in two packages.

  1. juliaup (locally built)
  2. juliaup-bin (binary from github releases)
openSUSE Tumbleweed

On openSUSE Tumbleweed, Juliaup is available. To install, run with root privileges:

zypper install juliaup
Solus

On Solus, Juliaup is available. To install, run with root privileges:

eopkg install juliaup
cargo

To install via Rust's cargo, run:

cargo install juliaup

Continuous Integration (CI)

If you use GitHub Actions as your CI provider, you can use the julia-actions/install-juliaup action to install Juliaup in CI.

Using Juliaup

Once you have installed Juliaup, julia is on the PATH, and on Windows there is a start menu shortcut and it will show up as a profile in Windows Terminal. Any of those will start Julia. The VS Code extension will also automatically find this Julia installation.

Here are some of the things you can do with juliaup:

The available system provided channels are:

All of these channels can be combined with the ~x86, ~x64 or ~aarch64 suffix to download a specific platform version.

Using installed Julia versions

To launch the default Julia version simply run julia in your terminal.

To launch a specific Julia version, say in channel release, run julia +release.

Overrides

The Julia launcher julia automatically determines which specific version of Julia to launch. There are several ways to control and override which Juliaup channel should be used:

  1. A command line Julia version specifier, such as julia +release.
  2. The JULIAUP_CHANNEL environment variable.
  3. A directory override, set with the juliaup override set command.
  4. The default Juliaup channel.

The channel is used in the order listed above, using the first available option.

Path used by Juliaup

Juliaup will by default use the Julia depot at ~/.julia to store Julia versions and configuration files. This can be changed by setting the JULIAUP_DEPOT_PATH environment variable. Caution: Previous versions of Juliaup used the content of the environment variable JULIA_DEPOT_PATH to locate Juliaup files, the current version changed this behavior and no longer depends on JULIA_DEPOT_PATH.

Juliaup server

Juliaup by default downloads julia binary tarballs from the official server "https://julialang-s3.julialang.org". If requested, the environment variable JULIAUP_SERVER can be used to tell Juliaup to use a third-party mirror server.

Development guides

For juliaup developers, information on how to build juliaup locally, update julia versions, and release updates can be found in the wiki https://github.com/JuliaLang/juliaup/wiki

To use unstable preview versions of juliaup (e.g. to get a patch before it makes it into the latest release), use

curl -fsSL https://install.julialang.org/releasepreview | sh

More information

This JuliaCon 2021 talk is a short introduction to Juliaup. Note that the video was recorded before the Linux and Mac versions were finished, but all the information about juliaup itself applies equally on Linux and Mac.

This JuliaCon 2022 talk provides some background on the design of Juliaup.