npm을 사용하는 동안“이러한 파일이나 디렉토리가 없습니다”오류


34

여기에 제공된 지침을 사용하여 노드와 npm을 설치 했습니다.

노드를 성공적으로 사용할 수있었습니다. 그러나 "Formidable"노드 모듈을 설치하려고하면 다음 오류가 발생합니다.

$npm install formidable
bash: /usr/local/bin/npm: /usr/local/bin/node: bad interpreter: No such file or directory

내가 할 때 which npm다음과 같은 결과가 나옵니다.

$which npm
/usr/local/bin/npm

npm의 문제점에 대한 단서가 없습니다.이 문제를 해결하는 방법에 대한 아이디어가 있습니까?


Ask Ubuntu에 오신 것을 환영합니다! 에 노드가 설치되어 /usr/local/bin/있습니다. 링크 된 지침에서 사용한 패키지 는이 작업을 수행하지 않습니다. 소스에서 다른 노드를 설치했다고 생각합니다. 전체 이야기를 들려주세요.
gertvdijk 2013

@gertvdijk 글쎄, 처음에 노드 0.8.14가 설치되었습니다. 이것을 0.8.18로 업그레이드하고 싶었습니다. 나는 달렸다. $sudo apt-get remove --purge nodejs npm그러나 이것은 효과가 없었다. node --version0.8.18을 설치 한 후에도 여전히 0.8.14를 나타 냈습니다. 그럼, 내가 한 일은 내가 지금 찾을 수없는 게시물을 따라했다 - 기본적으로 지시 한 which node다음에 rm -r /usr/local/bin/...그 디렉토리에 기본적으로 일부 노드 관련 파일 -. 이제이 후 노드를 다시 설치했으며 업데이트 된 버전이었습니다. 잘 작동하지만 npm은 그렇지 않습니다.
user109187

예, 소스에서 설치할 때 발생하는 현상입니다. 패키지 관리와 사용자로서 혼동됩니다. 수행중인 작업을 모르면 소프트웨어를 패키지로만 설치하십시오. 이 이전 버전을 설치하는 데 사용한 스크립트와 함께 설치 제거 지시 사항을 사용하여 올바르게 설치 제거하십시오. 그리고 제발 편집 귀하의 질문은 추가 정보를 제공합니다. 이것은 토론 포럼이 아닌 Q & A 사이트입니다. :)
gertvdijk

- @gertvdijk 나는 수동으로 파일을 제거하도록 지시 후 발견 stackoverflow.com/a/5917184/1907800을 . 여기서 경로는 / usr / bin / node
user109187

답변:


51

@gertvdijk 힌트를 받아 스크립트를 사용하여 NPM을 제거했습니다.

rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*

( 여기 에서 찾을 수 있습니다 )

위의 작업을 수행 한 후에도 다른 오류가 발생했습니다.

$ npm install formidable  
bash: /usr/local/bin/npm: No such file or directory

그래서 hash -r터미널에서 ( NPM은 업그레이드 후 실행되지 않음 아래에있는 지침에 따라 ) 실행 했으며 voila는 작동했습니다. NPM이 작동합니다!


1
여기에 유용 것은 발견 된 hash단순히 다른 노드 / 고궁 박물원에 포인트로 사용할 수있는, (내가 노드의 여러 버전으로 작업하려면?)
user309383

아름다운 손님.
LM_Fielding 2016 년

4
해시 -r 나에게 저장
diogo.abdalla

무엇을합니까 hash!?
Chanchan Kim

11

우분투와 일부 리눅스 배포판은 노드의 인터프리터를 설치 /usr/bin/nodejs하지 않고 로 설치합니다 /usr/local/bin/node.

당신은 설치이 문제를 해결할 수 nodejs-legacy에서 심볼릭 링크를 생성 패키지 /usr/bin/nodejs로를 /usr/bin/node.

해결책:

sudo apt-get install nodejs-legacy

참조 : nodejs-legacy 패키지


1
nodejs-legacy더 이상 존재하지 않는 것 같습니다 .
Martín De la Fuente

2

얼마 전에 소스에서 다른 노드 버전을 설치 한 것으로 보입니다. 이것은 /usr/local/bin현재 설치된 경로로 표시됩니다.

  1. 소스에서 설치 한 것을 제거하십시오. 그렇게하는 방법에 대해서는 소스와 함께 제공된 지침을 참조하십시오. 시스템의 패키지 관리에서 작동하지 않는 소프트웨어 스크립트를 제거하는 방법은 없습니다.
  2. 질문에 링크 된 지침에 나열된 패키지를 설치하십시오.
  3. which npm이제 /usr/bin설치 경로로 나열 되어 있는지 확인하십시오 .

일반적으로 소스에서 패키지를 설치할 필요는 없습니다. 그리고 그렇게한다면, 여기에서 패키지 관리를 오버라이드 할 때 발생하는 결과에주의하십시오.

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