JuliaLang/juliaup
As an open-source project, JuliaLang/juliaup has picked up 1.3k stars on GitHub (Rust). Julia installer and version manager
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Snapshot
Top contributors
Show top contributors
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 --name Julia --id 9NJNWW8PVKMN -e -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
Note that juliaup requires the Windows.Web.Http API to be present, which is true for Windows, and Windows Server, but not for Windows Server Core, and Windows Nano Server.
Mac, Linux, and FreeBSD
Juliaup can be installed on Unix-like platforms (currently Linux, Mac, or FreeBSD) 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 ltswould install theltschannel and configure it as the default.--path(or-p): Installjuliaupin a custom location.- For example, if you want to install
juliaupinto~/my/desired/juliaup/path, you would run the following command:curl -fsSL https://install.julialang.org | sh -s -- --path ~/my/desired/juliaup/path
- For example, if you want to install
--add-to-path <yes|no|0|1>: Control whether the installer modifies shell startup files to add the Juliaup bin directory toPATH. Defaults toyes.--background-selfupdate <MINUTES>: Configure how often a background task checks for Juliaup self-updates. Use0to disable background self-updates. Defaults to0.--startup-selfupdate <MINUTES>: Configure how often Julia startup checks for Juliaup self-updates. Use0to disable startup self-updates. Defaults to1440.
For example, a non-interactive install into a custom location that does not modify PATH and disables both self-update checks can be run as:
curl -fsSL https://install.julialang.org | sh -s -- \
--path "$JULIAUP_DEPOT_PATH" \
--yes \
--add-to-path=no \
--background-selfupdate=0 \
--startup-selfupdate=0
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.
- juliaup (locally built)
- 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:
juliaup listlists all the available channels.juliaup updateinstalls the latest available Julia version for all your channels.juliaup update releaseupdates thereleasechannel to the latest version.juliaup statusshows you which Julia versions you have installed and which one is configured as the default.juliaup add 1.5.1adds Julia 1.5.1 to your system (it can then be launched via the commandjulia +1.5.1).juliaup default 1.5.3configures thejuliacommand to start Julia 1.5.3.juliaup default 1.6configures thejuliacommand 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 releaseconfigures thejuliacommand to start the latest stable version of Julia (this is also the default value).juliaup remove 1.5.3deletes Julia 1.5.3 from your system.juliaup add 1.6.1~x86installs the 32 bit version of Julia 1.6.1 on your system.juliaup default 1.6~x86configures thejuliacommand to start the latest 1.6.x 32 bit version of Julia you have installed on your system.juliaup link dev ~/juliasrc/juliaconfigures thedevchannel to use a binary that you provide that is located at~/juliasrc/julia. You can then usedevas 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 thandevand link as many versions intojuliaupas you want.juliaup link r +releasecreates a channel aliasrthat points to thereleasechannel. This allows you to usejulia +ras a shortcut forjulia +release. Channel aliases can point to any installed channel or system-provided channel.juliaup self updateinstalls the latest version, which is necessary if new releases reach the beta channel, etc.juliaup self uninstalluninstalls 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 statusshows all configured directory overrides.juliaup override set ltssets a directory override for the current working directory to theltschannel.juliaup override unsetremoves a directory override for the current working directory.juliaup override set --path foo/bar ltssets a directory override for the pathfoo/barto theltschannel.juliaup override unset --path foo/barremoves a directory override for the pathfoo/bar.juliaup override unset --nonexistentremoves all directory overrides for paths that no longer exist.- Tab completions for
juliaupcommands andjulia +channelselection are automatically installed for Bash and Zsh (sourced from~/.juliaup/completions/). For other shells you can generate them manually, e.g.juliaup completions fish > ~/.config/fish/completions/juliaup.fish. Supported shells:bash,zsh,fish,elvish,powershell, andnushell. juliaup config --helplists all available configuration keys;juliaup config <key> --helpshows accepted values for a specific key.juliaupshows 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.alpha: always points to the latest alpha version if one exists. If a newer beta or release candidate exists, it will point to that, and if there is no alpha, beta, or rc candidate available it will point to the same version as thereleasechannel.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 thereleasechannel.rc: same asbeta, but only starts with release candidate versions.nightly: always points to the latest build from themasterbranch in the Julia repository.x.y-nightly: always points to the latest build from therelease-x.ybranch in the Julia repository, e.g.1.11-nightlygives the latest build on therelease-1.11branch`.pr{number}(e.g.pr123): points to the latest successful build of a PR branch (https://github.com/JuliaLang/julia/pull/{number}). Only available if CI has successfully built Julia on that branch within roughly the last 90 days: PR builds expire, but re-running CI on the pull request uploads fresh ones.- 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:
- A command line Julia version specifier, such as
julia +release. - The
JULIAUP_CHANNELenvironment variable. - A directory override, set with the
juliaup override setcommand. - Automatic version selection based on the active project.
- The default Juliaup channel.
The channel is used in the order listed above, using the first available option.
Project-based Version Selection
When no explicit channel is specified via command line, environment variable, or directory override, Juliaup can automatically attempt to select an appropriate Julia version based on the active project's requirements.
This feature is currently disabled by default, but will likely be enabled by default in the future. Options are true, false, default. Set it with:
juliaup config manifestversiondetect true
If a project is specified (via --project, JULIA_PROJECT, or JULIA_LOAD_PATH), Juliaup reads the project's Manifest.toml and uses the julia_version field to determine which Julia version to use:
- Exact match: If the exact version exists as a channel (e.g.,
1.10.5,1.12.0-rc1), it uses that version. - Prerelease versions: If the version has a prerelease suffix (e.g.,
1.12.1-DEV,1.13.0-rc1) and no exact channel exists, it uses the corresponding nightly channel:- Uses
X.Y-nightlyif available (e.g.,1.12-nightlyfor1.12.1-DEV) - Falls back to
nightlyotherwise
- Uses
- Future patch versions: If the patch version is higher than any known release in that minor series (e.g.,
1.10.99when only1.10.5exists), it usesX.Y-nightly. - Future minor/major versions: If the version is higher than any known release (e.g.,
1.13.0when only1.12.xexists), it usesX.Y-nightlyif available, ornightlyotherwise. - Default fallback: If no project or manifest is found, it falls back to the default channel.
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.
Note: Nightly and PR channels (e.g., nightly, pr123) require the server to provide etag headers in HTTP responses for version tracking.
If your custom mirror server does not support etag headers, these channels will not be available. Regular versioned Julia releases will still work normally.
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.
Related repositories
Master programming by recreating your favorite technologies from scratch.
A curated meta-list of curated lists organized by technology domain. The repository acts as a directory pointing to hundreds of specialized awesome lists covering programming languages, platforms, frameworks, and tooling. All content is community-contributed under the CC0 public domain dedication.
Public APIs is a community-curated GitHub repository listing free, publicly accessible APIs across a wide range of categories, with auth type, HTTPS, and CORS noted for each entry. It's a browsable reference, not a library to install.
freeCodeCamp is a free, self-paced curriculum for learning to code, published as open source at freeCodeCamp/freeCodeCamp. It's a 501(c)(3) nonprofit funded by donor support, structured around six certifications in its Full-Stack Developer Curriculum, each gated by required projects instead of open-book quizzes. The repository also carries beta language certifications for developers, interview-prep resources, and the code that runs the live freecodecamp.org platform.
Quick answers
Does JuliaLang/juliaup have a project website?
No homepage URL was recorded for JuliaLang/juliaup in TopGit's last sync. The README tab above frequently contains screenshots and demo links, or check the repository description on GitHub.
How many stars does JuliaLang/juliaup have?
JuliaLang/juliaup has 1.3k GitHub stars — refresh the page for the live number, or check github.com/JuliaLang/juliaup. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is JuliaLang/juliaup open source?
Yes — JuliaLang/juliaup ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/JuliaLang/juliaup.
What is JuliaLang/juliaup?
JuliaLang/juliaup (JuliaLang/juliaup) is a Rust project on GitHub. From the project's own README: Julia installer and version manager
Where do I read more about JuliaLang/juliaup?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/JuliaLang/juliaup is the definitive source.
Read full README in the tab above.
Still deciding about juliaup?
One click hands the question to an AI along with this page — see what it says about juliaup.