2014-10-30 2 views
11

Я пытаюсь заставить npm работать в openshift. При попытке установить пакет с помощью npm install:Невозможно установить с помощью npm, потому что разрешения в openshift

$npm install bower 
npm ERR! Error: EACCES, mkdir '/var/lib/openshift/5425aaa04******0094/.npm' 
npm ERR! { [Error: EACCES, mkdir '/var/lib/openshift/5425aaa04******0094/.npm'] 
npm ERR! errno: 3, 
npm ERR! code: 'EACCES', 
npm ERR! path: '/var/lib/openshift/5425aaa04******0094/.npm' } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

npm ERR! System Linux 2.6.32-431.29.2.el6.x86_64 
npm ERR! command "node" "/usr/bin/npm" "install" "bower" 
npm ERR! cwd /var/lib/openshift/5425aaa04******0094/app-root/runtime/dependencies 
npm ERR! node -v v0.6.20 
npm ERR! npm -v 1.1.37 
npm ERR! path /var/lib/openshift/5425aaa04******0094/.npm 
npm ERR! code EACCES 
npm ERR! message EACCES, mkdir '/var/lib/openshift/5425aaa04******0094/.npm' 
npm ERR! errno 3 
npm ERR! 3 errno 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /var/lib/openshift/5425aaa04******0094/app-root/runtime/dependencies/npm-debug.log 
npm ERR! not ok code undefined 
npm ERR! not ok code 3 

Это потому, что у меня нет разрешения на запись в моем домашнем каталоге (/var/lib/openshift/5425aaa04******0094/)

Это как НАЯ конфигурация выглядит следующим образом:

$npm config list 
; cli configs 

; node install prefix = undefined 
; node bin location = /usr/bin/node 
; cwd = /var/lib/openshift/5425aaa04******0094/app-root/runtime/dependencies 
; HOME = /var/lib/openshift/5425aaa04******0094/ 
; 'npm config ls -l' to show all defaults. 

Так что я попытался установить настройки префикса:

$npm config set prefix /var/lib/openshift/5425aaa04******0094/app-root/runtime/dependencies/ 
npm ERR! Error: EACCES, open '/var/lib/openshift/5425aaa04******0094/.npmrc' 
npm ERR! { [Error: EACCES, open '/var/lib/openshift/5425aaa04******0094/.npmrc'] 
npm ERR! errno: 3, 
npm ERR! code: 'EACCES', 
npm ERR! path: '/var/lib/openshift/5425aaa04******0094/.npmrc' } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

npm ERR! System Linux 2.6.32-431.29.2.el6.x86_64 
npm ERR! command "node" "/usr/bin/npm" "config" "set" "prefix" "/var/lib/openshift/5425aaa04******0094/app-root/runtime/dependencies/" 
npm ERR! cwd /var/lib/openshift/5425aaa04******0094/app-root/runtime/dependencies 
npm ERR! node -v v0.6.20 
npm ERR! npm -v 1.1.37 
npm ERR! path /var/lib/openshift/5425aaa04******0094/.npmrc 
npm ERR! code EACCES 
npm ERR! message EACCES, open '/var/lib/openshift/5425aaa04******0094/.npmrc' 
npm ERR! errno 3 
npm ERR! 3 errno 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /var/lib/openshift/5425aaa04******0094/app-root/runtime/dependencies/npm-debug.log 
npm ERR! not ok code undefined 
npm ERR! not ok code 3 

Поскольку у меня нет прав на запись в моем домашнем каталоге, и npm пытается отредактировать файл ~/.npmrc, я не могу изменить настройки.

Любые идеи о том, как я могу это исправить? Все, что я хочу сделать, это возможность установки беседки.

Спасибо!

EDIT: Я не имею права SUDO в OpenShift

+0

точно у меня такая же проблема, я оценки всей платформы и настройки я Дженкинс на бесплатном аккаунте. и да, тогда установка локальных пакетов npm невозможна !!! Другая проблема заключается в том, что версия моего узла 0.6.x, которая ОЧЕНЬ старая! и я не могу его обновить (или я не нашел решение, как это сделать). – kamiseq

+0

У вас нет прав на запись в вашем домашнем каталоге? –

+0

Любые ответы нет? –

ответ

11

Попробуйте это:

OLDHOME=$HOME 
HOME=`pwd` 
npm install package 
HOME=$OLDHOME 

Этот маленький трюк работает для меня.

+0

Куда вы это положили? – leontalbot

2

это работало для меня

cd nodejs/ 

npm install package 
+0

Это действительно сработало! Глупо, что я не думал об этом. – Zaxter

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