Я пытаюсь настроить сервер Linux с CentOS 7 для нескольких пользователей. После установки java я хочу глобально установить переменную среды $ JAVA_HOME
для всех пользователей и добавить ее в $ PATH
.
Для этого я перешел на / etc / profile
скрипт, который вызывается при запуске. Я последовал совету в верхней части скрипта:
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
Я создал свой собственный Является ли это ошибкой в операционной системе CentOS 7? Есть ли хороший обходной путь, который я могу использовать для создания глобальных параметров среды без их повторной установки? (Я не хочу устанавливать их в /etc/profile.d/custom.
/ etc / environment
, потому что я не могу использовать переменные bash в этом файле.)
Я создавал сотни centos 7 за последние 6 месяцев, кое-как их настраивал, и я никогда не видел того, что вы описываете. Как сказал Томас, по умолчанию /root/.bashrc не вызывает / исходные скрипты в /etc/profile.d.
EDIT: На самом деле, /root/.bashrc ИМЕЕТ источник /etc/prodile.d/* с помощью / etc / bashrc и предотвращает эхо:
# Only display echos from profile.d scripts if we are no login shell
# and interactive - otherwise just process them to set envvars
for i in /etc/profile.d/*.sh; do
if [ -r "$i" ]; then
if [ "$PS1" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
Угадайте, что мои недавние проблемы отличаются друг от друга, и мне пришлось их решить быстро, но не достаточно копать. Мои извинения.
СТАРЫЙ ОТВЕТ
1 / Полагаю, это действительно не ошибка (какой ISO вы получили для своего centos 7? Вы суммировали его md5? Этот вопрос звучит для меня действительно странно)
2 / и тогда нет обходного пути, кроме как удалить код, который заставляет скрипты загружаться дважды?
/etc/profiles.d кажется правильным местом для размещения некоторых скриптов, если они «молчаливы», что означает определение некоторых переменных среды, но не создание echo или вызов некоторого динамического motd, или в какой-то момент он будет взаимодействовать неким плохим образом с другими скриптами, которые вы будете запускать (недавно получил опыт установки netdata).
Некоторые интересные моменты для чтения в unix .stackexchange.