nvm
nvm copied to clipboard
NVM installer throws "/usr/bin/env: ‘node’: No such file or directory"
Operating system and version:
NAME="Pop!_OS"
VERSION="22.04 LTS"
ID=pop
ID_LIKE="ubuntu debian"
PRETTY_NAME="Pop!_OS 22.04 LTS"
VERSION_ID="22.04"
HOME_URL="https://pop.system76.com"
SUPPORT_URL="https://support.system76.com"
BUG_REPORT_URL="https://github.com/pop-os/pop/issues"
PRIVACY_POLICY_URL="https://system76.com/privacy"
VERSION_CODENAME=jammy
UBUNTU_CODENAME=jammy
LOGO=distributor-logo-pop-os
nvm debug output:
N/A
nvm ls output:
N/A
How did you install nvm?
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
What steps did you perform?
I did only the install
What happened?
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 16563 100 16563 0 0 182k 0 --:--:-- --:--:-- --:--:-- 183k
=> nvm is already installed in /home/knackstedt/.nvm, trying to update using git
=> => Compressing and cleaning up git repository
=> nvm source string already in /home/knackstedt/.bashrc
=> bash_completion source string already in /home/knackstedt/.bashrc
/usr/bin/env: ‘node’: No such file or directory
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
What did you expect to happen?
No errors and the install to proceed.
Is there anything in any of your profile files that modifies the PATH?
If you are having installation issues, or getting "N/A", what does curl -I --compressed -v https://nodejs.org/dist/ print out?
* Trying 104.20.23.46:443...
* Connected to nodejs.org (104.20.23.46) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* TLSv1.0 (OUT), TLS header, Certificate Status (22):
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS header, Finished (20):
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.2 (OUT), TLS header, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=*.nodejs.org
* start date: Feb 28 00:00:00 2024 GMT
* expire date: Mar 30 23:59:59 2025 GMT
* subjectAltName: host "nodejs.org" matched cert's "nodejs.org"
* issuer: C=GB; ST=Greater Manchester; L=Salford; O=Sectigo Limited; CN=Sectigo RSA Domain Validation Secure Server CA
* SSL certificate verify ok.
* Using HTTP2, server supports multiplexing
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* Using Stream ID: 1 (easy handle 0x5adf80e1deb0)
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
> HEAD /dist/ HTTP/2
> Host: nodejs.org
> user-agent: curl/7.81.0
> accept: */*
> accept-encoding: deflate, gzip, br, zstd
>
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.2 (IN), TLS header, Supplemental data (23):
< HTTP/2 200
HTTP/2 200
< date: Mon, 11 Nov 2024 13:50:16 GMT
date: Mon, 11 Nov 2024 13:50:16 GMT
< content-type: text/html
content-type: text/html
< cache-control: public, max-age=3600, s-maxage=14400
cache-control: public, max-age=3600, s-maxage=14400
< last-modified: Mon, 11 Nov 2024 12:35:04 GMT
last-modified: Mon, 11 Nov 2024 12:35:04 GMT
< cf-cache-status: HIT
cf-cache-status: HIT
< age: 4489
age: 4489
< vary: Accept-Encoding
vary: Accept-Encoding
< strict-transport-security: max-age=31536000; includeSubDomains; preload
strict-transport-security: max-age=31536000; includeSubDomains; preload
< x-content-type-options: nosniff
x-content-type-options: nosniff
< server: cloudflare
server: cloudflare
< cf-ray: 8e0ec0162c281141-ORD
cf-ray: 8e0ec0162c281141-ORD
< content-encoding: br
content-encoding: br
<
* Connection #0 to host nodejs.org left intact
The installation succeeded. It took me longer than I'd like to admit to realize my shell was broken because my path was too long. Still, the error printed in the log should be addressed.
If the PATH can’t be updated to find node, then that error is certainly expected - i suppose we could detect the PATH length and print a better message, but i didn’t even realize that was a thing that could break :-) how long was your PATH?
Well my path ended up getting a ton of duplicates because I was testing a script to install webassembly3 which ended up running source .bashrc many times on the same TTY. This ends up adding duplicate entries into the PATH var which seems to have made things freak out in general (though I might be following a ghost at this point)
I'm not totally sure why nvm is trying to write to that path, as an nvm install on a different device (roughly same OS version) went fine and I didn't see that message. It's very possible that something on my current install is just wonky... I had to do some boot rescues recently so maybe that would slay these demons 😅
nvm works solely by modifying the PATH - like, that's the main way it works.