Jabba-Team / jabba

(cross-platform) Java Version Manager
Apache License 2.0
140 stars 11 forks source link

Jabba and Docker - does not appear to be a valid binary #26

Closed svenruppert closed 3 months ago

svenruppert commented 1 year ago

Dear Team, First of all, thx for maintaining JABBA.

I am getting the message that the JABBA binary is not a valid one. I tried the recommended Docker way, as well as the version that you can see in the attached Dockerfile.

I added the ERROR message as well. Thx for your help. Cheers Sven

` > [2/4] RUN curl -sL https://github.com/Jabba-Team/jabba/raw/main/install.sh | bash && . ~/.jabba/jabba.sh:

5 0.772 Installing v0.12.2...

5 0.773

5 1.677 /root/.jabba/bin/jabba does not appear to be a valid binary.

5 1.677

5 1.677 Check your Internet connection / proxy settings and try again.

5 1.677 If the problem persists - please create a ticket at https://github.com/Jabba-Team/jabba/issues.

`

Dockerfile: ` FROM buildpack-deps:jessie-curl

ARG USER_HOME_DIR="/root"

ENV JABBA_VERSION=0.12.2 RUN curl -sL https://github.com/Jabba-Team/jabba/raw/main/install.sh | bash && . ~/.jabba/jabba.sh RUN jabba install amazon-corretto@11.0.19 -o /jdk

ENV JAVA_HOME /jdk ENV PATH $JAVA_HOME/bin:$PATH

RUN java -version

CMD ["java"]`

svenruppert commented 1 year ago

Any idea?

patrick-mccourt commented 1 year ago

hi @svenruppert

I've managed to replicate the issue and it looks like the problem is down to the age of the image you're using.

I've ran the buildpack-deps container locally and ran the steps one by one and the install seems to download jabba okay but spits out this when trying to run it:

.jabba/bin/jabba: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.32' not found (required by .jabba/bin/jabba) .jabba/bin/jabba: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.34' not found (required by .jabba/bin/jabba)

The image you've specified seems to have GLIBC 2.19 installed. Off the top of my head I'm not sure where the requirement for those GLIB versions come from but I assume from the version of golang it's compiled against

I will look into it further but in the mean time, are you able to try with a more updated image?

patrick-mccourt commented 1 year ago

Hi @svenruppert

Just a small update, but I'll be looking to tweak the build of jabba to an older supported version of linux which will mean it should be compatible with more versions of operating systems.

In the meantime, I've found that moving to the latest debian works, are you able to use bookworm-curl or is there a dependency on jessie on your end?

FROM buildpack-deps:bookworm-curl

ARG USER_HOME_DIR="/root"

ENV JABBA_VERSION=0.12.2 RUN curl -sL https://github.com/Jabba-Team/jabba/raw/main/install.sh | bash && . ~/.jabba/jabba.sh ENV PATH /root/.jabba/bin:$PATH RUN jabba install amazon-corretto@11.0.19 -o /jdk

ENV JAVA_HOME /jdk ENV PATH $JAVA_HOME/bin:$PATH

RUN java -version

CMD ["java"]

Griefed commented 4 months ago

Heyo,

chiming in to report that on Ubuntu 20.04 the same error occurs during the installation of Jabba. Running

export JABBA_VERSION=0.13.0
wget -qO- https://github.com/Jabba-Team/jabba/raw/main/install.sh | bash && . ~/.jabba/jabba.sh

first returns

Installing v0.13.0...

/root/.jabba/bin/jabba does not appear to be a valid binary.

Check your Internet connection / proxy settings and try again. If the problem persists - please create a ticket at https://github.com/Jabba-Team/jabba/issues.

Trying to call the binary afterward returns

./.jabba/bin/jabba ls-remote ./.jabba/bin/jabba: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32' not found (required by ./.jabba/bin/jabba) ./.jabba/bin/jabba: /lib/x86_64-linux-gnu/libc.so.6: versionGLIBC_2.34' not found (required by ./.jabba/bin/jabba)

It seems like not all files are generated accordingly. Tree lists:

tree .jabba .jabba └── bin └── jabba

whereas on Ubuntu 22 (WSL2 in this case), it returns

tree .jabba .jabba ├── bin │   └── jabba ├── jabba.fish └── jabba.sh

Hope this helps.

Cheers, Griefed