У меня есть локальный сервер разработки, где я тестирую много вещей, теперь я играю с bower для управления зависимостями библиотек в моем проекте Symfony2. После установки NodeJS (v0.10.31) и bower (1.3.9) я попытался запустить команду sp:bower:install
, которая принадлежит Symfony2 SpBowerBundle с консоли, как 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
или он существует другим способом?
ниже ответ для комплекта рамки symfony, , но если вы придете сюда из Google, используя фразу " bower root", у вас есть два варианта решения этой проблемы:
Вариант 1: вы можете запустить bower как root, набрав:
bower install --allow-root
root допускается установкой параметра командной строки -allow-root
Вариант 2: использует глобальную настройку, которая позволяет root, создавая файл: /root/.bowerrc которые имеют следующую конфигурацию:
{ "allow_root": true }
как это сделать в SpBowerBundle комплекте symfony:
возможно, вы не установили sp_bower.allow_root в true в конфигурации SpBowerBundle
в конфигурации пучка, по умолчанию вы установили что-то вроде этого:
allow_root: false # optional
но вы должны иметь:
allow_root: true
поэтому в app/config/config.yml добавьте конфигурацию этого пакета
sp_bower:
allow_root: false # optional
ссылка на конфигурацию связки (все настройки): https://github.com/Spea/SpBowerBundle/blob/master/Resources/doc/configuration_reference.md
I исправил аналогичную проблему, изменив разрешения каталога:
sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
Если вы столкнулись с этой проблемой в контейнерах Docker, просто добавьте эту строку в свой файл Docker:
RUN echo '{ "allow_root": true }' > /root/.bowerrc
Это может быть глупо, но для меня bower install --allow-root
не работает, но bower --allow-root install
сделал, используя grunt-bower-install version 1.6.0
Это было на докере, запущенном с пользователем root, возможно, кто-то сэкономит время:)
Столкнувшись с подобной проблемой при установке редактора swagger. Изменена следующая строка в package.json из
"bower-install": "bower install"
к
"bower-install": "bower install --allow-root"
Для моего случая это находится в Pom.xml, где я добавил в качестве аргумента, как показано ниже:
<executable>bower</executable>
<arguments>
<argument>install</argument>
<argument>--allow-root</argument>
</arguments>
Если вам нужно избежать этого параметра --allow - root, мы можем выполнить компиляцию из пользователя root
Это работает для меня (добавить параметр -u при запуске docker)
bash
docker run -it -v ${PWD}:/www -w /www -u node node ./node_modules/bower/bin/bower install
echo '{ "allow_root": true }' > /root/.bowerrc