sudo에서 node.js n 패키지를 실행할 때 명령을 찾을 수 없습니다.

sudo에서 node.js n 패키지를 실행할 때 명령을 찾을 수 없습니다.

내 노드 버전을 최신 안정 버전으로 업데이트하려고 합니다.

사용이 리소스나는 다음을 할 수 있었다:

sudo npm install n -g

하지만 내가 시도할 때

sudo npm n stable

나는 얻다:

sudo: n: command not found

을 실행하면 n stable다음 명령이 표시됩니다.

n stable
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied

     install : node-v0.12.2
       mkdir : /usr/local/n/versions/node/0.12.2
mkdir: cannot create directory ‘/usr/local/n’: Permission denied

  Error: sudo required

답변1

나에게 맞는 솔루션을 찾았습니다.

sudo -E env "PATH=$PATH" n stable

여기에서 찾았습니다:https://stackoverflow.com/a/29400598/861615

답변2

놀랍게도 설치에는 홈 디렉터리에 npm있는 폴더에 전역 접두사가 있습니다 . 이는 플래그를 사용하여 설치된 모든 패키지가 이 폴더에 설치된다는 의미입니다.npm-g

sudo다음 단계에 따라 이 폴더를 안전한 경로에 있는 폴더로 변경할 수 있습니다 .


그래픽 방식:

  1. 파일 관리자(노틸러스라고도 함)를 엽니다.
  2. 홈 폴더로 이동합니다.
  3. Ctrl+를 누르면 H숨겨진 파일이 표시됩니다.
  4. .npmrc즐겨 사용하는 텍스트 편집기로 라는 파일을 엽니다 .
  5. 해당 파일에서 다음 내용이 포함된 줄을 찾으세요.

    prefix=/home/<your_username>/npm
    
  6. /home/<your_username>/npm안전한 경로(예: )로 바꾸십시오 /usr/local/bin.
  7. 교체하고 나면 다음과 같은 모양이 됩니다.

    prefix=/usr/local/bin
    
  8. 파일을 저장합니다.
  9. 다시 뛰어sudo npm install n -g

터미널 방법:

다음 명령을 실행하세요:

sed -i.bak "s%^prefix=.*$%prefix=/usr/local/bin%" ~/.npmrc

답변3

나는 이것이 Ubuntu 포럼이라는 것을 알고 있지만 이것이 나처럼 여기에서 검색한 RHEL 버전에 대해 동일한 문제를 가진 누군가에게 도움이 될 것이라고 확신합니다. 아마도 우분투에서도 작동할 것입니다.

이것이 접근 방식입니다:

ln -s /usr/local/bin/n /usr/bin/n

답변4

.npm-global폴더를 엉망으로 만들지 않으려면유명한@Edson Horacio Junior 작성, @pohest의 글을 기반으로 함답변, 문제를 해결한 방법은 다음과 같습니다.

sudo ln -s /home/<username>/.npm-global/bin/n /usr/local/bin/n
sudo n --version # test it

참고로, npm의 단계를 따르지 않으면 아마도 작동하지 않을 것입니다.기본 전역 디렉터리 변경.

관련 정보