Skip to content
This repository has been archived by the owner on Aug 31, 2023. It is now read-only.

🐛 Rome doesn't work on CentOS 7 #3549

Open
1 task done
zoidyzoidzoid opened this issue Nov 1, 2022 · 12 comments
Open
1 task done

🐛 Rome doesn't work on CentOS 7 #3549

zoidyzoidzoid opened this issue Nov 1, 2022 · 12 comments
Assignees
Labels
S-Bug: confirmed Status: report has been confirmed as a valid bug

Comments

@zoidyzoidzoid
Copy link

Environment information

OS: CentOS 7
CPU architecture: x86_64
Installation method: Downloaded `https://github.com/rome/tools/releases/download/cli%2Fv0.10.1-next/rome-linux-x64` and `chmox +x`'ed it

What happened?

  1. Downloaded rome
  2. Tried to run it
  3. Get the following error
# ./rome 
./rome: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by ./rome)
./rome: /lib64/libc.so.6: version `GLIBC_2.29' not found (required by ./rome)
./rome: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by ./rome)
./rome: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by ./rome)
./rome: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by ./rome)

Expected result

I hoped rome would run 😞

I got a similar error with CentOS 8 stream too, even after installing glibc-devel.

I was wondering if this was because we were dynamically linking dependencies, and if we could potentially build binaries that wouldn't need these dependencies, and statically linked musl or something?

Sorry if this isn't a great bug report, and please let me know if I can help provide more details, or ideally help fix this, and better document it for folks that experience similar issues in the future.

Code of Conduct

  • I agree to follow Rome's Code of Conduct
@zoidyzoidzoid zoidyzoidzoid added the S-To triage Status: user report of a possible bug that needs to be triaged label Nov 1, 2022
@MichaReiser
Copy link
Contributor

This article goes into the details about why this might be a problem.

@MichaReiser
Copy link
Contributor

@zoidbergwill can you confirm the libc version installed on your system by pasting the result of the following two commands

ldd --version
yum list glibc

source

@strager
Copy link
Contributor

strager commented Nov 6, 2022

Someone else also reported this issue. They are using the node:16 Docker image. https://discord.com/channels/678763474494423051/1038880911015563344/1038880911015563344

@MichaReiser MichaReiser added S-Bug: confirmed Status: report has been confirmed as a valid bug and removed S-To triage Status: user report of a possible bug that needs to be triaged labels Nov 7, 2022
@MichaReiser MichaReiser added this to the 10.1.0 milestone Nov 7, 2022
@MichaReiser
Copy link
Contributor

One option is to use the same docker container that Rust uses to build. https://github.com/rust-lang/rust/tree/master/src/ci/docker

@strager
Copy link
Contributor

strager commented Nov 8, 2022

One option is to use the same docker container that Rust uses to build. https://github.com/rust-lang/rust/tree/master/src/ci/docker

How would this work with Visual Studio Code?

@MichaReiser
Copy link
Contributor

MichaReiser commented Nov 9, 2022

How would this work with Visual Studio Code?

Sorry, my explanation was a bit brief. The idea is to use use the docker container in the CI pipeline that builds the Rome binary. Building on a machine with an older glibc version removes the reference to the problematic symbol.

@zoidyzoidzoid
Copy link
Author

zoidyzoidzoid commented Nov 10, 2022

@MichaReiser Sorry for the delay. I'll share output from those!

% docker run -it --rm quay.io/centos/centos:stream8 bash
Unable to find image 'quay.io/centos/centos:stream8' locally
stream8: Pulling from centos/centos
6c5de04c936d: Pull complete 
f1ee40d9db4a: Pull complete 
17facd475902: Pull complete 
0d557d32f54e: Pull complete 
Digest: sha256:c9acf46f90fcb637eff59e269fbbebf5ec9e6b6215a07fbe2bbad7429aad6e7e
Status: Downloaded newer image for quay.io/centos/centos:stream8
[root@8177306f8bed /]# curl -L -orome https://github.com/rome/tools/releases/download/cli%2Fv10.0.0/rome-linux-x64
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  9.7M  100  9.7M    0     0  7950k      0  0:00:01  0:00:01 --:--:-- 14.0Mm
[root@8177306f8bed /]# chmod +x ./rome 
[root@8177306f8bed /]# ./rome 
./rome: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by ./rome)
./rome: /lib64/libc.so.6: version `GLIBC_2.29' not found (required by ./rome)
[root@8177306f8bed /]# ldd --version
ldd (GNU libc) 2.28
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
[root@8177306f8bed /]# yum list glibc
CentOS Stream 8 - AppStream                                                                                              31 MB/s |  25 MB     00:00    
CentOS Stream 8 - BaseOS                                                                                                 15 MB/s |  26 MB     00:01    
CentOS Stream 8 - Extras                                                                                                 24 kB/s |  18 kB     00:00    
CentOS Stream 8 - Extras common packages                                                                                 21 kB/s | 5.2 kB     00:00    
Installed Packages
glibc.x86_64                                                            2.28-211.el8                                                             @baseos
Available Packages
glibc.i686                                                              2.28-216.el8                                                             baseos 
glibc.x86_64                                                            2.28-216.el8                                                             baseos 

@xunilrj
Copy link
Contributor

xunilrj commented Nov 10, 2022

I managed to build and run rome using https://quay.io/repository/pypa/manylinux2014_x86_64 (glibc 2.17)
This is my suggestion, instead of supporting musl.

@MichaReiser
Copy link
Contributor

I managed to build and run rome using https://quay.io/repository/pypa/manylinux2014_x86_64 (glibc 2.17) This is my suggestion, instead of supporting musl.

We may still want to consider a musl build for platforms that don't ship with glibc.

@zoidyzoidzoid
Copy link
Author

This article goes into the details about why this might be a problem.

Ooooh, I had a look at manylinux, thinking about whether it was useful / applicable for Rust

One option is to use the same docker container that Rust uses to build. https://github.com/rust-lang/rust/tree/master/src/ci/docker

This is a really interesting. It doesn't look like it's easy for folks to use outside of the repo from the investigations I did trying to find where it might be published.

@MichaReiser
Copy link
Contributor

A bit late, but there seems to be a github action https://github.com/marketplace/actions/rust-musl-builder-slim

@axetroy
Copy link

axetroy commented Nov 26, 2022

build Rome for musl target for static link should resolve this issue

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
S-Bug: confirmed Status: report has been confirmed as a valid bug
Projects
Status: Todo
Development

No branches or pull requests

7 participants