2014-09-04 1 views
44

Ho un server di sviluppo locale dove collaudo un sacco di cose, ora sto giocando con bower per gestire le dipendenze delle librerie nel mio progetto Symfony2. Dopo aver ottenuto NodeJS (v0.10.31) installato e pergolato (1.3.9), ho cercato di eseguire il comando sp:bower:install che appartiene a Symfony2 SpBowerBundle da console come root:Esegui bower dall'utente root, è possibile? Come?

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 

So che l'aggiunta di --allow-root opere da quando ho provato direttamente da bash ma apparentemente non è permesso dalla riga di comando del bundle. Ora, è l'unico modo per eseguire bower come root per aggiungere --allow-root o esiste in un altro modo?

risposta

117

sotto risposta è per il fascio di di framework symfony, ma se venite qui da Google utilizzando frase "pergolato radice" Ci sono due opzioni per risolvere questo:

  1. add --allow-root comandare
  2. set config globale gazebo che permetterà gazebo esecuzione come root

Opzione 1: è possibile eseguire pergolato come root digitando:

bower install --allow-root 

radice è consentito impostando il parametro di comando --allow-root

Opzione 2: sta usando un'impostazione globale che permette di radice, con la creazione di file: /root/.bowerrc che sono all'interno seguente configurazione:

{ "allow_root": true } 

come fare questo in SpBowerBundle symfony bundle:
probabilmente non è stato impostato a true sp_bower.allow_root in SpBowerBundle config

in config fascio, per impostazione predefinita è stata impostata qualcosa di simile:

allow_root: false # optional 

ma si dovrebbe avere:

allow_root: true 

così in app/co nfig/config.yml aggiungere questo pacchetto config

sp_bower: 
    allow_root: false # optional 

riferimento fascio di configurazione (tutte le impostazioni): https://github.com/Spea/SpBowerBundle/blob/master/Resources/doc/configuration_reference.md

+0

dove si inserisce allow_root: true ?? – Tyvain

+1

@Tyvain, ho avuto la stessa domanda. Ho installato Bower su FreeBSD 10 senza Symfony. Digitare: cd/Then ee .bowerrc. Aggiungi: { "allow_root": true } Vedi http://bower.io/docs/config/ per ulteriori informazioni sul file .bowerrc. – blablabla

+1

Il valore 'allow_root' deve essere impostato in' app/config/config.yml'. Basta seguire il link nella risposta. – althaus

16

ho fixed un problema simile, cambiando le autorizzazioni sulla directory:

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

Di fronte simile problema durante l'installazione di swagger-editor. Modificata la seguente riga nel pacchetto.JSON da

"bower-install": "bower install" 

a

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

Se si è verificato questo problema in contenitori Docker è sufficiente aggiungere questa linea nel vostro Dockerfile:

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

dove devo aggiungere nel file docker? –

3

Questo potrebbe essere stupido, ma per me bower install --allow-root ha fatto non funziona, ma lo ha fatto bower --allow-root install, usando grunt-bower-install versione 1.6.0

Questo era su una finestra mobile in esecuzione con l'utente root, forse farà risparmiare qualcuno qualche tempo :)

0

Questo funziona per me (aggiungere il parametro -u sulla pista finestra mobile)

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

0

per il mio caso è in pom.xml in cui ho aggiunto come argomento, come di seguito:

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

Se necessità di evitare questo --allow - parametro root possiamo fare una compilazione di utente root