find composer global install path as root
Solution 1
The problem, as you can notice in the path difference, is that me's path includes /home/me/.composer/vendor/bin
. Sudo does not inherit the user's environment.
You would need to manually import it. It's unclear why you'd want root to see a specific user's files in its path though.
To find a file, you can use the find
command such as find /home -name FileName
.
Solution 2
Thanks to Julie's suggestion and some other answers on SO I came up with
path="$(PATH=$PATH:/home/me/.composer/vendor/bin which phpcs)"
which works nicely
Related videos on Youtube
myol
Updated on September 18, 2022Comments
-
myol over 1 year
I have some php packages installed globally using
php composer
within a scriptsudo -u me composer global require "phpmd/phpmd"
I want to find the path of these globally installed php packages. When I run
which phpmd
as userme
I get the full path./home/me/.composer/vendor/bin/phpcs
However when I try and run the command as
sudo
I get nothing. I think this is because composer has been added globally and is in my userme
sPATH
while it is not present in sudo'sPATH
.Instead I have tried
path="$(sudo -u me which phpcs)"
But this also fails. However it succeeds for any program not installed through composer. How can I find the globally installed php packages through composer as
sudo
?me's path
/home/me/.composer/vendor/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
sudo (su's) path
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
-
Julie Pelletier about 8 yearsTo troubleshoot, please show
me
's androot
's path. That's probably where the problem is. -
myol about 8 yearsupdated the question @JuliePelletier
-
-
myol about 8 yearsManually import the composer path?