[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: