2014-12-28 8 views
6

Если у вас возникли проблемы с использованием npm на моем малине pi при попытке создать приложение node.js на устройстве USB.npm ERR! Ошибка: EPERM, chmod

package.json выглядит следующим образом:

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

Использование НПМ установить результаты:

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 

Если я пытаюсь запустить НПМ установить в/дома/MyUser/Appfolder все работает отлично. Все файлы на ServerHD созданы тем же пользователем, к которому принадлежит домашняя папка. Я пытался не используя:

  1. НОЙ установки -ны-бен-ссылки, что приводит к тем же проблемам
  2. пытается изменить папку на ServerHD 777 имеет никаких эффектов для НОГО
  3. пытаюсь запустить НПЙ установить с sudo

Использование экспресс-генератора вызывает проблемы с симулятором.

Надеюсь, кто-то может помочь. Спасибо, пока.

+0

Какой тип раздела находится в ServerHD? NTFS/FAT32? – Salem

+0

Это раздел Fat32, также используемый через Samba. – Stephan

ответ

2

npm Сообщает вам, что вам не хватает прав на изменение разрешений на затронутый файл. Вероятно, это состояние гонки, некоторые из которых были зафиксированы в кодовой базе [email protected]. Я угадаю, что причина, по которой вы видите это на одном диске, а не в другом, заключается в том, что диски имеют разное время ожидания и чтения, что приводит к невоспроизводимому поведению.

Вы должны обновить до текущей версии npm (и узел, если на то пошло). Если вы используете распределение в Debian основе, вы можете следовать инструкциям здесь < https://github.com/nodesource/distributions#usage-instructions>

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

Если это не исправить вашу проблему, пожалуйста, дайте мне знать; для более быстрого ответа создайте проблему в трекере npmhttps://github.com/npm/npm/issues и пометьте меня (@smikes) в проблеме.

+0

Я использую узел/npm на ручном устройстве, поэтому я думаю, что версия, которую я использую, является самой новой для этой архитектуры. – Stephan

+0

Nodesource предлагает версию 'armhf' - ARMv7 и выше .. поэтому я думаю, что вы не можете использовать ее на малине pi. Тогда, пожалуйста, просто обновите свой 'npm', так как я недостаточно знаю о версиях с разными архитектурами двоичного файла' node'. (npm - только js) –

6

Я имел подобную ошибку и призвание: кэш

НОГО чистый

помог мне решить.

0

копия gruntfile и package.json на локальную машину. Установите npm здесь. Переместите результат node_modules на USB-устройство. Работает на меня. Самый простой способ, я думаю.

+0

Это опасно, поскольку некоторые узловые модули построены для этой конкретной операционной системы - если вы собираетесь между o/s, скорее всего, будут проблемы в какой-то момент. –

Смежные вопросы