openSuse /etc/profile.local 文件不存在

openSuse /etc/profile.local 文件不存在

我指的是以下网址 设置JAVA_HOME

我对 Nils 给出的最后一个解决方案感兴趣,即编辑 /etc/profile.local 文件,这将为所有用户设置它。问题是我使用的是 openSUSE 12.3 并且它没有 /etc/profile.local。

这种情况应该怎么办?

答案1

/etc/profile.local文件曾经是进行系统特定更改的位置,这些更改在/etc/profile获得更新时不会被覆盖。

如果该文件存在,您的系统可能仍然会获取该文件,您可以检查/etc/profile它是否存在(搜索profile.local文件名,或者只是创建该文件并尝试。

但是,如果您有一个目录/etc/profile.d,并且其中/etc/profile有类似以下内容(来自 Ubuntu 12.04):

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

那么这个机制就会获取 ( . $i) 在该目录中找到的每个文件。这是对单个.local文件的更现代的解决方案(其优点是不同的包能够放入其文件并根据需要删除它们,而不会破坏其他内容)。如果您的 OpenSUSE 有类似的东西,您只需创建一个文件/etc/profile.d/your_name.sh并将所需的代码放入其中即可。

如果您没有所有这些,您可以直接将行添加到/etc/profile,但您确实会面临在软件包升级时丢失更改的风险。

答案2

从 openSUSE 的第一行开始/etc/profile

# /etc/profile for SuSE Linux
#
# PLEASE DO NOT CHANGE /etc/profile. There are chances that your changes
# will be lost during system upgrades. Instead use /etc/profile.local for
# your local settings, favourite global aliases, VISUAL and EDITOR
# variables, etc ...

这意味着您必须(从 root 帐户)创建/etc/profile.local.然后/etc/profile将自动获取甚至/etc/profile.local在软件包更新时保留的内容。

答案3

从我的 openSuSE 15.2 系统的 /etc/profile 中:

#
# And now let's see if there is a local profile
# (for options defined by your sysadmin, not SUSE Linux)
#
test -s /etc/profile.local && . /etc/profile.local

在我们的生产 SLES 12.3 服务器上,它也有同样的事情。

相关内容