2014-12-28 3 views
6

usb 장치에서 node.js 응용 프로그램을 빌드 할 때 라스베리 파이에서 npm을 사용하는 데 문제가있는 경우.npm ERR! 오류 : EPERM, chmod

package.json은 다음과 같습니다

{ 
    "name" : "node-todo", 
    "version" : "1.0.0", 
    "description" : "TodoApp", 
    "main" : "server.js", 
    "autho" : "Stephan", 
    "dependencies" : { 
    "express" : "*" 
    } 
} 

결과 설치 NPM 사용 : 내가 NPM 실행 홈/참고 MyUser/Appfolder 모든 것이 잘 작동 /에 설치하려고하면

npm WARN package.json [email protected] No repository field. 
npm WARN package.json [email protected] No README data 
npm http GET https://registry.npmjs.org/express 
npm http 304 https://registry.npmjs.org/express 
npm ERR! Error: EPERM, chmod '/media/ServerHD/testraum/test/node_modules/express/package.json' 
npm ERR! { [Error: EPERM, chmod '/media/ServerHD/testraum/test/node_modules/express/package.json'] 
npm ERR! errno: 50, 
npm ERR! code: 'EPERM', 
npm ERR! path: '/media/ServerHD/testraum/test/node_modules/express/package.json', 
npm ERR! fstream_finish_call: 'chmod', 
npm ERR! fstream_type: 'File', 
npm ERR! fstream_path: '/media/ServerHD/testraum/test/node_modules/express/package.json', 
npm ERR! fstream_class: 'FileWriter', 
npm ERR! fstream_stack: 
npm ERR! [ '/opt/node/lib/node_modules/npm/node_modules/fstream/lib/writer.js:305:19', 
npm ERR!  'Object.oncomplete (fs.js:107:15)' ] } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

npm ERR! System Linux 3.12.28+ 
npm ERR! command "/opt/node/bin/node" "/opt/node/bin/npm" "install" "-no-bin-links" 
npm ERR! cwd /media/ServerHD/testraum/test 
npm ERR! node -v v0.10.28 
npm ERR! npm -v 1.4.9 
npm ERR! path /media/ServerHD/testraum/test/node_modules/express/package.json 
npm ERR! fstream_path /media/ServerHD/testraum/test/node_modules/express/package.json 
npm ERR! fstream_type File 
npm ERR! fstream_class FileWriter 
npm ERR! fstream_finish_call chmod 
npm ERR! code EPERM 
npm ERR! errno 50 
npm ERR! stack Error: EPERM, chmod '/media/ServerHD/testraum/test/node_modules/express/package.json' 
npm ERR! fstream_stack /opt/node/lib/node_modules/npm/node_modules/fstream/lib/writer.js:305:19 
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15) 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /media/ServerHD/testraum/test/npm-debug.log 
npm ERR! not ok code 0 

합니다. ServerHD의 모든 파일은 homefolder가 속한 동일한 사용자가 만듭니다.

  1. NPM이 같은 문제 777 ServerHD의 폴더를 변경하려고
  2. 결과 노 - 빈 - 링크를 설치 한 어떤 효과를 NPM에 대한
  3. 를 NPM 실행 설치하려고 : 내가 사용하지 않는 시도 sudo로

simult 문제가 발생합니다.

누군가가 도움을 줄 수 있기를 바랍니다. 지금까지 감사드립니다.

+0

ServerHD에는 어떤 파티션 유형이 있습니까? NTFS/FAT32? – Salem

+0

Samba를 통해 사용되는 FAT32 파티션입니다. – Stephan

답변

2

npm은 영향을받는 파일에 대한 사용 권한을 수정할 수있는 권한이 없다고 알려줍니다. 이것은 아마도 경쟁 조건이며, 그 중 일부는 [email protected] 코드베이스에서 수정되었습니다. 한 디스크에서 볼 수있는 이유는 디스크가 다른 지연 시간과 읽기 액세스 시간을 가지며 재생 불가능한 동작을 일으키는 것입니다.

npm의 최신 버전 (및 노드)으로 업그레이드해야합니다. 당신이 데비안 기반 배포를 사용하는 경우, 당신은 여기에 설명

curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs nodejs-legacy sudo npm -g install [email protected]

즉, 알려 주시기 바랍니다 문제가 해결되지 않으면 < https://github.com/nodesource/distributions#usage-instructions>

따를 수 있습니다; 더 빨리 응답하려면 npm 추적 프로그램 https://github.com/npm/npm/issues에 문제를 만들고이 문제에 나를 태그 (@smikes)하십시오.

날 그것을 해결 도왔 깨끗한

NPM 캐시 :

+0

팔 장치에서 node/npm을 사용하기 때문에 내가 사용하는 버전이이 아키텍처의 최신 버전이라고 생각합니다. – Stephan

+0

Nodesource는 'armhf' 버전 - ARMv7 이상을 제공합니다. 그래서 당신은 라스베리 파이에 사용할 수 없다고 생각합니다. 그러면'npm'을 업데이트하십시오. 왜냐하면'node' 바이너리의 다른 아키텍처 버전에 대해 충분히 알지 못하기 때문입니다. (npm은 js-only 임) –

6

나는 유사한 오류와 통화를했다.

0

로컬 컴퓨터에 gruntfile 및 package.json을 복사하십시오. 여기서 npm을 설치하십시오. node_modules 결과를 usb 디바이스로 이동하십시오. 나를 위해 일합니다. 가장 쉬운 방법이라고 생각합니다.

+0

일부 노드 모듈이 특정 운영 체제 용으로 빌드됨에 따라 위험합니다. o/s 사이를 오가는 경우 어느 시점에서 prob가 발생할 가능성이 큽니다. –

관련 문제