Невозможно установить с помощью npm, потому что разрешения в openshift

Я пытаюсь заставить npm работать в openshift. Когда я пытаюсь установить пакет с помощью npm install:

$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:

$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

Ответ 1

Попробуйте следующее:

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

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

Ответ 2

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

cd nodejs/

npm install package