问题:今天想给mongodb配置环境变量,出现一个很尴尬的地方
编辑用户级配置文件 vim ~/.bashrc
添加配置信息: export PATH=/usr/local/mongodb/mongodb-3.6.5/bin:$PATH (中间那部分就是你的安装目录下的bin)
保存退出,刷新:source ~/.bashrc
我们输入mongo,显示版本信息,说明配置环境变量成功(现在还没开启服务器所以连接失败)
按道理,这样就可以了,于是输入sudo mongod --config /usr/local/mongodb/mongodb-3.6.5/etc/mongodb.conf,开启服务器
但是出现了下面的问题(sudo: mongod: command not found)!!!
如果没有sudo,也不行,mongodb这个命令需要超级用户身份运行
查看一下搜索路径
我们发现是在搜索路径path下的,问题就出在sudo上!
其实出现这种情况的原因,主要是因为当 sudo以管理权限执行命令的时候,linux将PATH环境变量进行了重置,当然这主要是因为系统安全的考虑,但却使得sudo搜索的路径不是我们想要的PATH变量的路径,当然就找不到我们想要的命令了
解决:
方式一:往sudo默认搜索路径中添加我们需要的命令
(1)复制你bin路径
(2)执行sudo visudo,将你的路径添加到secure_path
方式二:
(1)执行sudo vim ~/.bashrc
在.bashrc中最后添加alias sudo='sudo env PATH=$PATH'
source ~/.bashrc
(2)执行sudo visudo
将Defaults env_reset改成Defaults !env_reset
表示取消重置,仍然使用echo $PATH 显示的搜索路径
保存退出
参考:http://www.cnblogs.com/A-Song/archive/2013/03/09/2951951.html