
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
ためだと思います。PATH
PATH
代わりに私は努力しました
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)"
良い結果