我有一个本地开发服务器,我测试了很多东西,现在我正在玩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
或以另一种方式存在的唯一途径是什么?
答案 0 :(得分:135)
下面的回答是针对symfony框架的包, 但是如果你来自谷歌使用短语“ bower root ”,你有两个选择来解决这个问题:
选项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用户编译