LINUX.ORG.RU

Скрипт mc поганит логин в сессию! Переменная среды TERM не определена.

 , , , ,


0

1

Когда делаю sudo cp /usr/lib/mc/mc-wrapper.sh /etc/profile.d

получаю ошибку

Error found when loading /etc/profile Переменная среды TERM не определена.

Мол, пофиксите как можно быстрее.

Можно мне оставаться в текущем каталоге после завершения mc без таких вот ошибок (так-то, совет работает, но вот сообщение при заходе в линукс бесит).

★★★★★
Ответ на: комментарий от tiinn

Причём тут дисплейный менеджер? В $TERM указано, какой именно вид tty эмулируется текущим эмулятором терминала. Только я сомневаюсь что у тебя не установлен $TERM. И вообще не понимаю чего ты хотел добиться, засовывая туда mc-wrapper.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Причём тут дисплейный менеджер?

при том, что ошибка возникает сразу после ввода пароля, т.е. когда я логинюсь в линукс. Даже до появления рабочего стола

И вообще не понимаю чего ты хотел добиться, засовывая туда mc-wrapper.

Я хочу добиться, чтоб в терминале xfce, после выхода из mc, я оставался в том самом каталоге, который был открыт в mc.

А sudo cp /usr/lib/mc/mc-wrapper.sh /etc/profile.d - первая инструкция для получения желаемого.

tiinn ★★★★★
() автор топика
Последнее исправление: tiinn (всего исправлений: 3)
Ответ на: комментарий от tiinn

при том, что ошибка возникает сразу после ввода пароля, т.е. когда я логинюсь в линукс. Даже до появления рабочего стола

А как ты в него логинишься? Просто я вижу два варианта и оба не пойму как связаны:

1) ты логинишься в текстовой консоли, видишь эту ошибку и промпт шелла, вводишь startx (причём тут дисплейный менеджер тогда?)

2) ты логинишься в дисплейном менеджере, видишь эту ошибку а потом видишь de (но где ты видишь эту ошибку, если консоль в этом случае не видна нигде?)

А sudo cp /usr/lib/mc/mc-wrapper.sh /etc/profile.d - первая инструкция для получения желаемого.

Возможно, у нас разные mc-wrapper.sh

У меня (дебиан) такой:

MC_USER=`whoami`
MC_PWD_FILE="${TMPDIR-/tmp}/mc-$MC_USER/mc.pwd.$$"
/usr/bin/mc -P "$MC_PWD_FILE" "$@"

if test -r "$MC_PWD_FILE"; then
	MC_PWD="`cat "$MC_PWD_FILE"`"
	if test -n "$MC_PWD" && test "$MC_PWD" != "$PWD" && test -d "$MC_PWD"; then
		cd "$MC_PWD"
	fi
	unset MC_PWD
fi

rm -f "$MC_PWD_FILE"
unset MC_PWD_FILE
unset MC_USER

Для запускания из profile он явно не предназначен, он для того чтобы ставить алиас mc=". /usr/lib/mc/mc-wrapper.sh". А если его поставить в profile, то mc будет пытаться запускаться при каждом логине (и сохранять директорию при выходе, да, но только из этого запуска). И подозреваю это сломает работу там, где шелл должен запуститься неинтерактивно из какого-нить скрипта, отработать и выйти.

А у тебя какой дистр и этот враппер? И где ты эту инструкцию взял? Не из бредогенератора ли?

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 3)
Ответ на: комментарий от firkax

У меня вариант 2). Ошибку я вижу в графическом окошке на чёрном экране :)

Инструкцию брал на https://debianforum.ru/index.php?topic=16519.0

Враппер у меня такой же

MC_USER=`whoami`
MC_PWD_FILE="${TMPDIR-/tmp}/mc-$MC_USER/mc.pwd.$$"
/usr/bin/mc -P "$MC_PWD_FILE" "$@"

if test -r "$MC_PWD_FILE"; then
	MC_PWD="`cat "$MC_PWD_FILE"`"
	if test -n "$MC_PWD" && test "$MC_PWD" != "$PWD" && test -d "$MC_PWD"; then
		cd "$MC_PWD"
	fi
	unset MC_PWD
fi

rm -f "$MC_PWD_FILE"
unset MC_PWD_FILE
unset MC_USER

Линукс минт 22.1

tiinn ★★★★★
() автор топика
Ответ на: комментарий от tiinn

А, так он там алиас тоже настраивает - дело именно в нём.

А копирование файла в /etc/profile.d там лишнее - видимо он сам не разобрался что и зачем делается и сделал всё методом тыка. Возможно и ошибка у него где-то показывалась но он на неё забил.

Видимо он где-то увидел инструкцию как создать в /etc/profile.d новый файл, и в него написать одну строчку с созданием алиаса к врапперу, но всё перепутал и скопировал туда враппер вместо этого, а алиас сделал в bashrc - можно и там (я не помню чем он от profile отличается).

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 3)
Ответ на: комментарий от tiinn

А sudo cp /usr/lib/mc/mc-wrapper.sh /etc/profile.d - первая инструкция для получения желаемого.

Какая-то укуренная инструкция. Есть же ~/.bashrc и ~/.bash_profile

upd. firkax прав, это вообне не нужно совать в профиль, этот wrapper нужно использовать для запуска mc. обычно через alias

router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от router

firkax прав, это вообне не нужно совать в профиль, этот wrapper нужно использовать для запуска mc. обычно через alias

Безусловно, он прав. Но, без портянки мыслей, которую он в своём посте… посту… в сообщении воспроизвёл, для меня фраза

тот wrapper нужно использовать для запуска mc. обычно через alias

чёрная магия. Инструкция на дебианфоруме неправильная, но понятная для воспроизведения.

tiinn ★★★★★
() автор топика
Ответ на: комментарий от tiinn

хочу добиться, чтоб в терминале xfce, после выхода из mc, я оставался в том самом каталоге, который был открыт в mc

Соорудить скриптик, который будет делать

cd "последняя строчка mc history"
, и запускать mc через
mc;скриптик.sh
было бы, наверно, проще, нежели чем курочить логин шелл...

piyavking ★★★★★
()
Последнее исправление: piyavking (всего исправлений: 1)
Ответ на: комментарий от tiinn

Ты можешь сам посмотреть какие куда переменные окружения передаются:

~
❯ sudo cat /proc/3932/environ | tr '\0' '\n'
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
XDG_DATA_DIRS=/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/
USER=root
INVOCATION_ID=...
JOURNAL_STREAM=9:14300
SYSTEMD_EXEC_PID=3932
MEMORY_PRESSURE_WATCH=/sys/fs/cgroup/system.slice/sddm.service/memory.pressure
MEMORY_PRESSURE_WRITE=...

~
❯ sudo cat /proc/5442/environ | tr '\0' '\n'
LANG=en_US.UTF-8
rtxtxtrx ★★★
()