Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgraded to 0.22.2 and getting missing libc error after installing #4203

Open
ep150de opened this issue Jan 28, 2025 · 4 comments
Open

Upgraded to 0.22.2 and getting missing libc error after installing #4203

ep150de opened this issue Jan 28, 2025 · 4 comments

Comments

@ep150de
Copy link

ep150de commented Jan 28, 2025

Post upgrade to latest build from prev ord 0.22.0;

running ord commands generate the error below:

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

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

environment: Win11 pro with WSL Ubuntu build 22.04.1 LTS

tried sudo apt update and sudo apt install libc6 to troubleshoot with no solution, had to revert to prev build of ord to continue

@BTCMcBoatface
Copy link

I also have this error on 0.22.1 and 0.22.2.

Error on 0.22.2:
/lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.38' not found (required by <...path_to_bin...> ord) /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.39' not found (required by <...path_to_bin...> ord)

Error on 0.22.1:
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by <...path_to_bin...> ord)

Version 0.22.0 will run fine. Unfortunately for me, this version uses testnet3 and I'm hoping to use testnet4.

@raphjaph
Copy link
Collaborator

raphjaph commented Feb 2, 2025

#1560

@raphjaph raphjaph added this to Tracker Feb 2, 2025
@raphjaph raphjaph moved this to In Progress in Tracker Feb 2, 2025
@raphjaph
Copy link
Collaborator

raphjaph commented Feb 2, 2025

We'll have to start linking libc statically with musl to fix this.

@0ceanSlim
Copy link

I was able to fix this by manually compiling glibc-2.39 and linking a library enviornment. Then making an alias to use that in .bashrc

This is on linux
Step 1: Download and Compile GLIBC 2.39
Since your package manager does not provide glibc 2.38 or 2.39, you need to manually install it.

  1. Install Build Dependencies
sudo apt update
sudo apt install build-essential manpages-dev gawk bison
  1. Download GLIBC 2.39 Source Code
wget http://ftp.gnu.org/gnu/libc/glibc-2.39.tar.gz
tar -xvzf glibc-2.39.tar.gz
cd glibc-2.39
  1. Create a Build Directory and Configure
mkdir build
cd build
../configure --prefix=/opt/glibc-2.39
  1. Compile and Install
make -j$(nproc)
sudo make install

Now you need to add an alias in .bashrc to use this library path when running ord

nano ~/.bashrc

add this line:
alias ord='/opt/glibc-2.39/lib/ld-linux-x86-64.so.2 --library-path /opt/glibc-2.39/lib:/usr/lib/x86_64-linux-gnu /usr/local/bin/ord'
resource bashrc

source ~/.bashrc

Now you should be able to use ord. I don't know how to achieve the same for Windows I'm sorry. But this is how to build glibc from source on linux and get ord to use it. Hopefully this help others until it's fixed.

If you want my service file for ord server
/etc/systemd/system/ord-server.service

[Unit]
Description=Ord Server
After=network.target

[Service]
ExecStart=/opt/glibc-2.39/lib/ld-linux-x86-64.so.2 --library-path /opt/glibc-2.39/lib:/usr/lib/x86_64-linux-gnu /usr/local/bin/ord server --http-port ****
WorkingDirectory=/home/satoshi/.ord
User=satoshi
Group=satoshi
Restart=always
Environment="LD_LIBRARY_PATH=/opt/glibc-2.39/lib:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"

[Install]
WantedBy=multi-user.target

Set the port as you like

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

No branches or pull requests

4 participants