2014-02-13 2 views
1

На моем ящике у меня есть двоичные файлы Node и NPM, установленные в/opt/node/bin. И путь добавлен правильно.NodeJS и npm без sudo on CentOS

node -v 

и

npm -v 

отлично работает. Когда я создаю файл и запускаю его с узлом, все работает так, как ожидалось. Однако, когда я запускаю:

npm init 

Программа не может написать package.json, поскольку у нее нет разрешения на запись. Я использую:

sudo npm init 

я получить файл с владельцем и группой 0 0 и поэтому любые обычные пользователи не могут изменять этот файл. Я не хочу, чтобы каждый файл/npm генерировал каждый файл.

Есть ли способ заставить узел/npm работать как пользователь в той же группе, что и мои другие пользователи, и иметь разрешения на запись в одни и те же каталоги?

ответ

4

Вы можете просто chown Ваш /opt/ каталог и будущие звонки npm init будут принадлежать вам. Еще лучше, работайте в своей папке /home и убедитесь, что npm и узел находятся в вашем $PATH. Таким образом, вам не нужно беспокоиться о разрешениях для инициализации нового узла. Тем не менее вам нужно будет использовать sudo для установки пакетов по всему миру. Это плохая практика, в соответствии с сопровождающим Nodejs:

http://howtonode.org/introduction-to-npm

я бы следовать вместе с его установкой там. Как он упоминает, очень опасно дать root доступ к менеджеру пакетов.

+0

Это имеет большой смысл и отлично работает. Большое спасибо. – lewis

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