dfinity / vessel

The original package manager for Motoko
Apache License 2.0
113 stars 19 forks source link

Vessel 0.7.0 - vessel: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory #81

Open augchan42 opened 8 months ago

augchan42 commented 8 months ago
hosermage@LAPTOP-1RPE37PF:~/bin$ wget https://github.com/dfinity/vessel/releases/download/v0.7.0/vessel-linux64
--2024-01-02 11:33:44--  https://github.com/dfinity/vessel/releases/download/v0.7.0/vessel-linux64
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/248089583/bb1fd593-80ca-4b7a-b75b-d05198329020?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240102%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240102T033346Z&X-Amz-Expires=300&X-Amz-Signature=fc97c5ce452df3cc1db8b3ad765461961e59f481711b0729cef1d10b615a87e6&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=248089583&response-content-disposition=attachment%3B%20filename%3Dvessel-linux64&response-content-type=application%2Foctet-stream [following]
--2024-01-02 11:33:45--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/248089583/bb1fd593-80ca-4b7a-b75b-d05198329020?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240102%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240102T033346Z&X-Amz-Expires=300&X-Amz-Signature=fc97c5ce452df3cc1db8b3ad765461961e59f481711b0729cef1d10b615a87e6&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=248089583&response-content-disposition=attachment%3B%20filename%3Dvessel-linux64&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12774000 (12M) [application/octet-stream]
Saving to: ‘vessel-linux64’

vessel-linux64             100%[=======================================>]  12.18M  6.26MB/s    in 1.9s    

2024-01-02 11:33:48 (6.26 MB/s) - ‘vessel-linux64’ saved [12774000/12774000]

hosermage@LAPTOP-1RPE37PF:~/bin$ ln -s vessel-linux64 vessel
hosermage@LAPTOP-1RPE37PF:~/bin$ chmod +x vessel-linux64 

hosermage@LAPTOP-1RPE37PF:~$ vessel --version
vessel: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory
hosermage@LAPTOP-1RPE37PF:~$ which vessel
/home/hosermage/bin/vessel
augchan42 commented 8 months ago

I just downloaded v0.6.4, and it works fine. So something was broken with this version.

hosermage@LAPTOP-1RPE37PF:~$ vessel --help vessel 0.6.4

rvanasa commented 8 months ago

Thanks for the bug report! Glad that you found a temporary workaround. I would also encourage checking out the Mops package manager, which is actively maintained and has good support for Vessel packages.

augchan42 commented 8 months ago

Ok, I just tried in my wsl ubuntu 22.04 environment and vessel 0.7.0 works, but 0.6.4 doesn't work. Maybe doc needs to be updated? I dunno

ggreif commented 8 months ago

That is weird. #50 is part of https://github.com/dfinity/vessel/releases/tag/v0.6.4, so I'd expect that 0.6.4 and 0.7.0 would work in the same way. 🤔

augchan42 commented 8 months ago

Vessel 0.6.4 works on my Ubuntu 20.04 WSL machine (but not on my 22.04 WSL machine):

hosermage@LAPTOP-1RPE37PF:~/projects/dfinity/examples/motoko/invoice-canister$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.6 LTS
Release:        20.04
Codename:       focal

hosermage@LAPTOP-1RPE37PF:~/projects/dfinity/examples/motoko/invoice-canister$ vessel --version
vessel 0.6.4

hosermage@LAPTOP-1RPE37PF:~/bin$ ldd vessel
        linux-vdso.so.1 (0x00007ffc6cfbd000)
        libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007fecd80f6000)
        libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007fecd7e20000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fecd7e05000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fecd7de2000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fecd7c93000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fecd7c8d000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fecd7a99000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fecd8823000)

Vessel 0.7.0 ldd output:

(.env) hosermage@hosermage-x1:/usr/bin$ ldd vessel
        linux-vdso.so.1 (0x00007ffc4a7e2000)
        libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007f28a25ae000)
        libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007f28a216b000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f28a214b000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f28a2064000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f28a1e3c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f28a2cbb000)
(.env) hosermage@hosermage-x1:/usr/bin$ vessel --version
vessel 0.7.0

Not sure if theres a way to dynamically link to the correct version based on OS version. Or just statically link what's needed and be done with it?