.NET에서 실행할 때 내 애플리케이션이 다른 버전의 NodeJS를 사용한다고 언급했습니다 sudo
.
$ node -v
v0.10.23
$ sudo node -v
v0.11.8-pre
이 v0.11.8-pre로 인해 몇 가지 문제가 발생했기 때문에 사용하고 싶지는 않지만 루트로 변경할 수는 없습니다.
$ sudo nvm use v0.10.23
sudo: nvm: command not found
루트 사용자로부터 nvm을 설치하려고했지만 “NVM이 이미 설치되었습니다”라는 오류가 발생했지만에서 실행할 때 여전히 nvm을 찾을 수 없습니다 sudo
. 내 문제는 무엇입니까?
답변
아래 명령 목록 (출처 : digitalocean )이 문제를 해결하는 것 같습니다.
n=$(which node); \
n=${n%/bin/node}; \
chmod -R 755 $n/bin/*; \
sudo cp -r $n/{bin,lib,share} /usr/local
위의 명령은 약간 복잡하지만 nvm을 통해 활성화 된 노드 버전을 /usr/local/
디렉토리 (사용자가 설치 한 전역 파일이 Linux VPS에 있어야 함 )에 복사 하고 모든 사용자가 액세스 할 수 있도록 권한을 설정하는 것 뿐입니다. .
도움이 되었기를 바랍니다!
답변
내 솔루션의 버전 심볼릭 링크 만드는 것입니다 node
및 npm
I가 사용하고 있습니다를 /usr/local/bin
:
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm"
이는하게 npm
하고 node
모든 사용자가 사용할.
답변
문제는 nvm
사용할 때 경로에 없다는 것입니다.sudo
입니다.
그래서 입력
$ which nvm
결과는 다음과 같습니다.
/home/abc/mynvm/nvm
지금 다시 시도하십시오 sudo
:
sudo /home/abc/mynvm/nvm use v0.10.23
그런 다음 루트 사용자가 0.10.13 버전을 찾을 수 없다는 문제가 발생했다고 가정하지만 다음 오류 메시지를 볼 수 있습니다.
답변
근본적인 이유는 nvm
실제 프로그램 이 아니기 때문 입니다. 그것은 사용자에로드되는 bash는 기능이다 .profile
, .bashrc
또는 … 그래서이 sudo
자동으로 대부분의 다른 프로그램처럼은 $ PATH에서 그것을 선택하지 않습니다.
또 다른 노드 버전 관리자입니다 n
: https://github.com/tj/n . 실제 프로그램이 즉, 그래서 sudo
(만큼 어떠한 해킹없이 $ 경로를 통해 그것을 선택할 것 sudo
가지고 /usr/local/bin
는 $ 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
답변
README 에 따르면
nvm을 사용할 때를 사용하여
sudo
모듈을 전역 적으로 설치할 필요 가npm -g
없으므로 대신 수행하십시오sudo npm install -g grunt
.npm install -g grunt
sudo npm이 필요하십니까?
제 경우에는 sudo npm run start
루트 액세스가 필요한 일부 파일에 대한 액세스가 필요합니다. 이 문제 에 따르면 ,
당신은 사용하지 마십시오
sudo
. 대신 nvm이있는 사용자가 파일에 액세스 할 수 있도록 파일을 chmod / chown해야합니다.
요약해서 말하면
nvm의 관리자는 우리가 다음을 수행 할 필요가 없다고 강력하게 믿습니다 sudo
.
답변
나도 너의 문제가 있었다. 마침내 나는 그것을 해결했습니다. 내 해결책은 다음과 같습니다.
- nvm 및 nodejs를 제거하십시오. 다음은 몇 가지 유용한 링크입니다. Uninstallation of nvm . apt-get을 사용하여 nodejs를 설치 한 경우 명령을 사용하여 제거 할 수 있습니다
apt-get purge nodejs
. - 글로벌 nvm을 설치합니다. 이 페이지를 참조하십시오 : nvm global . “Standard nvm은 다중 사용자 또는 루팅 된 환경에서 작업하는 데 어려움이있는 것으로 알려져 있습니다.”
터미널을 다시 시작한 후 명령을 실행할 수 있습니다 sudo nvm ls
.
답변
$ sudo bash -ic "nvm use stable; npm -v"
Now using node v6.3.1 (npm v3.10.3)
3.10.3
