zoukankan      html  css  js  c++  java
  • 关于使用sudo命令后找不到JAVA_HOME的问题

    今天在虚拟机搭建zookeeper环境,结果死活运行不起来,唯一的信息只有out文件里“没有java命令”这一个提示,找来找去发现是找不到java运行环境。可是很奇怪,明明我已经配置了,而且在终端执行java -version是有信息的,可是在 zkServer.sh 和 zkEnv.sh 中 echo $JAVA_HOME 确实为空。后来百读到了答案:

    https://blog.csdn.net/m0_38086372/article/details/88542909

    =====================================================================================================

    原因
    sudo命令会重置环境变量,查看文件/etc/sudoers,可以看到这样的配置
    Defaults env_reset
    1
    解决方法
    第一种,也是最简单的,使用sudo -E来代替sudo即可保留当前用户的环境变量,但缺点也很明显,每次都要加

    第二种方式:修改/etc/sudoers文件,将Defaults env_reset改为 Defaults !env_reset,这样以后使用sudo就再也不会重置环境变量了

    需要注意的是`/etc/sudoers`是只读文件,vim不能更改,要使用`visudo`命令(不用加文件名)来更改内容
    1
    不过大部分环境变量我们一般都用不着,这种情况就可以在配置中添加env_keep,来使指定的几个环境变量保持不变

    具体的做法是在 /etc/sudoers中添加语句 Defaults env_keep += "env1 env2" ,这样环境变量env1 和env2就可以在sudo执行时保留原来的值
    不过既然/etc/sudoers是个只读文件,就不是用来让我们改来改去的;还除了它,我们还可以在目录/etc/sudoers.d/下随便创建文件,写入 Defaults env_keep += "env1 env2",效果和在/etc/sudoers中是一样的,也更加方便删除和修改
    ---------------------
    作者:hhgfy
    来源:CSDN
    原文:https://blog.csdn.net/m0_38086372/article/details/88542909
    版权声明:本文为博主原创文章,转载请附上博文链接!

    ===================================================================================================

    奶奶的,原来使用了sudo还会把环境变量重置了

  • 相关阅读:
    es6-箭头函数
    高度自适应的div
    移动端css水平垂直居中
    跨域2-常用的跨域方式
    跨域1-CORS跨域
    前端路由分类
    K8S系列-2.常用命令
    Git多分支管理
    微服务-01初识
    VirtualBox虚拟Centos磁盘文件扩容
  • 原文地址:https://www.cnblogs.com/zhongshiqiang/p/10839666.html
Copyright © 2011-2022 走看看