broot icon indicating copy to clipboard operation
broot copied to clipboard

GLIBC_2.28 not found

Open XenonSup opened this issue 3 years ago • 13 comments

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?

XenonSup avatar Apr 04 '22 21:04 XenonSup

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 avatar Apr 05 '22 05:04 Canop

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

Canop avatar Apr 05 '22 05:04 Canop

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.

Canop avatar Apr 05 '22 06:04 Canop

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.

XenonSup avatar Apr 05 '22 17:04 XenonSup

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)

Canop avatar Apr 05 '22 17:04 Canop

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

XenonSup avatar Apr 05 '22 17:04 XenonSup

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

kabeza avatar Apr 13 '22 13:04 kabeza

@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)

Canop avatar Apr 13 '22 14:04 Canop

Sorry for the late update:

  • Installing straight from Crates.io cargo install broot results in a working binary (ver 1.11.1)
  • Installing from source using the Rust toolchain results in a working binary (ver 1.11.1)
  • 1.12.0-dev from https://dystroy.org/broot/download/tests/ works as well

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

XenonSup avatar Apr 13 '22 16:04 XenonSup

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 ^^).

Canop avatar Apr 13 '22 16:04 Canop

@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

kabeza avatar Apr 13 '22 16:04 kabeza

Reopening: will close after official 1.12 release

Canop avatar Apr 13 '22 20:04 Canop

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.

yurenchen000 avatar Jul 02 '23 08:07 yurenchen000