The above command is a bit complicated, but all it's doing is copying whatever version of node you have active via nvm into the /usr/local/ directory (where user installed global files should live on a linux VPS) and setting the permissions so that all users can access them.
Hope this helps!
回答2:
My solution is to create symbolic links from the versions of node and npm I'm using to /usr/local/bin:
Your problem is, that nvm is not in the path when you use sudo.
So type
$ which nvm
and the result will be something like
/home/abc/mynvm/nvm
Try again now with sudo:
sudo /home/abc/mynvm/nvm use v0.10.23
I assume you then run into the issue that the root user can't find the 0.10.13-version, but lets see the next error message...
回答4:
I have tried the same on my machine where I have nvm as well and I have a slighlty different response:
$ sudo node --version sudo: node: command not found
My guess is that you have installed node 0.11 outside of nvm. (Via package manager or even from source)
Therefore, running node via sudo would pick up this standalone node instead.
Does that make sense or am I mistaken?
回答5:
I had your problem too. Finally I have worked around it. Here is my solution:
Uninstall nvm and nodejs. Here are some helpful links: Uninstallation of nvm. If you installed nodejs using apt-get, you can uninstall it with the command apt-get purge nodejs.
Install a global nvm. See this page : nvm global. As it says, "Standard nvm has known difficulties working in multi-user or rooted environments."
After restarting your terminal, you can run the command sudo nvm ls.
回答6:
The fundamental reason is because nvm is not a real program. It's a bash function that gets loaded in the user's .profile, .bashrc, or ... So sudo doesn't automatically pick it up from the $PATH like most other programs.
An alternative node version manager is n: https://github.com/tj/n . That is a real program, so sudo will pick it up via the $PATH without any hacks (as long as sudo has /usr/local/bin in its $PATH).
sudo npm install -g n # install 'n' globally which n # should be /usr/local/bin/n sudo n lts # need sudo to switch node versions node --version # v6.10.0 sudo node --version # v6.10.0