programing

루트 사용자로부터 bower를 실행하십시오. 가능합니까?

copyandpastes 2021. 1. 16. 11:01
반응형

루트 사용자로부터 bower를 실행하십시오. 가능합니까? 어떻게?


나는 많은 것을 테스트하는 로컬 개발 서버를 가지고 있으며, 이제 Symfony2 프로젝트에서 라이브러리의 종속성을 관리하기 위해 bower를 사용하고 있습니다. NodeJS (v0.10.31)와 bower (1.3.9)를 설치 한 후 sp:bower:install콘솔에서 Symfony2 SpBowerBundle에 속하는 명령을 다음과 같이 실행 해 보았습니다 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-rootbash에서 직접 테스트했기 때문에 추가 작업이 수행되었지만 번들 명령 줄에서는 허용되지 않는 것 같습니다. 자, 정자 root를 추가 하는 유일한 --allow-root방법입니까 아니면 다른 방법으로 존재합니까?


아래 답변은 심포니 프레임 워크의 번들에 대한 것이지만 " bower root " 라는 문구를 사용하여 Google에서 여기에 온 경우 이를 해결할 수있는 두 가지 옵션이 있습니다.

  1. 명령에 --allow-root 추가
  2. bower를 루트로 실행할 수있는 전역 bower 구성 설정

옵션 1 : 다음을 입력하여 bower를 루트로 실행할 수 있습니다.

bower install --allow-root

--allow-root 명령 매개 변수를 설정하여 루트를 허용합니다.

옵션 2 : 다음 구성이있는 /root/.bowerrc 파일을 생성하여 루트를 허용하는 전역 설정을 사용 합니다.

{ "allow_root": true }

SpBowerBundle 심포니 번들 에서이 작업을 수행하는 방법 :
아마도 SpBowerBundle 구성에서 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


나는 고정 디렉토리 권한을 변경하여 비슷한 문제를 :

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

Docker 컨테이너에서이 문제가 발생하는 경우 Dockerfile에 다음 줄을 추가하십시오.

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

이것은 어리석은 bower install --allow-root일이지만 에게는 작동 bower --allow-root install하지 않았지만 grunt-bower-install 버전 1.6.0을 사용하여 작동했습니다.

이것은 루트 사용자로 실행되는 도커에 있었으며 아마도 누군가 시간을 절약 할 것입니다 :)


swagger-editor를 설치할 때 비슷한 문제가 발생했습니다. package.json의 다음 줄을 다음에서 변경했습니다.

"bower-install": "bower install"

...에

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

이것은 나를 위해 작동합니다 (도커 실행시 -u 매개 변수 추가).

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


내 경우에는 아래와 같이 인수로 추가 한 Pom.xml에 있습니다.

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

이 --allow--root 매개 변수를 피해야하는 경우 루트 사용자로부터 컴파일을 수행 할 수 있습니다.

참조 URL : https://stackoverflow.com/questions/25672924/run-bower-from-root-user-its-possible-how

반응형