"cannot run in wd"로 인해 Npm 설치 실패
노드 0.8.14가 이미 설치된 새 Ubuntu 12.04 인스턴스에 노드 환경을 설정하려고 하는데 실행하려고 할 때 문제가 발생했습니다.npm install
그래서 제가 노력할 때npm install
루트 또는 관리자로 실행해야 한다고 표시됩니다.
Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script'
npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/usr/local/lib/node_modules/coffee-script',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/usr/local/lib/node_modules/coffee-script',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ 'DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR! 'Object.oncomplete (fs.js:297:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
그러나 sudo로 실행하려고 하면 다음과 같이 표시됩니다.
npm WARN cannot run in wd PackNodeDev@0.0.1-166 npm install -g coffee-script node-gyp (wd=/home/ubuntu/PackNode)
내 소포 안에.json, 여기에는 다음 스크립트가 포함되어 있습니다.
"scripts": {
"preinstall": "npm install -g coffee-script node-gyp",
"start": "node server.js",
"test": "mocha --require should --compilers coffee:coffee-script --colors"
},
나머지 개발 종속성은 제 자신의 컴퓨터(Mac)에 모두 설치했기 때문에 유효합니다. 왜 이런 일이 일어나는지 아는 사람 있나요?
설명서에는 다음과 같은 내용이 나와 있습니다(여기서도 참조).
npm이 루트 권한으로 호출된 경우 uid가 다음에 의해 지정된 사용자 계정 또는 uid로 변경됩니다.
user
구성, 기본값:nobody
설정unsafe-perm
루트 권한으로 스크립트를 실행하는 플래그입니다.
옵션은 다음과 같습니다.
달려.
npm install
와 함께--unsafe-perm
플래그:[sudo] npm install --unsafe-perm
추가합니다.
unsafe-perm
당신의 깃발package.json
:"config": { "unsafe-perm":true }
사용 안 함
preinstall
글로벌 모듈을 설치하고 별도로 설치한 다음 일반 모듈을 실행하는 스크립트npm install
루트 권한 없음:sudo npm install -g coffee-script node-gyp npm install
관련:
제게 효과가 있었던 유일한 것은 추가하는 것이었습니다..npmrc
다음을 포함하는 파일:
unsafe-perm = true
동일한 구성 추가package.json
아무 효과도 없었습니다.
root 사용자를 사용하여 CentOs를 실행하는 개인 서버에서 nodejs 앱을 게시하려고 할 때 동일한 문제가 발생했습니다.패키지의 "/node_modules/bower/bin/bower install"에서도 동일한 오류가 발생합니다.json 파일에서 유일한 해결책은 오류를 방지하기 위해 두 가지 옵션을 모두 사용하는 것이었습니다.
1: bower install 명령에 --allow-root 옵션 사용
"postinstall": "./node_modules/bower/bin/bower --allow-root install"
2: npm install 명령어에 --syslog-dll 옵션 사용
npm install --unsafe-perm
도커용 ~!
@Alexander Mills는 다음과 같이 대답했습니다.
RUN npm set unsafe-perm true
여기서 저는 이 질문을 처음 한 이후로 노드에 대해 더 많은 것을 배웠습니다.드미트리의 답변이 매우 도움이 되었지만, 궁극적으로 제게 도움이 된 것은 올바른 권한을 가진 노드를 설치하는 것입니다.
패키지 관리자를 사용하여 노드를 설치하지 말고 직접 컴파일하여 일반적인 권한을 가진 로컬 디렉터리에 있도록 하는 것이 좋습니다.
이 문서에서는 이러한 방법에 대한 매우 명확한 단계별 지침을 제공합니다.
소유권을 변경하여 이 문제를 해결했습니다./usr/local
그리고.~/Users/user-name
예:
sudo chown -R my_name /usr/local
가 이은제가모것을할수다해니있주습었게든것다thing니▁without▁every▁me▁this 없이 모든 것을 할 수 해주었습니다.sudo
언급URL : https://stackoverflow.com/questions/18136746/npm-install-failed-with-cannot-run-in-wd
'programing' 카테고리의 다른 글
Python: 고유한 파일 이름을 만드는 방법은 무엇입니까? (0) | 2023.08.22 |
---|---|
줄을 어떻게 매야 합니까?에서 사용자 지정 형식으로 TimeSpan 개체를 포맷합니다.NET? (0) | 2023.08.22 |
on과 live 또는 bind의 차이점은 무엇입니까? (0) | 2023.08.22 |
Microsoft Powershell 내에서 'mvn -D' 인수를 사용하여 Maven을 실행할 수 없지만 명령 프롬프트에서 작동합니다. (0) | 2023.08.22 |
SQL 저장 프로시저에 목록 전달 <> (0) | 2023.08.22 |