Запустить bower от пользователя root, это возможно? Как?

44

У меня есть локальный сервер разработки, где я тестирую много вещей, теперь я играю с 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 или он существует другим способом?

  • 0
    echo '{ "allow_root": true }' > /root/.bowerrc
Теги:
bower

7 ответов

115
Лучший ответ

ниже ответ для комплекта рамки symfony, , но если вы придете сюда из Google, используя фразу " bower root", у вас есть два варианта решения этой проблемы:

  • добавить --allow-root для команды
  • установить глобальную конфигурацию bower, которая позволит беговая беседка с корнем

Вариант 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

  • 0
    куда вы положили allow_root: true ??
  • 1
    @ Тайван, у меня был такой же вопрос. Я установил Bower на FreeBSD 10 без Symfony. Тип: cd / Тогда ее .bowerrc. Добавьте туда: {"allow_root": true} См. Bower.io/docs/config для получения дополнительной информации о файле .bowerrc.
Показать ещё 2 комментария
15

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

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

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

RUN echo '{ "allow_root": true }' > /root/.bowerrc
  • 0
    где я должен добавить в файл Docker?
3

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

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

2

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

"bower-install": "bower install"

к

"bower-install": "bower install --allow-root"
0

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

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

Если вам нужно избежать этого параметра --allow - root, мы можем выполнить компиляцию из пользователя root

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню