루트로 Composer 전역 설치 경로 찾기

루트로 Composer 전역 설치 경로 찾기

php composer다음을 사용하여 전 세계적으로 일부 PHP 패키지를 설치했습니다.

sudo -u me composer global require "phpmd/phpmd"

전역적으로 설치된 PHP 패키지의 경로를 찾고 싶습니다. which phpmd사용자로 실행 하면 me전체 경로를 얻습니다.

/home/me/.composer/vendor/bin/phpcs

그러나 명령을 실행하려고 하면 sudo아무것도 얻지 못합니다. Composer가 전역적으로 내 사용자에게 추가되었고 sudo에는 존재하지 않기 me때문 이라고 생각합니다 .PATHPATH

대신 나는 노력했다

 path="$(sudo -u me which phpcs)"

하지만 이것도 실패했다. 그러나 Composer를 통해 설치되지 않은 모든 프로그램에서는 성공합니다. 작곡가를 통해 전역적으로 설치된 PHP 패키지를 찾는 방법은 무엇입니까 sudo?

내 방식

/home/me/.composer/vendor/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

sudo(su의) 경로

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

답변1

경로 차이에서 알 수 있듯이 문제는 내 경로에 /home/me/.composer/vendor/bin.Sudo가 사용자 환경을 상속하지 않는다는 것입니다.

수동으로 가져와야 합니다. 그러나 루트가 해당 경로에서 특정 사용자의 파일을 보기를 원하는 이유는 명확하지 않습니다.

find파일을 찾으려면 다음과 같은 명령을 사용할 수 있습니다 find /home -name FileName.

답변2

Julie의 조언과 다른 답변 덕분에 나는 알아냈습니다.

 path="$(PATH=$PATH:/home/me/.composer/vendor/bin which phpcs)"

좋은 결과

관련 정보