1

I'm trying to install the PNPM package manager on debian/ubuntu, but when I enter the command:

curl -fsSL https://get.pnpm.io/install.sh | sh-

The following error shows up:

bash: sh-: command not found
(23) Failed writing body

Does anyone know how to fix this?

3 Answers 3

2

Try using | bash - instead of | sh -.

curl -fsSL https://get.pnpm.io/install.sh | bash -

curl writes to stdout by default, so the | pipe character diverts the output, in this case the sh terminal. Try using | bash - which will pipe its live output to a bash terminal. The - character at the end means that the terminal will accept anything sent to its stdin. You may not have the sh terminal installed.

Another option: npm i -G pnpm will get you there too and npm ships with Node, which I assume you have on this box.

Make sure to run any of the commands as the user who will be using pnpm, not root.

-f fail silently
-s silent mode
-S show errors in silent mode
-L will follow redirects by using the 3xx-response's output to make a new curl request

1
  • changing sh to bash worked for me on Ubuntu 22 curl -fsSL https://get.pnpm.io/install.sh | bash - Commented 15 hours ago
0

I do not believe -fsSL is a valid option.
Maybe you mean to use one of the following options.
LINK to curl options

 --ssl           Try SSL/TLS
 --ssl-allow-beast Allow security flaw to improve interop
 --ssl-no-revoke Disable cert revocation checks (Schannel)
 --ssl-reqd      Require SSL/TLS

 -f, --fail          Fail silently (no output at all) on HTTP errors
     --fail-early    Fail on first transfer error, do not continue
     --false-start   Enable TLS False Start
 -F, --form <name=content> Specify multipart MIME data
     --form-string <name=string> Specify multipart MIME data
     --ftp-account <data> Account data string
     --ftp-alternative-to-user <command> String to replace USER [name]
     --ftp-create-dirs Create the remote dirs if not present
     --ftp-method <method> Control CWD usage
     --ftp-pasv      Use PASV/EPSV instead of PORT
 -P, --ftp-port <address> Use PORT instead of PASV
     --ftp-pret      Send PRET before PASV
     --ftp-skip-pasv-ip Skip the IP address for PASV
     --ftp-ssl-ccc   Send CCC after authenticating
     --ftp-ssl-ccc-mode <active/passive> Set CCC mode
     --ftp-ssl-control Require SSL/TLS for FTP login, clear for transfer

I have no idea about the | sh What I would suggest is you go to https://curlconverter.com
Paste your curl command into the "curl command" textarea and if there is an error they will point it out for you.

0

the issue is a missing space in your command between sh and the -. It should look like this:

curl -fsSL https://get.pnpm.io/install.sh | sh -

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.