Skip to content

Release v3.44.0 Breaks CLI on Ubuntu 18.04 LTS (Node v18+ Dropped Ubuntu 18.04 glibc Support) #877

@justicefreed

Description

@justicefreed

Description

Particle CLI auto-updated to v3.44.0, after which any particle command fails and returns the following error:

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

Manual re-installation of v3.43.1 fixes the issue.

Initial research indicates that the issue is due to the updated Node version from commit dc90965, where node was increased from v16 to v22.

Node started requiring glibc v2.28 starting with node v18. The version of glibc bundled in Ubuntu 18.04 LTS is too old. The only surefire way to safely resolve the version requirement is to update the OS distribution to 20.04+

I'll be the first to say that Ubuntu 18.04 is ancient-ish, but a change that removes OS / distribution support should not be auto-updated on a (newly) incompatible system.

My tentative proposal would be a simple version check prior to any auto update (or ideally also in the install script) that at least flags the issue to the user and forces it to be an opt-in. Ideally, the CI/CD pipeline could be updated to bundle a version of Node v22 that has been compiled from source to use the older GLIBC version, for installation on older machines. That is of course, if Particle wants to maintain forward support for older systems like this (which would be fair not to of course)

Steps to reproduce

Update particle cli on Ubuntu 18.04 LTS to v3.44.0

Expected result

Either update should not occur in the first place, or some kind of deprecation notice should be in place.

Actual result

cli updates and then remains non-functional until external manual re-installation

Environment

Tell us about your setup:

  • OS: ubuntu 10.04.6 LTS
  • Node (run node -v): v9.11.2
  • NPM (run npm -v): v6.1.0
  • Particle CLI (run particle version): v3.44.0 / v3.43.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions