从root用户运行bower,它可能吗?怎么样?

时间:2014-09-04 18:45:12

标签: node.js symfony bower

我有一个本地开发服务器,我测试了很多东西,现在我正在玩bower来管理我的Symfony2项目中的库的依赖项。在安装NodeJS(v0.10.31)和bower(1.3.9)之后,我尝试从控制台运行属于Symfony2 SpBowerBundle的命令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测试,但显然不允许从bundle命令行。现在,将{b}作为root来添加--allow-root或以另一种方式存在的唯一途径是什么?

7 个答案:

答案 0 :(得分:135)

下面的回答是针对symfony框架的包, 但是如果你来自谷歌使用短语“ bower root ”,你有两个选择来解决这个问题:

  1. 将--allow-root添加到命令
  2. 设置允许的全局凉亭配置 以root身份运行凉亭
  3. 选项1:您可以键入以下命令以root身份运行bower:

    bower install --allow-root
    
    设置--allow-root命令参数

    允许

    root

    选项2:正在使用允许root的全局设置,方法是创建文件: 的 /root/.bowerrc 其中有以下配置:

    { "allow_root": true }
    

    如何在 SpBowerBundle symfony包中执行此操作:
    可能你没有在SpBowerBundle配置中将sp_bower.allow_root设置为true

    在bundle config中,默认情况下你设置了这样的东西:

    allow_root: false # optional
    

    但你应该:

    allow_root: true
    

    所以在app / config / config.yml中添加这个bundle config

    sp_bower:
        allow_root: false # optional
    

    捆绑配置参考(所有设置): https://github.com/Spea/SpBowerBundle/blob/master/Resources/doc/configuration_reference.md

答案 1 :(得分:16)

fixed通过更改目录权限来解决类似的问题:

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

答案 2 :(得分:13)

如果您在Docker容器上遇到此问题,只需在Dockerfile中添加以下行:

sigwaitinfo()

答案 3 :(得分:4)

这可能是愚蠢的,但对我来说bower install --allow-root没有用,bower --allow-root install没有用,使用grunt-bower-install版本1.6.0

这是在与root用户一起运行的docker上,也许会节省一些时间:)

答案 4 :(得分:3)

安装swagger-editor时面临类似的问题。 从

更改了package.json中的以下行
SomeClass

"bower-install": "bower install"

答案 5 :(得分:1)

这适用于我(在docker run上添加-u参数)

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

答案 6 :(得分:1)

对于我的情况,它位于Pom.xml中,我在其中添加了如下参数:

pre-order here

如果需要避免这个--allow - root参数,我们可以用root用户编译