juliaup icon indicating copy to clipboard operation
juliaup copied to clipboard

Error: '1.8.1~aarch64' is not a valid Julia version or channel name.

Open giordano opened this issue 1 year ago • 12 comments

I tried to follow the example in the README.md to install aarch64 julia on Linux, but I guess I got something wrong:

$ juliaup add 1.8.1~aarch64
Error: '1.8.1~aarch64' is not a valid Julia version or channel name.
$ juliaup --version
Juliaup 1.7.23

giordano avatar Sep 11 '22 23:09 giordano

I think we need to update the README.

Does juliaup add 1.8.1+aarch64 work?

DilumAluthge avatar Sep 11 '22 23:09 DilumAluthge

Nope

$ juliaup add 1.8.1+aarch64
Error: '1.8.1+aarch64' is not a valid Julia version or channel name.

giordano avatar Sep 11 '22 23:09 giordano

What is the native platform of the Linux you are trying? Right now I only make aarch64 Linux builds available if you are actually on a aarch64 Linux because my understanding was that Linux doesn't have an emulation mode that would allow one to run aarch64 builds on say x64 or x86.

davidanthoff avatar Sep 11 '22 23:09 davidanthoff

What is the native platform of the Linux you are trying?

I'm on x86-64, but on a system which has both x86-64 and aarch64 nodes. I wanted to install Julia for the other nodes.

Right now I only make aarch64 Linux builds available if you are actually on a aarch64 Linux because my understanding was that Linux doesn't have an emulation mode that would allow one to run aarch64 builds on say x64 or x86.

QEMU?

giordano avatar Sep 11 '22 23:09 giordano

I'm just not familiar with this stuff :) If it would make sense to make the aarch64 builds available on x64 and x86 Linux versions, it would be very easy to do so, right now it was a conscious choice to not do so, based primarily on me guessing what might work ;)

davidanthoff avatar Sep 11 '22 23:09 davidanthoff

My use case is that I want to use the x86_64 build when I'm on the x86_64 node, and the aarch64 one when I'm on the aarch64 node, so no emulation involved at all.

Right now I have two directories, ~/bin-x86_64 and ~/bin-aarch64, and in my bashrc script I have

if [ -d "${HOME}/bin-$(arch)" ]; then
    export PATH="${HOME}/bin-$(arch):${PATH}"
fi

I was hoping juliaup could help me with doing the right thing automatically.

giordano avatar Sep 11 '22 23:09 giordano

I think it is fair to say that the design at the moment makes a very strong assumption that things will run on the same target architecture on which Juliaup was initially installed... I'm pretty sure that the idea to install Juliaup on one node and then somehow re-use that on other nodes with a different architecture won't work, or at least I'd be very surprised...

Wouldn't it make most sense to just install Juliaup on each node separately, so that each node gets the correct binaries for its architecture? If you then start julia +1.8 on different nodes, it would always pick the right arch for that node, right?

davidanthoff avatar Sep 11 '22 23:09 davidanthoff

Is this a cluster where all nodes share the same filesystem (e.g. GPFS)?

DilumAluthge avatar Sep 11 '22 23:09 DilumAluthge

Yes, it's a shared filesystem, and accessing the aarch64 nodes is "costly", so I prefer to do as much as possible on the x86_64 nodes.

giordano avatar Sep 11 '22 23:09 giordano

I guess it's nothing about the platform, but that juliaup itself didn't update to 1.8.1 for me at least: running right now:

C:\Users\Aaron>juliaup list
 Channel          Version
------------------------------------
[...]
 1.7~x64          1.7.3+0.x64
 1.7~x86          1.7.3+0.x86
 1.8              1.8.0+0.x64
 1.8.0            1.8.0+0.x64
 1.8.0-beta1      1.8.0-beta1+0.x64
 1.8.0-beta1~x64  1.8.0-beta1+0.x64
 1.8.0-beta1~x86  1.8.0-beta1+0.x86
 1.8.0-beta3      1.8.0-beta3+0.x64
 1.8.0-beta3~x64  1.8.0-beta3+0.x64
 1.8.0-beta3~x86  1.8.0-beta3+0.x86
 1.8.0-rc1        1.8.0-rc1+0.x64
 1.8.0-rc1~x64    1.8.0-rc1+0.x64
 1.8.0-rc1~x86    1.8.0-rc1+0.x86
 1.8.0-rc3        1.8.0-rc3+0.x64
 1.8.0-rc3~x64    1.8.0-rc3+0.x64
 1.8.0-rc3~x86    1.8.0-rc3+0.x86
 1.8.0-rc4        1.8.0-rc4+0.x64
 1.8.0-rc4~x64    1.8.0-rc4+0.x64
 1.8.0-rc4~x86    1.8.0-rc4+0.x86
 1.8.0~x64        1.8.0+0.x64
 1.8.0~x86        1.8.0+0.x86
 1.8~x64          1.8.0+0.x64
 1.8~x86          1.8.0+0.x86
 1~x64            1.8.0+0.x64
 1~x86            1.8.0+0.x86
 beta             1.8.0+0.x64
 beta~x64         1.8.0+0.x64
 beta~x86         1.8.0+0.x86
 lts              1.6.7+0.x64
 lts~x64          1.6.7+0.x64
 lts~x86          1.6.7+0.x86
 rc               1.8.0+0.x64
 rc~x64           1.8.0+0.x64
 rc~x86           1.8.0+0.x86
 release          1.8.0+0.x64
 release~x64      1.8.0+0.x64
 release~x86      1.8.0+0.x86

C:\Users\Aaron>juliaup self update
No updates available.

looks like there's no 1.8.1 at all.

rapus95 avatar Sep 12 '22 08:09 rapus95

@rapus95 that is a very different issue, lets try to keep this one here focused on the original topic. I'm going to hide your comment, hope that is ok. Ideally, open new issues for new topics.

davidanthoff avatar Sep 12 '22 15:09 davidanthoff

Ok, my idea of having a single juliaup installation is clearly not going to work. Since the driver is a binary executable which needs to actually run on the current node without emulation, I can't have a single juliaup for both kind of nodes, so I think I'll keep two separate installations.

However, for the purpose of this issue, perhaps the error message can be clarified a bit? It's rather confusing, and it left me wondering if I got the syntax wrong :slightly_smiling_face:

giordano avatar Sep 12 '22 20:09 giordano