venkatdevex

venkatdevex

Elixir release fails due to GLIBC not found

I am deploying an app with GitHub actions, this fails due to GLIBC version

home/app_user/_build/staging/rel/app/erts-13.2.2.12/bin/beam.smp: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /home/app_user/_build/staging/rel/app/erts-13.2.2.12/bin/beam.smp)

as I checked my image ldd --version it has 2.39 but Erlang expects 2.38, I did try downgrading this to 2.38, but that didn’t help.

here is yml I used to downgrade

name: Elixir CI staging

on:
  push:
    branches: [ main, master, release ]

jobs:
  build:
    name: Build and Deploy
    runs-on: ubuntu-latest
    env:
      MIX_ENV: production

    steps:
      - name: Checkout repo
        uses: actions/checkout@v3
      - name: SSH Agent
        uses: webfactory/ssh-agent@v0.7.0
      - name: Setup elixir
        uses: erlef/setup-beam@v1
        with:
          otp-version: 25.0
          elixir-version: 1.16.0
      - name: Restore dependencies cache
        uses: actions/cache@v3
        with:
          path: |
            deps
            _build
          key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }}
          restore-keys: ${{ runner.os }}-mix-
      - uses: actions/cache@v3
        with:
          path: |
            assets/node_modules
          key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
          restore-keys: |
            ${{ runner.os }}-node-
      - name: Install GLIBC 2.38
        run: |
          sudo apt-get update
          sudo apt-get install -y wget build-essential
          sudo apt-get install gcc-10 g++-10
          export CC=gcc-10
          export CXX=g++-10
          wget http://ftp.gnu.org/gnu/libc/glibc-2.38.tar.gz
          tar -xvzf glibc-2.38.tar.gz
          cd glibc-2.38
          mkdir build
          cd build
          ../configure --prefix=/opt/glibc-2.38 CFLAGS="-O2 -Wno-error"
          make -j$(nproc)
          sudo make install
          sudo ldconfig
          export LD_LIBRARY_PATH=/opt/glibc-2.38/lib:$LD_LIBRARY_PATH
      - name: Verify GLIBC version
        run: ldd --version
      - name: Install mix dependecies
        run: mix deps.get
      - name: Install node dependencies
        run: npm install --prefix ./assets --legacy-peer-deps
      - name: Deploy assets
        run: npm run deploy --prefix assets
      - name: Digest assets
        run: mix phx.digest
      - name: Create Release
        run: mix release --overwrite
      - name: Verify GLIBC version
        run: ldd --version

does anyone has faced this issue ??

First Post!

karlosmid

karlosmid

Hi, github actions runner was updated to ubuntu 24.04.
Check your Dockerfile ubuntu version and put that version in runs-on instead of ubuntu-latest.

Where Next?

Popular in Questions Top

yawaramin
In the Dialyzer docs ( http://erlang.org/doc/man/dialyzer.html#requesting-or-suppressing-warnings-in-source-files ), there is a way to tu...
New
New
dokuzbir
Hello, I am trying to convert my lists to string without losing brackets.For start i have 3 map. They look like these buyer = %{ id: ...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
mgjohns61585
Could someone help me? I'm making my first elixir program, number guessing game. I can't figure out how to convert the user's guess from ...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
Exadra37
Sometimes I want to check if the input into a function is not a blank string. My first approach: defmodule Example do def do_stuff(s...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New

Other popular topics Top

JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1140 51847 244
New
yawaramin
In the Dialyzer docs ( http://erlang.org/doc/man/dialyzer.html#requesting-or-suppressing-warnings-in-source-files ), there is a way to tu...
New
ycv005
I have followed this StackOverflow post to install the specific version of Erlang. And When I am running mix ecto.setup then getting fol...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod -- where is this set? Thanks.
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list....
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
lucidguppy
I have a super simple question about elixir - how would I take a file like this foo bar baz and output a new file that enumerates th...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New

We're in Beta

About us Mission Statement