Verify latest 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
- On an Android device, install Termux.
- Install Node.js: pkg install nodejs-lts
- Install pnpm 12.4.0 globally via npm: npm i -g pnpm@12.4.0
- Run: pnpx prettier --version
- 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?
If your OS is a Linux based, which one it is? (Include the version if relevant)
Termux (Android)
Verify latest 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 --versionafter installing pnpm@12.4.0.Reproduction steps
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/dlxcommand 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:
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?
If your OS is a Linux based, which one it is? (Include the version if relevant)
Termux (Android)