Re: (решено) GNOME и koi8
>> AC> И что? Аргументация где?
>>
>> И то, что нужно настроить среду для выполнения консольных программ. Что
>> в случае с логином в иксы не только не нужно, но и физически невозможно,
>> за отсутствием оной консоли.
/etc/profile не имеет никакого отношения к "консольным" программам.
В /etc/profile - прописывается system wide переменные.
В топике прямо так и написано.
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
Добавлять к этому списку *dm или нет - решать, в общем, мне, админу.
Что туда прописываешь ты я, в общем, не в курсе.
Кое для чего можно использовать pam_env.
Но /etc/profile и pam_env в любом случае не эквивалентны.
В топике pam_env прописан еще в pam.d/cron и pam.d/atd.
Может быть это нужно, а может и нет. Решает, что ему лучше, в общем,
тоже админ системы. Переменным PAGER, NNTPSERVER, MANPAGER
и так далее нечего делать в at и cron задачах.
LC_NUMERIC=C и можно прописать и в pam_env.
Что до консольных программ - в консоли Linux есть переменная TERM,
на основе которой прописываются все "консольные" особенности.
Так же как для TERM=dumb или TERM=emacs, к примеру.
Что касается причуд и заморочек zsh.
/etc/zprofile:
. /etc/profile
и, как обычно, "задача сводится к предыдущей"(c), как в моем любимом анекдоте.
> Ну, в свое время у меня довольно заметный кусок .bashrc был спрятан
> под
> if [ -t 0 ]; then
> ...
> endif
В моем .myshrc у меня есть и такие куски, и куски, специфичные
для TERM, $USER, uname -s, специфичные для шела (ksh, bash, zsh)
и многие другие для чего-нибудь специфичные.
DISPLAY же например, я прописываю там же вот так
в зависимости от того, откуда пришел.
if test -z "$DISPLAY" -a -x /usr/bin/who ; then
WHOAMI="`/usr/bin/who am i`"
WHOAMI="`echo $WHOAMI | awk '{print \$NF}' | tr -d '()'`"
case _"$WHOAMI" in
_*.*.*.*)
DISPLAY=$WHOAMI:0.0;;
_:*)
DISPLAY=$WHOAMI;;
*)
DISPLAY=$WHOAMI:0.0;;
esac
unset WHOAMI
fi
> Специально для случая, когда консоле-специфические вещи настроить
> физически невозможно. Все остальное прекрасно отрабатывало из .xsession
Консоль и /etc/profile - ортогональны.
>> AC> И что? Консоли нет. А окружение должно быть. И должно быть
>> AC> одинаковым. Если пользователь ЯВНО не сделает иначе.
> Одинаковым быть не должно. Зачем мне в X-овых программах, запущенных из
> меню *wm переменные COLUMNS и TERM. Согласованным - должно.
Кто предлагал прописывать в /etc/profile?
У меня совсем другие переменные.
Выставлять COLUMNS и TERM? Пардон, Зачем?
Не, я могу понять, зачем нужно выставить TERM именно для консоли,
но при чем тут /etc/profile? Чтобы TERM прописывался и для ssh сессий?
>> Для выставления _части_ окружения, одинаковой при любом логине,
>> существует pam_env.
Нет. Зачем NNTPSERVER, EDITOR, CVSEDITOR и т.п. cron-у и at-у?
>> А _все_ окружение одинаковым быть не должно. Хинт:
>> чему должно равняться общее для всех вариантов логина значение
>> переменной окружения DISPLAY? COLUMNS? LINES? TERM? LC_MESSAGES,
>> наконец (а у меня консоль не русифицирована, ибо нафиг не надо)? Ну и
Все это, за исключением, может быть LC_MESSAGES, не имеет отношения к
system-wide настройкам и /etc/profile.
> Ну, консоль в моем понимании, это xterm. Или какая другая хрень, с
> которой программа общается через /dev/tty. Все остальные её особенности
> определяется по значению TERM.
А вот у поколения пепси консоль - это KDE-ная konsole.
Я бы предложил не вносить путаницу в терминологию.
Консоль - это консоль, эмулятор терминала - это эмулятор терминала.
"Аффтарам" KDE-ной консоли "низачет" за внесение неразберихи.
--
Best regards, Aleksey Cheusov.
Reply to: