环境更改后 CentOS 无法启动

环境更改后 CentOS 无法启动

我在 VirtualBox 的帮助下使用 Cloudera 训练虚拟机创建了一台 CentOS 机器。然后,因为我想在虚拟机上使用spark,所以我按照以下给出的确切步骤安装了java 1.8版本技术管理网

我能够成功安装 java,但是每次启动 Spark 时,我都必须按照上面链接中的建议执行以下三个命令。

export JAVA_HOME=/opt/jdk1.8.0_91
export JRE_HOME=/opt/jdk1.8.0_91/jre
export PATH=$PATH:/opt/jdk1.8.0_91/bin:/opt/jdk1.8.0_91/jre/bin

如果我在启动spark之前不执行上述命令,spark会自动使用java 1.6版本并会抛出异常。如果我执行上面的命令,那么它运行得很好。

在上面教程的最后,提到我应该将环境设置命令放在文件中,/etc/environment以便机器在启动时使用这些变量。

我将所有三个命令都放入/etc/environment文件中,但是执行此操作后,机器无法启动,始终停留在启动阶段,并出现以下错误:

Starting jexec servicesDevice, "eth0" does not exist

怎么了?

答案1

/etc/environment不是一个shell脚本,它是一个配置文件pam_env并且有不同的语法。/etc/environment(并且每个用户文件~/.pam_environment只能包含 形式的简单行。您不得使用 shell 功能,例如使用.VARIABLE=VALUEexportVARIABLE

如果您想使用/etc/environment,则必须PATH完整拼写,并且 root 不能有不同的值(与sbin目录)。最好将 shell 脚本放入其中/etc/profile.d:这是在登录期间执行的,并且由 shell 执行,因此它使用 shell 语法(但要注意,如果您在未登录的情况下执行命令,例如在 cron 作业中,则不会执行它)。

相关内容