How to upgrade easily?

Hi,

I see there are threads about updates but is there a way to easily update Julia ?

I’d hope for something like : ] update julia

without the hassle to download a new version, remove the old one, etc.

It’s not possible to upgrade Julia from within Julia, sorry. If you don’t want to manually download binaries you could use something like asdf to manage that for you.

3 Likes

The Debian Julia Team currently packages a release of Julia (currently 1.0.4), when that is updated a user only needs to conduct their regular apt update/upgrade.

If one is willing to mix in packages from Debian’s unstable branch (sid), Julia 1.1.1 is also available.

Not sure that the apt configuration (upgrade this, but nothing else) is less of a hassle though than just downloading the tarball, and extracting. Or even compiling from source. Given that releases don’t happen that frequently, I would just do either of the latter.

alright, thanks for letting me know !

If I remember correctly there was concern from the package maintainer that Julia is changing too quickly for it to be worth their effort keeping it current relative to other projects. OTHO Julia is enjoying steady growth by users of the OS.

https://qa.debian.org/popcon.php?package=julia

If you download the newer Julia version (whichever it is), uninstall the older one, then what is the proper, best (and easiest) way to install the newer one and keep your Julia package system intact?

2 Likes

This is the process I use for installing a new Julia version: Transitioning from Ubuntu PPA to official binaries - #2 by rdeits

If you are only changing patch versions (e.g. from 1.2.3 to 1.2.4), then your packages will be unchanged, and you don’t need to do anything. If you are installing a new minor version (e.g. from 1.2 to 1.3) then your packages will not carry over. But it should be easy to use the package manager to ensure that you get the same set of packages in the new version that you had before.

For example, if you had Julia 1.2 installed, and you then added Julia 1.3, you could do:

cp ~/.julia/environments/v1.2 ~/.julia/environments/v1.3

and then launch Julia and do:

pkg> instantiate

This will tell the package manager to install the same set of packages in Julia 1.3 that you had in Julia 1.2. For most cases that should be sufficient to ensure that your new Julia version has the same package environment that your old Julia version did.

11 Likes

Thanks.

So basically uninstall the old, install the new, copy that current version directory in that environment directory and name the new one the new version number, then run instantiate.

If someone were to use a Windows machine, I assume the process is essentially the same.

Is there any downside to this method?

Thanks. Thats basically how I upgraded from 1.1 to 1.2 and it was completely painless, and it’s nice to have both versions installed if ever wanting to go back and try something in previous version. I followed the advice of @StevenSiew and @Tamas_Papp in these two posts in the " Julia v1.2.0 has been released" announcement thread:

and

Just to clarify: I would recommend symlinking as described there, not cp. The downside is of course that it breaks packages that depend on a particular version of Julia, but for 1.1 vs 1.2 (and even 1.3) it should not be a big problem in practice.

2 Likes

Just installed Julia 1.5 and followed this instruction.

After running ln -s /Applications/Julia-1.5.app/Contents/Resources/julia/bin/julia /usr/local/bin/julia and restarting the terminal, typing julia in the command line still opens Julia 1.3. This is not resolved until I removed Julia 1.3. Am I missing something?

Also the folder .julia/environments/v1.5 was not created until I ran Pkg.update.

I think the environment folder not being created until you deal with Pkg is expected, but I may be wrong.

This is strange and the first thing that comes to my mind is that the old Julia link was not in the /usr/local/bin/ folder but in another folder, also in the PATH, and that was checked by the shell before /usr/local/bin/. You could have checked this by running which julia before the uninstalling Julia 1.3, it would show the path to which link/binary was really being called.

1 Like

That’s probably why, because I didn’t see “julia” in that folder before running the “ln -s” command. Thank you.