web-dev-qa-db-fra.com

Lancer bower à partir de l'utilisateur root, c'est possible? Comment?

J'ai un serveur de développement local où je teste beaucoup de choses, maintenant je joue avec bower pour gérer les dépendances des bibliothèques dans mon projet Symfony2. Après avoir installé NodeJS (v0.10.31) et bower (1.3.9), j’ai essayé d’exécuter la commande sp:bower:install qui appartient à Symfony2 SpBowerBundle à partir de la console en tant que 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

Je sais que l'ajout de --allow-root fonctionne depuis que j'ai testé directement à partir de bash, mais apparemment cela n'est pas autorisé à partir de la ligne de commande bundle. Maintenant, c’est le seul moyen d’exécuter bower en tant que root pour ajouter --allow-root ou existe-t-il d'une autre manière?

52
ReynierPM

la réponse ci-dessous correspond au paquetage de symfony framework , mais si vous venez ici de google , utilisez la phrase " bower root "vous avez deux options pour résoudre ce problème:

  1. ajouter --allow-root à la commande
  2. définir la configuration globale de Bower qui permettra d'exécuter Bower en tant que root

Option 1: vous pouvez exécuter bower en tant que root en tapant:

bower install --allow-root

root est autorisé en définissant --allow-root command paramètre

Option 2: utilise un paramètre global autorisant root, en créant un fichier: /root/.bowerrc qui ont à l'intérieur la configuration suivante:

{ "allow_root": true }

comment faire cela dans SpBowerBundle symfony bundle:
Vous n'avez probablement pas défini sp_bower.allow_root à true dans la configuration de SpBowerBundle

dans la configuration de paquet, vous avez par défaut défini quelque chose comme ceci:

allow_root: false # optional

mais vous devriez avoir:

allow_root: true

donc, dans app/config/config.yml ajouter cette config bundle

sp_bower:
    allow_root: false # optional

référence de configuration de bundle (tous les paramètres): https://github.com/Spea/SpBowerBundle/blob/master/Resources/doc/configuration_reference.md

138
LPodolski

Je corrigé un problème similaire en modifiant les permissions du répertoire:

Sudo chown -R $USER:$GROUP ~/.npm
Sudo chown -R $USER:$GROUP ~/.config
16
samwize

Si vous rencontrez ce problème sur les conteneurs Docker, ajoutez simplement cette ligne dans votre fichier Docker:

RUN echo '{ "allow_root": true }' > /root/.bowerrc
14
Adrian Onu

Cela peut être stupide mais pour moi bower install --allow-root n'a pas fonctionné mais bower --allow-root install _ l'a fait avec la version 1.6.0 de grunt-bower-install

C'était sur un menu fixe fonctionnant avec l'utilisateur root, cela permettra peut-être à quelqu'un de gagner du temps :)

4
keisar

Problème similaire lors de l’installation de swagger-editor. Modification de la ligne suivante dans package.json à partir de

"bower-install": "bower install"

à

"bower-install": "bower install --allow-root"
3
anoop

Cela fonctionne pour moi (paramètre add -u sur l'exécution de docker)

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

2

Pour mon cas, c’est dans Pom.xml où j’ai ajouté comme argument comme ci-dessous:

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

Si besoin d'éviter ce paramètre --allow - root, nous pouvons faire une compilation à partir de l'utilisateur root

2
HariKishore