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


13

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

이 리소스를 사용하여 다음 을 수행 할 수있었습니다.

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

좋은 생각이지만, 그렇게하면 's :'를 삭제 했는데도 'n : command not found'가 반환됩니다.
JonRed

sudo sh -c "PATH = $ PATH; n 안정"<새 줄> sh : 1 : n : 찾을 수 없음
JonRed

전혀 출력이 없습니다. 우울하다 :-(
JonRed


ls /usr/local/bin/n
Helio

답변:


5

놀랍게도, 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

나는 이것이 그것을 못 박았다고 생각한다! npm 버전을 업데이트했을 때도 도움이되었지만 인식하지 못했습니다. 받아 주셔서 감사합니다!
JonRed

도움이 아직 도움이되지 않은 문제 : /
Luckylooke

이것은 나를 도왔다! ~ / .npmrc 파일이 없었기 때문에 파일을 추가했으며 이제는 정상적으로 작동합니다
Kirill Gusyatin

2
주의 :이 취소됩니다 옵션 2NPM 권한을 고정
에드 슨 오라 주니어


2

나는 이것이 우분투 포럼이라는 것을 알고 있지만, 이것이 내가 Google에 온 것처럼 RHEL 맛에 대해 같은 문제를 가진 사람을 도울 것이라고 확신합니다. 아마도 우분투에서도 작동합니다.

이것은 접근 방식입니다 .

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

0

@Edson Horacio Junior가 언급.npm-global폴더를 엉망 으로 만들고 @pohest의 답변을 기반으로 폴더를 수정하는 방법은 다음과 같습니다.

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

참고로, 기본 전역 디렉토리변경하는 npm의 단계를 따르지 않으면 작동하지 않을 수 있습니다 .


0

나는 나를 위해 일한 해결책을 찾았다. nvm패키지를 사용 하여 최신 노드를 다운로드하십시오.

  1. 아래 명령을 사용하여 nvm을 설치하십시오.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

  1. nvm을 사용하기위한 환경 변수 생성
export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
  1. 시도 nvm -v가 볼 수없는 경우 nvm설치, 아래의 스크립트를 실행

command -v nvm

  1. 아래에서 노드 실행 명령을 설치하려면

nvm install node

  1. 터미널을 다시 시작한 후 노드 버전을 확인하십시오. 업데이트해야합니다.

node -v

자세한 정보는 여기 : https://github.com/nvm-sh/nvm


0

즉, 시스템에 N이 설치되어 있지 않으며 N은 npm 기반 노드 버전 관리자입니다. 먼저 일부 버전의 노드를 설치 한 다음 실행하여 설치할 수 있습니다.

sudo npm install -g n

이제 n 명령을 사용하여 노드에 버전을 설치할 수 있습니다

sudo n stable

위의 최신 안정 버전을 설치합니다

sudo n lates

이 늦은 버전을 설치합니다

아래와 같이 버전을 지정하여 특정 버전을 설치할 수도 있습니다

sudo n  10.16.0

0

위의 답변 중 어느 것도 나를 위해 일하지 않았습니다. 그러나 이것은 이것을했다 :

sudo /usr/local/bin/bin/n stable

-1

같은 문제가 발생했습니다.이를 해결하는 방법입니다.

  1. npm 구성 접두사 가져 오기
    npm config get prefix 
    // get -> ${myhome}/.npm-global
  2. 다음 줄을 추가하십시오 .zshrc

    # Specify `n` to put the version of `node` in the `.n` directory.
    export N_PREFIX=${myhome}/.npm-global/.n
    
    # Make `nman` command work
    export PATH=${myhome}/.npm-global/bin:$PATH
    
    # Add this line to use `node -v` command
    export PATH=${myhome}/.npm-global/.n/bin:$PATH

참조 : GitHub-tj / n : 노드 버전 관리

편집자 주 : 이 답변은 원래 중국어로 작성되었으며 온라인 도구를 사용하여 번역 및 편집되었습니다. 원래 답변을 보려면 개정 # 1을 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.