linux中/etc/profile中配置了环境变量,但是程序还是无法直接启动

版权声明:本文为博主原创文章,未经博主女朋友允许不得转载。 https://blog.csdn.net/qq_26442553/article/details/85346240

   安装配置了Hive程序,正常可以启动,也在/etc/profile中配置了环境变量,但是直接命令行hive启动失败

1./etc/profile中的部分配置信息:       

export HIVE_HOME=/opt/modules/hive-0.13.1-cdh5.3.6
export PATH=$PATH:$HIVE_HOME/bin

export HBASE_HOME=/opt/modules/hbase
export PATH=$PATH:$HBASE_HOME/bin
直接echo $HIVE_HOME也没有问题


2.直接命令行输入hive启动失败,进入hive安装目录则会启动成功 

[robot@hadoop101 ~]$ hive
bash: hive: command not found...

       既然显示在bash中找不到hive命令,那么就是bash配置出问题了 ,首先有一个问题要明白,为什么配置了/etc/profile环境变量后,程序就可以直接启动,而不用进入安装环境后启动?因为/etc/profile这个文件是每个用户登录时都会运行的环境变量设置(对所有用户生效(永久的)。

       然而每个用户还有个自己的环境变量在当前$HOME/.bash_profile(/home/robot/.bash_profile)。修改这个文件中变量只会对当前用户有效,比如系统用户是robot。这里之所以配置了系统环境变量而没有用,是因为当前用户加载的是自己的环境变量。覆盖了系统的环境变量

   1. 所以这里只需要将PATH=$PATH:$HOME/.local/bin:$HOME/bin注释掉即可。

   2.然后 source  .bash_profile即可。这时候直接执行hive即可启动hive程序。

[robot@hadoop101 ~]$ cat ./.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
#需要将下面这一行注释掉,这样系统就会直接使用系统环境变量,而不是自己的
#PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

猜你喜欢

转载自blog.csdn.net/qq_26442553/article/details/85346240