Skip to content

Fresh install on debian12 is failing and saying it can't find GLIBC_2.38 #1445

@fr3nch13

Description

@fr3nch13

Describe the bug
When trying to run the pdk command, it fails no matter what subcommand/arg/none is given.
When running pdk, it fails with the following error:

$ apt list --installed | grep pdk
pdk/noble,now 3.4.0.1-1noble amd64 [installed]
$ pdk
/opt/puppetlabs/pdk/private/ruby/3.2.5/bin/ruby: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /opt/puppetlabs/pdk/private/ruby/3.2.5/lib/libruby.so.3.2)
/opt/puppetlabs/pdk/private/ruby/3.2.5/bin/ruby: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /opt/puppetlabs/pdk/private/ruby/3.2.5/lib/libruby.so.3.2)

To Reproduce
This is from within a Docker container, and is a fresh install of pdk.
The Docker container is used within VS Code's Dev Containers to setup the container env.

The Dockerfile looks like below:

FROM ruby:3.2-bookworm

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
    # Remove imagemagick due to https://security-tracker.debian.org/tracker/CVE-2019-10131
    && apt-get purge -y imagemagick imagemagick-6-common

# Install needed packages
RUN apt-get update \
    && apt-get -y install --no-install-recommends \
    wget \
    jq \
    ruby-dev

# Make sure the puppet release package (repo) is installed.
# needed so we can install puppet's pdk
RUN echo "deb [trusted=yes] http://apt.puppet.com noble puppet8" > /etc/apt/sources.list.d/puppet8-release.list

# Make sure the openvox release package (repo) is installed.
# This is the opensource replacement of puppet-agent.
RUN wget https://s3.osuosl.org/openvox-apt/openvox8-release-debian12.deb \
    && dpkg -i openvox8-release-debian12.deb \
    && rm openvox8-release-debian12.deb \
    && apt-get update

# Make sure we have openvox agent and the development kit installed.
RUN apt-get update \
    && apt-get -y install --no-install-recommends \
    openvox-agent \
    pdk

# Install shellcheck
RUN scversion="stable" \
    && wget -qO- "https://github.com/koalaman/shellcheck/releases/download/${scversion?}/shellcheck-${scversion?}.linux.x86_64.tar.xz" | tar -xJv \
    && cp "shellcheck-${scversion}/shellcheck" /usr/bin/ \
    && shellcheck --version

The devcontainer.json looks like:

{
  "name": "Puppet Module Container",
  "build": {
    "dockerfile": "./Dockerfile",
    "context": ".."
  },
  "runArgs": [
    // FQDN is set because it's used by the puppet-agent/openvox-agent
    // to check in the container into a dev puppet server
    // and provide a unique hostname for the puppet SSL Cert/Key.
    // (redacted)
    "--hostname", "${localWorkspaceFolderBasename}.${localEnv:USER}.devcontainer.example.com"
  ],
  "features": {
    "ghcr.io/devcontainers/features/common-utils:2": {
      "installZsh": "true",
      "username": "vscode",
      "userUid": "1000",
      "userGid": "1000",
      "upgradePackages": "true"
    },
    "ghcr.io/devcontainers/features/ruby:1": "none",
    "ghcr.io/devcontainers/features/node:1": "none",
    "ghcr.io/devcontainers/features/git:1": {
      "version": "latest",
      "ppa": "false"
    }
  },
  "customizations": {
    // Configure properties specific to VS Code.
    "vscode": {
      // Set *default* container specific settings.json values on container create.
      "settings": {},
      "extensions": [
        "gitlab.gitlab-workflow",
        "puppet.puppet-vscode",
        "ms-azuretools.vscode-docker",
        "davidanson.vscode-markdownlint",
        "yzhang.markdown-all-in-one",
        "timonwong.shellcheck",
        "Shopify.ruby-lsp"
      ]
    }
  },
  "remoteUser": "vscode",
   // These scripts do other things that don't touch puppet/pdk, but setup other things/tools.
  "postCreateCommand": "sudo bash vagrant/prepare_dev_container.sh",
  "postStartCommand": "bash vagrant/vagrant_update.sh"
}

Expected behavior
The tool to be able to run as expected.

Additional context

  • Your PDK installation method (native packages or via Rubygems)
    • It's installed by adding the repo from apt.puppet.com/puppet8-release.deb
    • Then doing an apt update && apt install pdk
  • Your PDK version (pdk --version)
    • $ apt list --installed | grep pdk -> pdk/noble,now 3.4.0.1-1noble amd64 [installed]
  • Your operating system / platform
    • Debian12, Debian11 (using the ruby:3.2-* docker images).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions