我正在尝试在cmos 6.5的VM上安装python2.7。我按照以下指南进行安装
http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/
但是当我尝试将run python作为sudo安装时,我收到以下错误。
-bash: python2.7: command not found
只运行python2.7。它甚至可以在我以root用户身份运行时运行。我也注意到了:
which python2.7
返回
/usr/bin/which: no python2.7
当我做sudo -i然后运行命令时。
知道为什么会这样吗?
答案 0 :(得分:3)
如果您使用的是CentOS 6.5,可能是因为sudo
未将/usr/local/bin
设置为PATH
的一部分。
CentOS 6.x的/etc/sudoers
文件将secure_path
(在sudo
个会话期间使用)设置为一组非常有限的路径。
使用visudo
命令查看/etc/sudoers
文件的内容。您可能会找到此部分:
#
# Adding HOME to env_keep may enable a user to run unrestricted
# commands via sudo.
#
# Defaults env_keep += "HOME"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
因此sudo
不使用/usr/local/bin
路径。
您可以通过以下几种方式解决问题:
将/usr/local/bin
添加到secure_path
- 如果您不知道/usr/local/bin
目录中的内容,可能会出现安全问题。虽然通常情况下这可能不是一个大问题,因为默认情况下只有root对/usr/local/bin
具有写入权限。
通过评论完全禁用secure_path
- 再次,您将覆盖旨在限制访问并提高安全性的功能。
答案 1 :(得分:3)
尝试以下
sudo env PATH=$PATH python2.7
这样做是将您当前的路径复制到新sudo
的环境中。