• Stars
    star
    982
  • Rank 46,621 (Top 1.0 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 4 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Julia installer and version multiplexer

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.

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:

  • --yes (or -y): Run the installer in a non-interactive mode. All configuration values use their default.
  • --default-channel <NAME>: Configure the default channel. For example --default-channel lts would install the lts channel and configure it as the default.

Software Repositories

Important note: As of now, we strongly recommend to install Juliaup via the 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).

openSUSE Tumbleweed

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

zypper install juliaup

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:

  • juliaup list lists all the available channels.
  • juliaup update installs the latest available Julia version for all your channels.
  • juliaup update release updates the release channel to the latest version.
  • juliaup status shows you which Julia versions you have installed and which one is configured as the default.
  • juliaup add 1.5.1 adds Julia 1.5.1 to your system (it can then be launched via the command julia +1.5.1).
  • juliaup default 1.5.3 configures the julia command to start Julia 1.5.3.
  • juliaup default 1.6 configures the julia command to start the latest 1.6.x version of Julia you have installed on your system (and inform you if there is a newer version in 1.6.x available).
  • juliaup default release configures the julia command to start the latest stable version of Julia (this is also the default value).
  • juliaup remove 1.5.3 deletes Julia 1.5.3 from your system.
  • juliaup add 1.6.1~x86 installs the 32 bit version of Julia 1.6.1 on your system.
  • juliaup default 1.6~x86 configures the julia command to start the latest 1.6.x 32 bit version of Julia you have installed on your system.
  • juliaup link dev ~/juliasrc/julia configures the dev channel to use a binary that you provide that is located at ~/juliasrc/julia. You can then use dev as if it was a system provided channel, i.e. make it the default or use it with the + version selector. You can use other names than dev and link as many versions into juliaup as you want.
  • juliaup self update installs the latest version, which is necessary if new releases reach the beta channel, etc.
  • juliaup self uninstall uninstalls Juliaup. Note that on some platforms this command is not available, in those situations one should use platform specific methods to uninstall Juliaup.
  • juliaup override status shows all configured directory overrides.
  • juliaup override set lts sets a directory override for the current working directory to the lts channel.
  • juliaup override unset removes a directory override for the current working directory.
  • juliaup override set --path foo/bar lts sets a directory override for the path foo/bar to the lts channel.
  • juliaup override unset --path foo/bar removes a directory override for the path foo/bar.
  • juliaup override unset --nonexistent removes all directory overrides for paths that no longer exist.
  • juliaup shows you what other commands are available.

The available system provided channels are:

  • release: always points to the latest stable version.
  • lts: always points to the latest long term supported version.
  • beta: always points to the latest beta version if one exists. If a newer release candidate exists, it will point to that, and if there is neither a beta or rc candidate available it will point to the same version as the release channel.
  • rc: same as beta, but only starts with release candidate versions.
  • specific versions, e.g. 1.5.4.
  • minor version channels, e.g. 1.5.
  • major version channels, e.g. 1.

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.

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 gt 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.

More Repositories

1

julia

The Julia Programming Language
Julia
44,029
star
2

IJulia.jl

Julia kernel for Jupyter
Julia
2,718
star
3

PackageCompiler.jl

Compile your Julia Package
Julia
1,416
star
4

Pkg.jl

Pkg - Package manager for the Julia programming language
Julia
587
star
5

www.julialang.org

Julia Project website
Julia
342
star
6

JuliaSyntax.jl

The Julia compiler frontend
Julia
274
star
7

METADATA.jl

Metadata for registered Julia packages up to Julia v0.6. No longer maintained. Please see https://github.com/JuliaRegistries/General instead.
Julia
219
star
8

AllocCheck.jl

AllocCheck
Julia
215
star
9

PrecompileTools.jl

Reduce time-to-first-execution of Julia code
Julia
205
star
10

www_old.julialang.org

Julia Project web site (Old)
Jupyter Notebook
150
star
11

Compat.jl

Compatibility across Julia versions
Julia
137
star
12

Example.jl

Example Julia package repo.
Julia
123
star
13

julia-logo-graphics

official versions of the Julia logo
Julia
115
star
14

Tokenize.jl

Tokenization for Julia source code
Julia
104
star
15

JuliaParser.jl

A rewrite of Julia's parser in Julia
Julia
91
star
16

Downloads.jl

Julia
90
star
17

PackageCompilerX.jl

Julia
85
star
18

Microbenchmarks

Microbenchmarks comparing the Julia Programming language with other languages
Jupyter Notebook
83
star
19

PkgDev.jl

Tools for Julia package developers
Julia
70
star
20

Juleps

Julia Enhancement Proposals
67
star
21

FancyDiagnostics.jl

Better parser errors for Julia
Julia
44
star
22

MbedTLS.jl

Wrapper around mbedtls
Julia
42
star
23

TOML.jl

A fast TOML parser for TOML 1.0 written in Julia
Julia
33
star
24

Distributed.jl

Create and control multiple Julia processes remotely for distributed computing. Ships as a Julia stdlib.
Julia
29
star
25

JuliaDoc

Python
28
star
26

docs.julialang.org

Repository for hosting the manual for the Julia language
Julia
26
star
27

StyledStrings.jl

Write with ✨ style ✨ and ease
Julia
24
star
28

SoftGlobalScope.jl

utilities for "soft" global scope in interactive Julia environments
Julia
24
star
29

LinearAlgebra.jl

Julia
21
star
30

BugReporting.jl

Streamlines bug reporting for julia
Julia
17
star
31

devcontainer-features

Julia Development Container Feature
Shell
16
star
32

JuliaSyntaxHighlighting.jl

Julia
13
star
33

NetworkOptions.jl

Julia
12
star
34

libosxunwind

Clone of Apple's libunwind, enhanced for the Julia Profiler
C++
11
star
35

BumpStdlibs.jl

Update the hashes and checksums of all Julia stdlibs in just four clicks.
Julia
11
star
36

mintty-julia

5
star
37

devcontainer-templates

Julia Development Container Template
Shell
5
star
38

Public.jl

Julia
5
star
39

.github

Repository for default community health files
4
star
40

IJuliaCore.jl

Julia
4
star
41

VersionsJSONUtil.jl

Julia
3
star
42

pull-request-state-machine

Python
3
star
43

buildkite-rerun-failed

Julia
2
star
44

devguide.julialang.org

TeX
2
star
45

Test.jl

Julia
1
star