web-dev-qa-db-ja.com

rootユーザーからbowerを実行します、可能ですか?どうやって?

私は多くのことをテストするローカル開発サーバーを持っていますが、今はSymfony2プロジェクトでライブラリの依存関係を管理するためにbowerで遊んでいます。 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から直接テストしたため機能することを知っていますが、バンドルコマンドラインからは許可されていないようです。今、rootとしてbowerを実行して--allow-rootを追加する唯一の方法はありますか、それとも別の方法で存在しますか?

52
ReynierPM

以下の答えはsymfonyフレームワークのバンドル用ですが、ここからgoogleから来た場合はフレーズ「bower root」には、それを解決する2つのオプションがあります。

  1. コマンドに--allow-rootを追加
  2. rootとしてbowerを実行できるようにするグローバルbower configを設定します

オプション1:次のように入力して、rootとしてbowerを実行できます。

bower install --allow-root

ルートは--allow-rootコマンドパラメーターを設定することで許可されます

オプション2:は、ファイルを作成することにより、rootを許可するグローバル設定を使用しています:/ root/.bowerrc次の内部構成があります:

{ "allow_root": true }

SpBowerBundlesymfonyバンドルでこれを行う方法:
SpBowerBundle configでsp_bower.allow_rootをtrueに設定していない可能性があります

バンドル構成では、デフォルトで次のように設定されています:

allow_root: false # optional

ただし、次のものが必要です。

allow_root: true

したがって、app/config/config.ymlにこのバンドル構成を追加します

sp_bower:
    allow_root: false # optional

バンドル構成リファレンス(すべての設定): https://github.com/Spea/SpBowerBundle/blob/master/Resources/doc/configuration_reference.md

138
LPodolski

I 修正済み ディレクトリ権限を変更することによる同様の問題:

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

Dockerコンテナでこの問題が発生している場合は、Dockerfileに次の行を追加してください。

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

これはばかげているかもしれませんが、私にとってbower install --allow-rootは機能しませんでしたが、bower --allow-root installは機能しました。grunt-bower-installバージョン1.6.0を使用して

これは、rootユーザーで実行されているdockerで行われたため、おそらく誰かの時間を節約できます:)

4
keisar

Swagger-editorのインストール時に同様の問題に直面しました。 package.jsonの次の行を

"bower-install": "bower install"

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

これは私のために働く(docker runに-uパラメータを追加)

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

2

私の場合、以下のように引数として追加したのはPom.xmlです。

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

この--allow--rootパラメーターを回避する必要がある場合は、rootユーザーからコンパイルできます

2
HariKishore