2014-09-04 34 views
44

我有一個本地開發服務器,在這裏我測試了很多東西,現在我正在使用鮑爾來管理我的Symfony2項目中庫的依賴關係。得到的NodeJS(v0.10.31)安裝和亭子(1.3.9)後,我試圖運行從控制檯屬於Symfony2的SpBowerBundle爲root命令sp:bower:install從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,但它顯然不允許從捆綁命令行。現在,運行涼亭的唯一方法是root添加--allow-root還是以另一種方式存在?

回答

117

下面的答案是symfony框架的捆綁, 但如果使用短語「亭子根」從谷歌來到這裏你有兩個選擇,以解決:

  1. 添加--allow根指揮
  2. 設置全局亭子的配置,讓 運行涼亭爲根

選項1:可以通過鍵入運行亭子作爲根:

bower install --allow-root 

根通過設置--allow根命令參數

選項2允許:使用全局設置,允許根,通過創建文件: /root/.bowerrc 已內部配置如下:

{ "allow_root": true } 

如何做到這一點的SpBowerBundle symfony的包:
可能是你還沒有SpBowerBundle配置

捆綁配置

設置sp_bower.allow_root爲true,默認情況下已經設置是這樣的:

allow_root: false # optional 

但你應該有:

allow_root: true 

所以在app/CO nfig/config.yml添加這種捆綁配置

sp_bower: 
    allow_root: false # optional 

束配置參考(所有設置): https://github.com/Spea/SpBowerBundle/blob/master/Resources/doc/configuration_reference.md

+0

你在哪兒放allow_root:true? – Tyvain 2015-01-12 08:37:42

+1

@Tyvain,我有同樣的問題。我在沒有Symfony的情況下在FreeBSD 10上安裝了Bower。鍵入:cd/Then ee .bowerrc。在那裏添加: { 「allow_root」:true }有關.bowerrc文件的更多信息,請參見http://bower.io/docs/config/。 – blablabla 2015-02-21 14:42:07

+1

'allow_root'值必須在你的'app/config/config.yml'中設置。只需按照答案中的鏈接。 – althaus 2015-03-04 08:19:07

16

fixed通過更改目錄權限一個類似的問題:

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

面臨類似安裝swagger-editor時出現問題。 更改包裝中的以下行。從

"bower-install": "bower install" 

JSON來

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

如果您遇到的Docker容器這個問題只需要添加在你的Dockerfile這一行:

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

在哪裏我必須添加在碼頭文件? – 2017-03-27 14:21:46

3

這可能是愚蠢的,但對我來說bower install --allow-root做不行,但bower --allow-root install沒有,使用grunt-bower-install版本1.6.0

這是在用root用戶運行的泊塢窗,也許會節約一些時間:)

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 - root參數我們可以做一個編出root用戶的