18 октября 2009 г.

mc — смена каталога при выходе

После обновления mc до версии 4.7.0_pre1, было обнаружено, что пропала удобная функция, позволяющая при выходе из программы остаться в последней директории, а не в той, которая была на момент запуска mc. В gentoo это работало благодаря добавлению следующих строк в .bashrc:

if [ -f /usr/share/mc/mc.gentoo ]; then
    . /usr/share/mc/mc.gentoo
fi

Так вот, выяснилось, что файл /usr/share/mc/mc.gentoo отсутствует в новой версии mc. Ну и собственно, для возврата работоспособности описанной функции, необходимо под root'ом создать файл /usr/share/mc/mc.gentoo следующего содержания:

#!/bin/sh

MC_ENV=/usr/libexec/mc/mc.sh

for i in $MC_ENV; do
    if [ -x $i ]; then
        . $i
    fi
done

Также не забываем проверить наличие указанного выше фрагмента в .bashrc. Теперь все должно работать, как раньше.

P.S Как правильно заметил ForeverYoung, все можно настроить без создания дополнительного файла. Начиная с версии 4.7.0_pre3 в gentoo, после установки mc, советуют для включения описанной выше функции добавить нечто вроде следующих строк в ~/bashrc:

if [ -f /usr/libexec/mc/mc.sh ]; then
    . /usr/libexec/mc/mc.sh
fi

8 комментариев:

Denis Evsyukov комментирует...

Хмм... Я даже не знал, что он умеет сохранять каталог при выходе...
Кстати, какую ветку генту используешь? Стабильную или нет??

Ilya Zonov комментирует...

Системные пакеты из стабильной ветки. Да и в основном все проги тоже стабильные. Но также устанавливаю отдельные пакеты из ~x86. Например, firefox, kde4. Замаскированных сейчас нету, но раньше ставил.

Denis Evsyukov комментирует...

Понятно, спасибо!
У меня на нестабильной системе проблемы возникли при обновлении, теперь думаю опять в генто вернуться, но уже попробовать стабильную ветку... =)

Ilya Zonov комментирует...

Я думаю, лучше раскомментировать отдельные необходимые пакеты в package.keywords, чем использовать целую нестабильную систему.

Denis Evsyukov комментирует...

теперь я тоже к этому склоняюсь... =)

Анонимный комментирует...

В убунте что-то не работает такой способ.

ForeverYoung комментирует...

вообще то:
To enable exiting to latest working directory,
put this into your ~/.bashrc:
. /usr/libexec/mc/mc.sh

Ilya Zonov комментирует...

2ForeverYoung
Действительно с версии mc-4.7.0_pre3, после установки написано именно это. В предыдущих pre-версиях не было. Свое решение нашел в старых (до 4.7.0) версиях. Там было именно так.