2014-09-04 10 views
44

У меня есть локальный сервер разработки, где я много тестирую, теперь я играю с bower для управления зависимостями библиотек в моем проекте Symfony2. После получения NodeJS (v0.10.31) установлена ​​и беседки (1.3.9), я попытался запустить команду sp:bower:install, которая принадлежит Symfony2 SpBowerBundle из консоли, как root:Запустить bower от пользователя root, возможно? Как?

Symfony > sp:bower:install 
Installing bower dependencies for "TemplateBundle" into "/var/www/html/tanane/src/Tanane/TemplateBundle/Resources/config/bower/../../public/components" 

bower ESUDO   Cannot be run with sudo 

Additional error details: 
Since bower is a user command, there is no need to execute it with superuser permissions. 
If you're having permission errors when using bower without sudo, please spend a few minutes learning more about how your system should work and make any necessary repairs. 

http://www.joyent.com/blog/installing-node-and-npm 
https://gist.github.com/isaacs/579814 

You can however run a command with sudo using --allow-root option 

Я знаю, что добавление --allow-root работы, поскольку я тестировал непосредственно из bash, но, по-видимому, это не допускается из командной строки пакета. Теперь, единственный способ запустить bower как root, чтобы добавить --allow-root, или он существует другим способом?

ответ

117

ниже ответа для пучка Symfony фреймворки, , но если вы приехали сюда из Google используя фразу «станового корня» у вас есть два варианта решения, что:

  1. добавить --allow-корень командовать
  2. установить глобальную Бауэр конфигурации, что позволит работают беседку как корень

Вариант 1: вы можете запустить беседку как корень, набрав:

bower install --allow-root 

корень допускается установка параметра командной --allow-Коренной

Вариант 2: использует глобальные настройки, что позволяет корень, путем создания файла: /root/.bowerrc , которые в следующей конфигурации:

{ "allow_root": true } 

, как сделать это в SpBowerBundle симфони пачки:
вероятно, вы не установили sp_bower.allow_root истину в SpBowerBundle конфигурации

в расслоении конфигурации по умолчанию вы установили что-то вроде этого:

allow_root: false # optional 

но вы должны иметь:

allow_root: true 

поэтому в приложении/со nfig/config.yml добавить этот пакет CONFIG

sp_bower: 
    allow_root: false # optional 

расслоение конфигурация ссылка (все параметры): https://github.com/Spea/SpBowerBundle/blob/master/Resources/doc/configuration_reference.md

+0

где вы положили allow_root: true ?? – Tyvain

+1

@Tyvain, у меня был тот же вопрос. Я установил Bower на FreeBSD 10 без Symfony. Тип: cd/Then ee .bowerrc. Добавить там: { "allow_root": true } См. Http://bower.io/docs/config/ для получения дополнительной информации о файле .bowerrc. – blablabla

+1

Значение 'allow_root' должно быть установлено в' app/config/config.yml'. Просто следуйте по ссылке в ответе. – althaus

16

I fixed аналогичная проблема, изменив права доступа к директориям:

sudo chown -R $USER:$GROUP ~/.npm 
sudo chown -R $USER:$GROUP ~/.config 
2

Столкнувшись похожа проблема при установке редактора swagger. Изменена следующая строка в пакете.JSON из

"bower-install": "bower install" 

в

"bower-install": "bower install --allow-root" 
8

Если вы столкнулись с этой проблемой на контейнерах Docker просто добавьте эту строку в Dockerfile:

RUN echo '{ "allow_root": true }' > /root/.bowerrc 
+0

где я должен добавить файл докера? –

3

Это может быть глупо, но для меня bower install --allow-root сделали нет работа но bower --allow-root install сделал, используя grunt-bower-install версия 1.6.0

Это было грузчик работает с правами суперпользователя, возможно, сэкономит кому-то какое-то время :)

0

Это работает для меня (добавить -u параметра в Докер перспективе)

bash docker run -it -v ${PWD}:/www -w /www -u node node ./node_modules/bower/bin/bower install

0

для моего случая он находится в pom.xml, где я добавил в качестве аргумента, как показано ниже:

<executable>bower</executable> 
<arguments> 
<argument>install</argument> 
    <argument>--allow-root</argument> 
</arguments> 

Если необходимо, чтобы избежать этого --allow - корневой параметр, который мы можем сделать компилировать из корневого пользователя

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