sudo : npm : 명령을 찾을 수 없습니다


201

최신 버전의 노드로 업그레이드하려고합니다. http://davidwalsh.name/upgrade-nodejs 의 지침을 따르고 있습니다.

그러나 내가 할 때 :

sudo npm install -g n

오류가 발생합니다.

sudo: npm: command not found

npm은 sudo없이 작동합니다. 내가 할 때 :

whereis node

내가 참조:

node: /usr/bin/node /usr/lib/node /usr/bin/X11/node /usr/local/node

달리는:

which npm

쇼 :

/usr/local/node/bin/npm

https://stackoverflow.com/a/5062718/1246159 에서 솔루션을 시도했습니다.

그러나 여전히 같은 오류가 발생합니다. 또한 / etc / sudoers 파일을 보았고 관련 줄은 다음과 같습니다.

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

이것은 나에게 잘 보인다. NPM이 sudo 명령으로 작동하게하려면 어떻게해야합니까?


4
이 작동합니까? sudo /usr/bin/npm install -g n
robertklep

2
노드를 다시 설치할 수 있습니까? npm을 삭제 한 것 같습니다.
Jeff Sloyer

1
당신은 추가 한 /usr/local/node/bin당신에 $PATH있지만 npm설치해야합니다 /usr/local/bin. 첫 번째 디렉토리는 찾을 수없는 secure_path이유를 설명 sudo합니다.
robertklep

1
nvm@robertklep 의견과 함께 우분투에서 여기를 사용하여 시도해 보았습니다 sudo /home/${user}/.nvm/version/node/${version}/bin/npm install.
Stav Pan Geffen

2
다음 패키지에서 다시 설치하여 문제를 해결했습니다. nodejs.org/ko/download
Marghoob Suleman

답변:


125

npm 파일은에 있어야합니다 /usr/local/bin/npm. 없는 경우 해당 웹 사이트 의 패키지와 함께 node.js를 다시 설치하십시오 . 이것은 내 경우에 효과가있었습니다.


고마워. os가 설치되지 않은 다른 데이터 드라이브에 노드를 설치하면이 경로를 찾을 수 없습니다.
Hardik Darji

1
homebrew가있는 mac os의 경우. 두 단계는 (1) / usr / local / bin (homebrew가 설치 / symlinks node + npm 인 경우)에 어느 노드 (2)가 있어야하는지 ... 문제를 해결하려면 .. (1) brew doctor (2) 여전히 노드에 문제가있는 경우 재설치 노드를 brew하십시오. 경로를 확인하십시오 (echo $ PATH). 다양한 노드 설치를 가리키는 여러 개의 bin 위치가 있어야합니다. 만약 그렇다면 ... 정리 (가장 깔끔하게) ~ / .bashrc / ~ / .bash_profile, / usr / local / bin이 있습니다. 다른 노드가 임의 노드 설치를 가리 키지 않고로드되었습니다.
Jimmy MG Lim

3
이것은 부분 솔루션입니다. 노드를 수동으로 설치할 때 문제가 발생합니다. 설치된 각 바이너리를 / usr / bin 또는 / usr / local / bin에 소프트 링크해야합니다. 루트의 bashrc에 경로를 설정하면 sudo 중에 읽지 않으므로 작동하지 않으므로 패키지를 설치하지 않으면 이것이 유일한 방법입니다.
shrimpwagon

@shrimpwagon이 말했듯이 수동 지침의 하단에 "sudo ln -s / usr / local / lib / nodejs / node- $ VERSION- $ DISTRO / bin / node / usr / bin / node sudo ln -s / usr / local / lib / nodejs / node- $ VERSION- $ DISTRO / bin / npm / usr / bin / npm sudo ln -s / usr / local / lib / nodejs / node- $ VERSION- $ DISTRO / bin / npx / usr / bin / npx "
James Nelson

169

해야 했어요

sudo apt-get install npm

그것은 나를 위해 일했다.


6
표현하려는 내용을 이해하기가 어렵습니다.
작은 햇빛

4
오래되었습니다. 나를 위해 일한 것은 여기에서 찾은 다음 명령이었습니다. github.com/nodesource/distributions#debinstall # Ubuntu curl 사용 -sL deb.nodesource.com/setup_5.x | sudo -E bash-sudo apt-get install -y nodejs # 데비안을 루트 컬로 사용 -sL deb.nodesource.com/setup_5.x | bash-apt-get install -y nodejs
Hamed

4
@tinysunlight 확실하지 않은 것이 확실하지 않습니다. op는 npm 명령이 누락되었다고 말합니다. 이 명령은 npm 명령을 설치합니다.
Velocibadgery

7
이것은 npm이미 설치되었지만 sudo를 통해 호출 할 때 도달 할 수없는 op에서 분명하기 때문에 질문에 대한 정답이 아닙니다 . 이 솔루션을 사용하면 이미 존재하는 npm을 다시 설치합니다. 이것은 원인을 찾는 것이 아니라 증상과 싸우는 것입니다. 나는 이것이 어떤 사람들에게는 깨진 것을 고칠 수 있다는 것을 이해하지만, 이렇게 오해의 소지가 있습니다.
Dominic

4
Ubuntu 18.10에서 NVM을 사용하여 노드를 설치하면 sudo가 npm을 명령으로 인식하지 않습니다. sudo apt-get install npm나를 위해 일했다.
AlienKevin

91

MAC 사용자에게는 다음 단계가 효과적이었습니다.

$ brew update
$ brew uninstall node
$ brew install node
$ brew postinstall 

5
brew uninstall node나를 위해 일을하지 않았다,하지만 난과에서 수행 brew install node하고 brew postinstall있으며 문제를 해결. 감사합니다
Trevor

2
무엇 않습니다 brew postinstall정확히 무엇입니까?
Oliver D

브루 버전 2.2.14는 brew postinstall중복
아르 슬란 칸

63

나는 같은 문제가 있었다. 다음은이를 해결하기위한 명령입니다.

  • 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

2
CentOS 7에서 나를 위해 일했습니다
hirikarate

4
나를 위해 일했다 우분투 16.04.1 LTS. NVM을 사용하므로 첫 번째 경로는 NVM이 설치된 노드와 npm입니다 (경로에는 버전 포함 %HOME%/.nvm/versions/node/v7.4.0/bin/npm). 불행히도 경로의 버전이 어떻게 변경되는지에 따라 NVM을 사용하여 업데이트 할 때마다이 답변을 참조해야합니다.
kas

1
이것은 나를 위해 그것을 해결했습니다! 원래 스택 오버플로에 게시 : EC2 : sudo node 명령을 찾을 수 없지만 sudo가없는 노드
Dominic

2
@kas sudo ln -s $(whereis node) /usr/bin/node 등등. bash 프로필에.
Aravind Voggu

AWS ec2 인스턴스에서 저를 위해 일했습니다.
Chirag Purohit

26

경고 (편집)

a chmod 777를하는 것은 상당히 급진적 인 해결책입니다. 한 번에 하나씩 먼저 시도하고 작동하면 중지하십시오.

  • $ sudo chmod -R 777 /usr/local/lib/node_modules/npm
  • $ sudo chmod -R 777 /usr/local/lib/node_modules
  • $ sudo chmod g+w /usr/local/lib
  • $ sudo chmod g+rwx /usr/local/lib

$ brew postinstall node 문제가 발생하는 유일한 설치 부분입니다.

Permission denied - /usr/local/lib/node_modules/npm/.github

그래서 나는

// !! READ EDIT ABOVE BEFORE RUNNING THIS CODE !!
$ sudo chmod -R 777 /usr/local/lib
$ brew postinstall node

그리고 비올라, npm은 이제 연결되어 있습니다

$ npm -v
3.10.10

특별한

당신이 사용하는 경우 -R 777lib에는 내 추천은 기본 설정으로 중첩 된 파일과 디렉토리를 설정하는 것입니다 :

  • $ find /usr/local/lib -type f -print -exec chmod 644 {} \;
  • $ find /usr/local/lib -type d -print -exec chmod 755 {} \;
  • $ chmod /usr/local/lib 755

3
@Jacksonkr ..... 방금 전체 local / lib 폴더에 chmoding 777을 권장합니까?
sfratini

chmod이 디렉토리는 무엇 이어야합니까?
tim_xyz

1
@tim_xyz drwxr-xr-x는 lib의 기본값입니다. 즉 -R, 폴더를 다시 설정할 때 재귀 기능을 사용하지 마십시오 .
Jacksonkr

감사! sudo chmod -R 777 / usr / local / lib / node_modules는 나를 위해 일했다
Hisagr


8

CentOS 사용자의 경우 다음과 같이 작동합니다.

sudo yum install npm

1
이 접근법의 문제점은 예를 들어 Fedora에서 dnf / yum repos에서 매우 오래된 것입니다
ACV

2
CentOS 7에서는 먼저 EPEL repo를 활성화해야합니다.yum install epel-release; yum install npm
hudolejev

8

sudo 권한으로 npm 패키지를 전체적으로 설치하려면 /usr/bin/npm사용 가능해야합니다. npm다른 디렉토리에 존재 하면 다음과 같은 소프트 링크를 작성하십시오.

sudo ln -s /usr/local/bin/npm /usr/bin/npm

Fedora 25, node8.0.0 및 npm5.0.0에서 작동합니다.


6

macOS에서 이것은 나를 위해 일했습니다.

brew reinstall node

1
죄송합니다 단지와 태그가 문제를 발견 unix하지만 "을 (를) 찾을 수 없습니다 맥 OS NPM 명령"에 대한 상단 Google 검색 결과이기 때문에 여전히 도움이 될 수 있습니다
friederbluemle

5

노드 설치 후 데비안의 경우

curl -k -O -L https://npmjs.org/install.sh    
ln -s /usr/bin/nodejs /usr/bin/node  
sh install.sh

5

nvm과 함께 node / npm을 설치 한 경우, 패키지를 사용하려면 nvm 환경 구성 파일을 실행해야합니다.

일반적으로 ~ / .nvm / nvm.sh에 있습니다.

이를 자동으로 실행하려면 다음을 포함하십시오.

source ~/.nvm/nvm.sh

사용자의 .bash_profile 파일에

그런 다음 해당 사용자와 함께 sudo를 사용하려면 sui가 사용자 환경을 설정하도록 -i 매개 변수를 포함시켜야합니다. 예 :

sudo -iu jenkins npm install grunt-cli

4

단순히 다시 설치하십시오.

RHEL, CentOS 및 Fedora에서

sudo yum remove nodejs npm
sudo dnf remove nodejs npm   [On Fedora 22+ versions]

그때

yum -y install nodejs npm
dnf -y install nodejs npm   [On Fedora 22+ versions]

easy! .. 노드와 npm 모두 매력처럼 작동합니다!


3

나는이 문제를 해결했다.

apt-get install npm2deb

1
이 대답은 무엇입니까? npm2deb는 제 3 자입니다.
Beau Bouchard

1
타사에서 소스로부터 직접 npm보다 손상 될 가능성이 있으므로 완전히 "신뢰할 수있는"것은 아닙니다. 내가 npm2deb에 대해 아무것도 알고 있지만, 기업에서 사용하기를 원한다면에 대해 생각하지 않는다, 그들은 아마 그것을 감사에 대한 엄격한 것
카일 Calica - 세인트

모두에게 분명합니다.
Игорь Демянюк

1

나는 같은 문제가 있었는데, 그 이유는 노드를 설치하는 동안 npm 패키지 관리자가 설치되지 않았기 때문입니다. 이는 다음과 같은 실수로 인한 것입니다. 설치 프로세스에는 "사용자 정의 설정"이라는 단계가 있으며 여기에는 다음 중 하나를 선택할 수있는 옵션이 있습니다. 1) Node.js 런타임 (기본적으로 선택됨). 2) npm 패키지 관리자 3) 온라인 설명서 바로 가기. 4) 경로에 추가하십시오. npm 그대로 진행하면 패키지 관리자가 설치되지 않으므로 오류가 발생합니다.

솔루션 :이 옵션이 표시되면 npm 패키지 관리자를 선택하십시오. 이것은 나를 위해 일했습니다.


1

노드 패키지를 다운로드하고 어딘가에 압축을 풀면 /opt안에 심볼릭 링크를 만들 수 있습니다 /usr/local/bin.

/usr/local/bin/npm -> /opt/node-v4.6.0-linux-x64/bin/npm
/usr/local/bin/node -> /opt/node-v4.6.0-linux-x64/bin/node

1

나는 또한 Homestead에서 같은 문제가 있었고 여러 가지 방법을 시도했습니다. 나는 함께 노력했다

sudo apt-get 설치 nodejs

다음과 같은 오류가 발생합니다.

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
       Depends: node-ansi (>= 0.3.0-2) but it is not going to be installed
       Depends: node-ansi-color-table but it is not going to be installed
       Depends: node-archy but it is not going to be installed
       Depends: node-block-stream but it is not going to be installed
       Depends: node-fstream (>= 0.1.22) but it is not going to be installed
       Depends: node-fstream-ignore but it is not going to be installed
       Depends: node-github-url-from-git but it is not going to be installed
       Depends: node-glob (>= 3.1.21) but it is not going to be installed
       Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
       Depends: node-inherits but it is not going to be installed
       Depends: node-ini (>= 1.1.0) but it is not going to be installed
       Depends: node-lockfile but it is not going to be installed
       Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
       Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
       Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
       Depends: node-gyp (>= 0.10.9) but it is not going to be installed
       Depends: node-nopt (>= 3.0.1) but it is not going to be installed
       Depends: node-npmlog but it is not going to be installed
       Depends: node-once but it is not going to be installed
       Depends: node-osenv but it is not going to be installed
       Depends: node-read but it is not going to be installed
       Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
       Depends: node-request (>= 2.25.0) but it is not going to be installed
       Depends: node-retry but it is not going to be installed
       Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
       Depends: node-semver (>= 2.1.0) but it is not going to be installed
       Depends: node-sha but it is not going to be installed
       Depends: node-slide but it is not going to be installed
       Depends: node-tar (>= 0.1.18) but it is not going to be installed
       Depends: node-underscore but it is not going to be installed
       Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

마지막으로 시도했다

sudo apt-get dist-upgrade

잘 작동했습니다.

root@homestead:/usr/local/bin# npm -v
3.10.10

root@homestead:/usr/local/bin# node -v
v6.13.0


0

visudo 및 편집 "secure_path"를 사용하여 sudo 경로에 npm 바이너리 경로 추가

이제 "sudo npm"이 작동합니다


0

노드를 완전히 제거하십시오.

  brew uninstall --force node

다시 설치하십시오.

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules'

0

경우에 따라 rh-*패키지 를 사용하는 사람에게 유용 할 수 있습니다 .

sudo ln -s /opt/rh/rh-nodejs8/root/usr/bin/npm /usr/local/bin/npm

0

node.js에서 사용 가능한 .tar 파일을 사용하여 node.js를 설치 했으므로 노드 디렉토리의 위치를 ​​다음과 같이 설정해야합니다.

~ / .bashrc

다음 명령을 사용하여 일반 사용자에서 루트로 변경하여 루트

sudo -i

그런 다음 아래와 같이 .bashrc 파일에 압축을 푼 노드의 경로를 추가해야했습니다. 여기에 이미지 설명을 입력하십시오

다음을 사용하여 .bashrc를 참조하십시오.

. ~ / .bashrc

이후에

npm: command not found

나갔다


0

나를 위해 일 전 세계적으로 패키지를 설치할 때 EACCES 권한 오류 해결

권한 오류 가능성을 최소화하기 위해 다른 디렉토리를 사용하도록 npm을 구성 할 수 있습니다. 이 예에서는 홈 디렉토리에 숨겨진 디렉토리를 작성하고 사용합니다.

컴퓨터를 백업하십시오. 명령 행의 홈 디렉토리에 글로벌 설치를위한 디렉토리를 작성하십시오.

 mkdir ~/.npm-global

새 디렉토리 경로를 사용하도록 npm을 구성하십시오.

 npm config set prefix '~/.npm-global'

원하는 텍스트 편집기에서 ~ / .profile 파일을 열거 나 작성하고 다음 행을 추가하십시오.

 export PATH=~/.npm-global/bin:$PATH

명령 행에서 시스템 변수를 업데이트하십시오.

 source ~/.profile

새 구성을 테스트하려면 sudo를 사용하지 않고 패키지를 전체적으로 설치하십시오.

 npm install -g jshint

0

나에게 Homebrew를 사용하여 위에서 언급 한 방법 중 일부는 macOS에서 작동하지 않았습니다. 그래서 Homebrew를 사용하여 노드를 제거하고 https://nodejs.org/en/download/ 에서 노드 패키지를 다운로드하여 설치했습니다. 그것은 매력처럼 작동했습니다.


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