【问题标题】:command not found even when "which" shows its path with sudo即使“which”用 sudo 显示它的路径,也找不到命令
【发布时间】:2018-04-30 00:47:27
【问题描述】:

我正在使用带有 zsh 5.2 的 Fedora 25 版

我正在尝试使用带有sudo 的命令。 (在本例中,docker-compose

问题:

which 命令显示它的位置。

$ sudo PATH=$PATH which docker-compose
/usr/local/bin/docker-compose

尽管如此,找不到命令

$ sudo PATH=$PATH docker-compose
sudo: docker-compose: command not found

我可以通过sudo `which docker-compose` 让它工作,但我想知道为什么会这样。

我尝试了什么:

我双引号 PATH=$PATH 但得到了相同的结果。

$ sudo "PATH=$PATH" docker-compose
sudo: docker-compose: command not found

【问题讨论】:

  • 您永远不需要以 root 身份运行 docker-compose。您的用户不是“docker”组的成员吗?
  • 我知道。但我只想知道为什么即使“哪个”显示路径也会出现“找不到命令”

标签: shell path docker-compose sudo


【解决方案1】:

/usr/local/bin/ 不在根路径上。检查与

sudo bash -c 'echo "$PATH"'

/usr/sbin:/usr/bin:/sbin:/bin

使用命令的绝对路径。 添加 /usr/local/bin 到根路径似乎是a security risk

【讨论】:

  • 感谢您的回答。了解安全风险,如何将/usr/local/bin添加到根路径?
  • 意思是还是要添加?
  • 是的。因为无论如何我都在虚拟机中工作。风险有限
  • export PATH="$PATH:/usr/local/bin"添加到/root/.bashrc/root/.profile,然后运行source /root/<changed file>使更改生效或注销/登录。
猜你喜欢
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
  • 2019-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-10
  • 2018-07-15
相关资源
最近更新 更多