Skip to content

pnpm 12.4.0 dlx fails with "Permission denied (os error 13)" on Termux (android-arm64) when importing packages #14780

Description

@GourangaDasSamrat

Verify latest release

  • I verified that the issue exists in the latest pnpm release

pnpm version

12.4.0

Which area(s) of pnpm are affected? (leave empty if unsure)

CLI, Operating System (Windows, MacOS, Linux), Dependencies resolver, Store

Link to the code that reproduces this issue or a replay of the bug

No repository needed — this reproduces on any Termux (Android) installation by running pnpx prettier --version after installing pnpm@12.4.0.

Reproduction steps

  1. On an Android device, install Termux.
  2. Install Node.js: pkg install nodejs-lts
  3. Install pnpm 12.4.0 globally via npm: npm i -g pnpm@12.4.0
  4. Run: pnpx prettier --version
  5. Observe the failure while pnpm tries to import a package from the store into the dlx cache.

Describe the Bug

After pnpm 12.4.0 added Android binaries (fixing the original "no prebuilt binary for android" error from #14679), running any pnpx/dlx command now fails with a permission error while pnpm tries to link/import a package from the content-addressable store into the dlx cache directory.

Example output:

~ $ npm i -g pnpm@12.4.0

added 2 packages in 22s
npm warn install-scripts 1 package has install scripts not yet covered by allowScripts:
npm warn install-scripts   pnpm@12.4.0 (preinstall: node install.js; postinstall: node install.js)
npm warn install-scripts
npm warn install-scripts Run `npm install -g --allow-scripts=pnpm` to allow these scripts once, or `npm config set allow-scripts=pnpm --location=user` to allow them for all global installs.
~ $ pnpx prettier --version

Error:   × adding a new package
  ╰─▶ failed to import "/data/data/com.termux/files/home/.local/share/pnpm/store/v11/files/f9/f9421db849bee631a855d6f8cd1b8a708748d318e734bf1ca945e632ec036a9ffc8a2bb7f821fbdacc6cc32081d96fa2cfc4e725f3bd9bcf6eb844c5ab9563" to "/data/data/com.termux/files/home/.cache/pnpm/dlx/5b2b4826a6b38af7bff76c96b6175381/mtvfo0l0-ehk/node_modules/.pacquet/prettier@3.9.6/node_modules/prettier/plugins/graphql.mjs": Permission denied (os error 13)

This appears to be a separate/new issue from the original Android-support bug (#14679) — installation now succeeds, but the Rust-based store-linking logic seems to hit a filesystem permission restriction specific to Termux's storage layout when hard-linking/copying from the store to the dlx cache.

Expected Behavior

pnpm dlx / pnpx should successfully import packages from the store into the dlx cache on Termux (Android), without a permission error, using whatever link strategy (copy, hardlink, etc.) is compatible with Termux's filesystem.

Which Node.js version are you using?

24.18.0

Which operating systems have you used?

  • macOS
  • Windows
  • Linux

If your OS is a Linux based, which one it is? (Include the version if relevant)

Termux (Android)

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions