EC2: sudo 노드 명령을 찾을 수 없지만 sudo가 없는 노드는 정상입니다.
방금 새 EC2 마이크로 인스턴스에 nodejs를 설치했습니다.
./configure -> make -> sudo make install 정상적으로 설치했습니다.
문제:ec2-user에서 "노드"를 실행하면 완벽하게 실행됩니다."sudo node"를 실행하면 실패합니다.
노드가 다음 위치에 있다는 것을 알게 되었습니다.
[ec2-user@XXXX ~]$ whereis node
node: /usr/local/bin/node /usr/local/lib/node
그리고 현재 경로는
[ec2-user@XXXX ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/opt/aws/bin:/home/ec2-user/bin
하지만, sudo 경로는
[root@ip-10-112-222-32 ~]# echo $PATH
/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin
그런 다음 루트 PATH를 편집하여 노드에 대한 경로를 포함하려고 했습니다. 따라서 "노드"는 root로 로그인할 때 실행되지만 ec2-user로 로그인하고 "sudo node"를 실행해도 작동하지 않습니다.
나는 npm을 제대로 설치하기 위해 이것이 필요합니다."sudo node"를 실행하는 동안 노드 경로를 포함하는 방법에 대한 아이디어가 있습니까?
예, 조금 귀찮지만 몇 가지 링크를 사용하여 수정할 수 있습니다.
sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf
더 있을지도 모르지만 지금까지 만난 것은 그것뿐입니다.노드 웨이퍼가 부족하면 일부 원인이 됩니다.npm
설치가 실패하고 다소 암호화된 오류 메시지가 표시됩니다.
추가했습니다./usr/local/bin
로.secure_path
에/etc/sudoers
$ sudo visudo
그런 다음 이 줄을 변경합니다.
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
받는 사람:
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
노드 실행 파일이 /usr/bin에 없기 때문에 발생합니다.따라서 다음 단계를 수행합니다.
- 노드 찾기:
whereis node
내 경우:node: /home/<my_user>/.nvm/versions/node/v8.9.4/bin/node
노드에 대한 심볼 링크 만들기:
sudo ln -s /home/<my_user>/.nvm/versions/node/v8.9.4/bin/node /usr/bin/node
끝났어요!
노드에 대한 절대 경로를 사용하는 것이 어떻습니까?시작 스크립트를 사용할 계획이라면 어쨌든 절대 경로가 필요합니다.
sudo /usr/local/bin/node server.js
다음을 시도해 보십시오.
export PATH=$PATH:/usr/local/bin
sudo node --version
로의 전체 경로를 통과할 수 있습니다.node
상위(비 sudo 셸)에서 실행 파일 사용which
지휘권
sudo `which node`
저는 노드 폴더의 소유권을 root에서 ec2-user(ec2-user로 로그인)로 변경하는 작업만 했습니다.
(참고: /var/lib/에 노드 폴더를 만들었습니다.)
sudo chown -R ec2-user /var/lib/node/
그리고나서
npm install mongojs
잘 작동해야 합니다(물론 npmok을 설치했다면!)
"sudo node" 대신 "sudo $(어느 노드)"를 사용하는 것은 어떻습니까?
심볼릭 링크를 사용하지 않거나 루트가 필요한 접근 방식은 다음과 같습니다.
$ git clone https://github.com/joyent/node.git
$ cd node
$ mkdir ~/opt
$ export PREFIX=~/opt; ./configure
$ make
$ make install
$ echo 'export PATH=~/opt/bin:${PATH}' >> ~/.bashrc
그 다음엔...
$ git clone https://github.com/isaacs/npm.git
$ cd npm
$ make install
노드를 루트로 실행하지 않을 경우의 이점은 다음과 같습니다.
http://increaseyourgeek.wordpress.com/2010/08/18/install-node-js-without-using-sudo/
다음을 포함합니다.
https://github.com/joyent/node/wiki/Installation
제 경우 노드는 sudo 접두사 없이 설치되었습니다.슈퍼유저에 대해 노드를 사용할 수 없어서 작동하지 않습니다.sudo node server
루트로 입력합니다.
sudo su
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install node
node -e "console.log('Running Node.js ' + process.version)"
이것이 제가 비슷한 문제를 해결하기 위해 한 일입니다.참고: 스냅을 통해 노드를 설치했습니다.
1단계: 스냅을 통해 노드 설치
sudo snap install node --classic
2단계: 노드가 설치된 위치 찾기
whereis node
내 경우에는
/snap/bin/node.npm
/snap/bin/node.npx
/snap/bin/node.yarn
/snap/bin/node
/snap/bin/node.yarnpkg
3단계: 노드, npm, npx 및 실에 대한 심볼 링크 생성
sudo ln -s /snap/bin/yarn /usr/bin/yarn
sudo ln -s /snap/bin/node /usr/bin/node
sudo ln -s /snap/bin/npm /usr/bin/npm
마지막으로 모든 사용자, 심지어 sudo 그룹도 노드에 액세스할 수 있습니다.
sudo node
위의 답변에 언급된 모든 것을 시도했지만 아무 것도 되지 않았습니다.아마도 심볼릭 링크와 관련된 개념에 대한 이해가 부족했기 때문일 것입니다.나는 nvm을 사용하지 않아 문제를 해결했습니다.방금 새 ec2 인스턴스를 생성했고 nvm을 설치하지 않았습니다.대신 노드와 npm을 설치했습니다.
sudo apt update
sudo apt install nodejs npm
그리고 이것이 저를 위해 해냈습니다.
노드 환경을 이미 설치한 경우 이 명령을 인스턴스에 붙여 넣으면 노드가 사용자 디렉토리에 연결됩니다.그리고 sudo와 함께 노드를 사용할 수 있습니다.
sudo ln -s "$(which node)" "/usr/local/bin/node"
sudo ln -s "$(which npm)" "/usr/local/bin/npm"
이게 옳은 방법인지는 모르겠지만 제가 한 일은...
sudo su
export PATH=$PATH:/home/ec2-user/local/node/bin
curl http://npmjs.org/install.sh | sh
chown -R ec2-user /home/ec2-user/local/node
exit
이것은 npm을 설치했고, 나는 이제 내가 원하는 어떤 패키지도 설치할 수 있습니다.
언급URL : https://stackoverflow.com/questions/4976658/on-ec2-sudo-node-command-not-found-but-node-without-sudo-is-ok
'programing' 카테고리의 다른 글
반환된 값이 null인 경우 postgresql이 0을 반환합니다. (0) | 2023.05.25 |
---|---|
익스프레스 프레임워크를 사용하여 노드 J에서 쿠키를 설정하려면 어떻게 해야 합니까? (0) | 2023.05.25 |
인코딩이 없는 ASP.NET MVC 레이저 렌더 (0) | 2023.05.25 |
Azure AD B2C - 역할 관리 (0) | 2023.05.25 |
MongoDBC# 드라이버 2.0 - 문서 업데이트 (0) | 2023.05.25 |