我在脚本中使用PHP composer全局安装了一些PHP包
sudo -u me composer global require "PHPmd/PHPmd"
我想找到这些全局安装的PHP包的路径.当我以用户身份运行哪个PHPmd时,我得到了完整的路径.
但是,当我尝试以sudo运行命令时,我什么都没得到.我认为这是因为composer已被全局添加并且在我的用户mes PATH中,而它在sudo的PATH中不存在.
相反,我试过了
path="$(sudo -u me which PHPcs)"
但这也失败了.但是,对于未通过composer安装的任何程序,它都会成功.如何通过composer作为sudo找到全局安装的PHP包?
我的道路
/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)的道路
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
解决方法:
正如您在路径差异中所注意到的那样,问题在于我的路径包括/home/me/.composer/vendor/bin. Sudo不会继承用户的环境.
您需要手动导入它.目前还不清楚为什么你希望root在其路径中查看特定用户的文件.
要查找文件,可以使用find命令,例如find / home -name FileName.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。