dog: version `GLIBC_2.32' not found (required by dog)

If dog does something unexpected, or displays an error on the screen, or if it outright crashes, then please include the following information in your report:

  • The version of dog being used (dog --version) - v.0.1.0
  • The command-line arguments you are using - dog
  • Your operating system and hardware platform - Intel CPU, Ubuntu 20.04 (Pop_OS!)

If it’s a crash, please include the full text of the crash that gets printed to the screen. If you’re seeing unexpected behaviour, a screenshot of the issue will help a lot.

Placed the binary in /usr/local/bin and try to run dog or dog --version results in the following error:

user@laptop:~$ dog dog: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32' not found (required by dog) user@laptop:~$ dog --version dog: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32’ not found (required by dog)

It appears that 20.04 LTS has 2.31 by default, where 20.10 has the 2.32. Is it not possible to run on Ubuntu without manually installing the newer packages?

About this issue

  • Original URL
  • State: open
  • Created 4 years ago
  • Reactions: 17
  • Comments: 16 (1 by maintainers)

Most upvoted comments

This error is a side-effect of me building on one version of Linux, only testing on that same version of Linux, then (incorrectly!) assuming that it would work for slightly older versions too. This happened to me once before when exa accidentally required a library that I happened to have on my own machine — I didn’t notice, but everyone else did!

I’ll do my best to support more versions and architectures in the next release.

Seconded. Having a multitude of debian and ubuntu systems that still are actively supported (e.g. 16.04, 18.04 as LTS versions), using a library version that not even the current LTS can natively run is not a good idea.

Perhaps consider lowering the dependencies or building a statically linked version for linux x64 as servers never tend to run “in-between” or bleeding edge versions of OS’es 😉

Ok, I’ve compiled myself and add everything into https://packages.azlux.fr/ It’s an apt repository based on github release. Since the release don’t have runnable binary, I’ve disabled the auto-update (I will do manually until @ogham fix the current issue, and maybe add arm build too (#33))

The build script is on the website. Autocompletion and manual are also installed automatically.

What about a musl build?

Ok, I’ve compiled myself and add everything into https://packages.azlux.fr/ It’s an apt repository based on github release. Since the release don’t have runnable binary, I’ve disabled the auto-update (I will do manually until @ogham fix the current issue, and maybe add arm build too (#33))

The build script is on the website. Autocompletion and manual are also installed automatically.

The direct link to download is https://packages.azlux.fr/debian/pool/main/d/dog/

Ubuntu 20.04 (Focal) has libc6 of version 2.31 by default, however dog which is available here was compiled against libc6 of version 2.32, and this version of libc6 will be available only in Ubuntu 20.10 (Groovy). It might be much easier to recompile it yourself for 20.04. Or you can take mine.

dog.zip

You can also compile a static binary using musl libc. You just need to add the openssl dependency with the vendored features mentioned in the documentation.

I added to the root Cargo.toml the dependency : openssl = { version = "0.10", features = ["vendored"] }

And compiled using musl target : cargo build --target x86_64-unknown-linux-musl --release

May be build dog on old version glibc? Where build dog now?

I have a sidetrack mirror CI project where I’ve done a musl build, the pipeline is available on https://gitlab.com/mirrorbuilds/dog/-/pipelines

The CI config is also available on https://gitlab.com/mirrorbuilds/ci-configs/-/blob/master/dog/.gitlab-ci.yml

cc @jc00ke