命令无法找到,因为“/snap/bin”未包含在PATH环境变量中。

42

当我尝试运行 git-all-secrets 时,我收到了 Dockerfile: command not found 的错误提示,这是包含正确信息的命令示例。

root@momo22:/home/momo/git-all-secrets# docker run -it abhartiya/tools_gitallsecrets -token=9a8b60a10cf683f238e05 -org=bugcrwod
Command 'docker' is available in '/snap/bin/docker'
The command could not be located because '/snap/bin' is not included in the PATH environment variable.
docker: command not found
root@momo22:/home/momo/git-all-secrets# 

什么操作系统?"whereis docker"的结果是什么? - Michael Hobbs
当我在Ubuntu 18.04上运行Docker时,遇到了相同的错误。我已经选择在服务器安装期间安装Docker。 - TudorIftimie
我可以确认即使在Ubuntu 20.04上,情况与上面的用户一致,docker被安装到/snap/bin而没有添加到$PATH中,请参见下面的答案以了解如何操作。 - CvRChameleon
6个回答

86

12
无需重新启动系统。只需使用命令 source /etc/environment 即可。该命令会使环境变量立即生效,无需重启系统。 - C.J.
这个/snap/bin已经在/etc/environment列表中了,我正在尝试打开存储在我的外部硬盘上的项目。如果我打开一个新的终端,并将路径更改为该目录,则code .命令可以正常工作。 - MUHAMMAD SHAHID RAFI C P
1
奇怪的是这个问题有这么多赞,因为按照现在的写法它是不完整的,而且如果环境文件为空的话它也无法工作。请参考Jay Harry的解决方案。 - Gisto

24

您可以将路径添加到 .bashrc 文件中

$ echo 'export PATH=$PATH:/snap/bin' >> ~/.bashrc

打开新终端或执行此命令

$ source ~/.bashrc


18

解决此问题,请按照以下步骤操作:

  1. 打开文件/etc/environment
  2. 在PATH变量结尾处添加/snap/bin,使用:符号进行连接。

    例如,我们假设文件中的PATH变量为:Path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"

    你更新后的结果应该是:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/snap/bin

  3. 最后,为了更新您的shell并准备好使用PATH变量,请运行source /etc/environment
  4. 完成

2
这是最好的和最完整的答案 - 谢谢! - Gisto

1

如果您使用的是 Ubuntu 而不是 docker,并且刚刚安装了 snapd 但没有重新登录,那么请先注销再登录 - 您无需修改任何文件。


0
  1. 使用nano或vim打开~/.bashrc => vim ~/.bashrc
  2. 在文件末尾添加export PATH=$PATH:/snap/bin
  3. 退出用户并重新登录或重启

如果~/.bashrc不存在:

  1. 创建~/.bashrc文件并打开 => touch ~/.bashrc && vim ~/.bashrc
  2. 添加PATH=$PATH:/snap/bin
  3. 退出用户并重新登录或重启

如果您不想注销或重启,请运行以下命令:

  1. sudo su ${USER}
  2. bash

0
  • 打开~/.bash_profile
  • 添加export PATH=$PATH:/snap/bin并保存更改
  • 运行source ~/.bash_profile

你可以使用vigedit打开~/.bash_profile


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接