Skip to content

Cross-platform Linux installation, target uses glibc but host uses musl #3159

@arovetto

Description

@arovetto

Possible install-time or require-time problem

  • I have read the documentation relating to installation.
  • I have ensured that the architecture and platform of Node.js used for npm install is the same as the architecture and platform of Node.js used at runtime.

Are you using the latest version of sharp?

  • I am using the latest version of sharp as reported by npm view sharp dist-tags.latest.

If you cannot confirm this, please upgrade to the latest version and try again before opening an issue.

If you are using another package which depends on a version of sharp that is not the latest, please open an issue against that package instead.

Is this a problem with filesystem permissions?

If you are using npm v6 or earlier and installing as a root or sudo user, have you tried with the npm install --unsafe-perm flag?

If you are using npm v7 or later, does the user running npm install own the directory it is run in?

If you are using the ignore-scripts feature of npm, have you tried with the npm install --ignore-scripts=false flag?

What is the complete output of running npm install --verbose sharp?

Details

I'm trying to cross-platfrom install from an alpine image targeting both win32-x64 and linux-x64 platform, but both are failing because during the installation procedure musl is detected as libc, and the binary installed are for musl.

Instead, when I cross-platform install when using windows targeting linux, it works fine.

Am I doing something wrong here, or is using an alpine image not supported for cross-compiling to linux (glibc)?

When I run:
npm install --arch=x64 --platform=linux sharp
Installation seems ok, but I found the following path revealing something not expected:

"/node_modules/sharp/vendor/8.12.2/linuxmusl-x64"

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions