Canop / broot

A new way to see and navigate directory trees : https://dystroy.org/broot
MIT License
10.72k stars 236 forks source link

GLIBC_2.28 not found #531

Open XenonSup opened 2 years ago

XenonSup commented 2 years ago

OS: Ubuntu 18.04.6 LTS Version: 1.11.0

I've had broot installed through https://packages.azlux.fr/ for a while now with no problems. I updated yesterday from version 1.9.4 to 1.11.0, and now whenever I run broot I get the following error message:

broot: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by broot)

Running ldd --version returns ldd (Ubuntu GLIBC 2.27-3ubuntu1.5) 2.27 So the error doesn't seem erroneous.

I'm under the impression that glibc doesn't really get updated that often if at all for a distribution, and that I'm not supposed to try to update it. Does this mean broot doesn't support Ubuntu 18.04 anymore? Or did I break something else?

Canop commented 2 years ago

Does this mean broot doesn't support Ubuntu 18.04 anymore? Or did I break something else?

No, it means I have to find why broot has such requirement and fix it.

Canop commented 2 years ago

In the meantime, can you please try the "linux" and "linux/musl" versions that you can download from https://dystroy.org/broot/install/ ?

Canop commented 2 years ago

The underlying problem is probably you use a broot which was compiled for a newer version of glibc. I'm looking for a way to compile for an old glibc on a recent install but it doesn't look easy.

An alternative would be to compile yourself with cargo install broot but the rust toolchain takes a lot of space on disk.

XenonSup commented 2 years ago

Thank you for the quick response.

In the meantime, can you please try the "linux" and "linux/musl" versions that you can download from https://dystroy.org/broot/install/ ?

The "Linux" binary gives the same error, but the "Linux/musl" binary seems to work just fine. This solves my problem of how to use broot, but I'm probably not the only one on an older system so it might still be worth it to look into the dependency change. Either way, feel free to close the issue.

Canop commented 2 years ago

The musl binary should be a little slower, so this isn't a perfect solution.

I'll still need to look for a solution to build for an older glibc, maybe using cargo cross, so I keep the issue open.

If you feel like trying, you could try compiling broot yourself: https://dystroy.org/broot/install/#from-source It would probably work (but I'd welcome confirmation)

XenonSup commented 2 years ago

I haven't used the rust development environment so I'll probably wait for the weekend to give it a shot and update then.

kabeza commented 2 years ago

Hi Had the same error installing from packages. Using Elementary Hera 5.1.7 (Ubuntu 18.04 based) and cannot upgrade GLIBC Removed it and installed manually 1.9.4

Canop commented 2 years ago

@XenonSup @kabeza Could you please test the version at https://dystroy.org/broot/download/tests/ and confirm it works on your env ?

(warning: for tests only)

XenonSup commented 2 years ago

Sorry for the late update:

Where 'working' means it doesn't throw the glibc error at startup.

Canop commented 2 years ago

Thanks for confirmation. I'm trying to setup a build chain with an old glibc and the right features (current problem is having the clipboard working with the old glibc ^^).

kabeza commented 2 years ago

@XenonSup @kabeza Could you please test the version at https://dystroy.org/broot/download/tests/ and confirm it works on your env ?

(warning: for tests only)

Hi. Worked fine I guess. I removed old, downloaded and installed manually and did a clean --install

imagen_0403

Canop commented 2 years ago

Reopening: will close after official 1.12 release

yurenchen000 commented 1 year ago

I'm running broot 1.23.0 prebuild binary (downloaded from github release page). on ubuntu 18.04.

meet same situation. // it's fine on ubuntu20, ubuntu22.


A temporary workaround

as a temporary workaround, I have to copy some depends libs (from ubuntu 22) to ubuntu 18, it just work:

LD_LIBRARY_PATH=./libc.u22 ./libc.u22/ld-linux-x86-64.so.2 ./broot



I copied those .so

libc.u22/
├── ld-linux-x86-64.so.2
├── libc.so.6
├── libdl.so.2
├── libm.so.6
├── libpthread.so.0
└── librt.so.1

maybe provide other build?

I seen other rust project using static build with musl to avoid depends problem

https://github.com/vicanso/diving-rs/issues/3 https://github.com/vicanso/diving-rs/compare/v0.4.13...v0.4.15

Oh, sorry, I noticed it already in broot_1.23.0.zip at x86_64-unknown-linux-musl/broot // and that's why the .zip so big.