Skip to content

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

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).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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