Форум Зейского сообщества любителей ОС Linux и Unix

Тематические обсуждения *nix => Программы => Тема начата: Vena от Суббота, 26 Марта, 2011, 15:05:17

Название: mc
Отправлено: Vena от Суббота, 26 Марта, 2011, 15:05:17
Очень часто имею такую проблему в MC, по окончании закачки файла по ftp с сервера закачка не заканчивается как бы, а прогресс показывается сколь угодно долго, хотя сетевая активность уже отсутствует. Файл на месте.  При этом отменить-закрыть этот командер уже никак не получается, только kill №процесса (т.е. жестко). Причем разницы нет, что по ssh и screen, что локально. Похоже глюк MC. Можно ли как-то порешать енту проблему, кто знает?
Система Минт10, 2.6.32-21-generic
Название: Re: mc
Отправлено: vovka от Воскресенье, 27 Марта, 2011, 05:28:09
О такой проблеме слышу впервые.
Можно попробовать:
1) поискать в инете описание подобной проблемы,
2) поставить из исходников - может в последней версии уже проблему устранили.

У меня из пакетов стоит GNU Midnight Commander 4.7.5.1.
Буквально недавно устранили проблему в mc, когда делается переход на панель (где было например ftp-соединение), но время соединения уже истекло. Раньше mc просто выдавал I\O Error и приходилось программу закрывать и потом снова открывать, иначе повторно соединение с ftp-сервером не удавалось установить. Сейчас эту проблему устранили и после вывода сообщения об ошибке, можно нажать Ctrl+R и соединение перезапускается.
Название: Re: mc
Отправлено: Vena от Воскресенье, 27 Марта, 2011, 07:06:06
Пока обновил до 4.7.0-1ubuntu2 (была 4.6.2-pre1). Понаблюдаю.
А вот на серваке с Debian 5 Lenny похоже придётся ставить из исходников, так как в репозиториях новее 4.6.2-pre1 нету :(
Об изменениях отпишусь .
Название: Re: mc
Отправлено: Vena от Суббота, 02 Апреля, 2011, 14:13:50
что-то вспотел я ставить из исходников mc-4.7.5.1.
В INSTALL указанные зависимости установил.
sudo ./configure почти не материться (вот концовка):
config.status: creating doc/man/hu/mc.1
config.status: creating doc/man/hu/Makefile
config.status: creating doc/man/it/mc.1
config.status: creating doc/man/it/Makefile
config.status: creating doc/man/pl/mc.1
config.status: creating doc/man/pl/Makefile
config.status: creating doc/man/ru/mc.1
config.status: creating doc/man/ru/Makefile
config.status: creating doc/man/sr/mc.1
config.status: creating doc/man/sr/Makefile
config.status: creating doc/hlp/Makefile
config.status: creating doc/hlp/es/Makefile
config.status: creating doc/hlp/hu/Makefile
config.status: creating doc/hlp/it/Makefile
config.status: creating doc/hlp/pl/Makefile
config.status: creating doc/hlp/ru/Makefile
config.status: creating doc/hlp/sr/Makefile
config.status: creating intl/Makefile
config.status: WARNING:  'intl/Makefile.in' seems to ignore the --datarootdir setting
config.status: creating po/Makefile.in
config.status: WARNING:  'po/Makefile.in.in' seems to ignore the --datarootdir setting
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default-1 commands
config.status: creating po/POTFILES
config.status: creating po/Makefile

Configuration:

  Source code location:       .
  Compiler:                   gcc -std=gnu99
  Compiler flags:              -fdiagnostics-show-option -Wcomment -Wdeclaration-after-statement -Wfloat-equal -Wformat -Wformat-security -Wimplicit -Wignored-qualifiers -Wmissing-braces -Wmissing-declarations -Wmissing-parameter-type -Wmissing-prototypes -Wnested-externs -Wno-long-long -Wno-unreachable-code -Wparentheses -Wpointer-sign -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wswitch -Wtype-limits -Wuninitialized -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wwrite-strings  -I/usr/local/include   -g -O2
  File system:                Midnight Commander Virtual Filesystem
                              cpio, tar, sfs, extfs, ftp, fish
  Screen library:
  Mouse support:              xterm only
  X11 events support:         no
  With subshell support:      yes
  Internal editor:            yes
  Diff viewer:                yes
  Support for charset:        yes
  Search type:                pcre

Смущают немного 2 WARNING (игнорируется --datarootdir setting)

Концовка make:
sudo make

make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/home/svl/source/mc/mc-4.7.5.1/lib/vfs/mc-vfs/extfs'
Making all in fish
make[5]: Entering directory `/home/svl/source/mc/mc-4.7.5.1/lib/vfs/mc-vfs/fish'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/home/svl/source/mc/mc-4.7.5.1/lib/vfs/mc-vfs/fish'
make[5]: Entering directory `/home/svl/source/mc/mc-4.7.5.1/lib/vfs/mc-vfs'
  CC     utilvfs.lo
utilvfs.c: In function 'is_week':
utilvfs.c:125: error: dereferencing pointer to incomplete type
utilvfs.c: In function 'is_month':
utilvfs.c:146: error: dereferencing pointer to incomplete type
utilvfs.c: In function 'is_time':
utilvfs.c:193: error: dereferencing pointer to incomplete type
utilvfs.c:193: error: dereferencing pointer to incomplete type
utilvfs.c:193: error: dereferencing pointer to incomplete type
utilvfs.c:198: error: dereferencing pointer to incomplete type
utilvfs.c:198: error: dereferencing pointer to incomplete type
utilvfs.c: In function 'is_year':
utilvfs.c:230: error: dereferencing pointer to incomplete type
utilvfs.c: In function 'vfs_parse_filedate':
utilvfs.c:820: error: storage size of 'tim' isn't known
utilvfs.c:828: warning: implicit declaration of function 'time'
utilvfs.c:828: warning: nested extern declaration of 'time' [-Wnested-externs]
utilvfs.c:829: warning: implicit declaration of function 'localtime'
utilvfs.c:829: warning: nested extern declaration of 'localtime' [-Wnested-externs]
utilvfs.c:829: warning: assignment makes pointer from integer without a cast
utilvfs.c:830: error: dereferencing pointer to incomplete type
utilvfs.c:831: error: dereferencing pointer to incomplete type
utilvfs.c:832: error: dereferencing pointer to incomplete type
utilvfs.c:919: error: dereferencing pointer to incomplete type
utilvfs.c:920: error: dereferencing pointer to incomplete type
utilvfs.c:920: error: dereferencing pointer to incomplete type
utilvfs.c:924: warning: implicit declaration of function 'mktime'
utilvfs.c:924: warning: nested extern declaration of 'mktime' [-Wnested-externs]
utilvfs.c:820: warning: unused variable 'tim' [-Wunused-variable]
make[5]: *** [utilvfs.lo] Error 1
make[5]: Leaving directory `/home/svl/source/mc/mc-4.7.5.1/lib/vfs/mc-vfs'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/svl/source/mc/mc-4.7.5.1/lib/vfs/mc-vfs'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/svl/source/mc/mc-4.7.5.1/lib/vfs'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/svl/source/mc/mc-4.7.5.1/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/svl/source/mc/mc-4.7.5.1'
make: *** [all] Error 2

2 ошибки. :( Что за фигня? Что поделать?
Название: Re: mc
Отправлено: Vena от Суббота, 02 Апреля, 2011, 19:16:37
PS
система обновлена, сервак перезагружен.
Эффекта нету :(
Название: Re: mc
Отправлено: vovka от Воскресенье, 03 Апреля, 2011, 06:43:06
Судя по логу make - сборка не прошла. Попробую поставить на своей машине.
Название: Re: mc
Отправлено: vovka от Воскресенье, 03 Апреля, 2011, 08:04:23
На удивление, всё поставилось нормально. Система: Debian Lenny 5.0
Собственно мой процесс:
1. Посмотрел версию, используемую из пакетов и её возможности:
$ mc -V
GNU Midnight Commander, версия 4.6.2-pre1
Виртуальная файловая система: tarfs, extfs, cpiofs, ftpfs, fish
Со встроенным редактором
С установленной в системе библиотекой S-Lang с базой данных terminfo
C поддержкой внутренней командной оболочки
С поддержкой фоновых операций
С поддержкой мыши в xterm и консоли Linux
С поддержкой интернационализации
С поддержкой многих кодировок
Data types: char 8 int 32 long 32 void * 32 off_t 64 ecs_char 8

Для сохранения этой функциональности, эти опции нужно будет включить при конфигурировании.

2. Удалил версию, установленную из пакетов (её всегда можно установить обратно).
# apt-get remove mc
3. Почитал на сайте чего надо доустановить:
http://www.midnight-commander.org/wiki/ru/doc/buildAndInstall/req

Так как иногда работаю с ядром, все программы необходимые для сборки и компиляции у меня уже стоят. Мне только пришлось доустановить:
csv, pkg-config, libslang2, libslang-dev, libgpm-dev

slang и его компоненты нужны для работы в screen,
libgpm - (а также gpm, но он у меня уже был установлен) для работы мыши в консольном режиме,
# apt-get install csv pkg-config libslang2 libslang-dev libgpm-dev
Посмотреть названия установленных в системе пакетов из текстового режима можно через dpkg:
# dpkg -lили для непосредственного сравнения со строкой-названием пакета:
# dpkg -l |grep название_пакета
4. Скачал\распаковал.
$ cd /work
$ wget http://www.midnight-commander.org/downloads/mc-4.7.5.1.tar.bz2
$ bunzip2 mc-4.7.5.1.tar.bz2
$ tar -xvf mc-4.7.5.1.tar

5. Конфигурирование.
$ cd mc-4.7.5.1
Смотрим понравившиеся опции:
$ ./configure --help
Для сохранения функциональности, а также дополнительно, выбрал такие опции:
 путь установки:
 --prefix=/usr
 поддержка виртуальных файловых систем:
 --enable-vfs-tar
 --enable-vfs-ftp
 --enable-vfs-smb
 поддержка фоновых заданий:
 --enable-background
 поддержка кодировок:
 --enable-charset
 поддержка мыши в консоли:
 --with-gpm-mouse

Несколько слов по опциям:
  1. Префикс /usr я выбрал чтобы не изменять переменную PATH и не вводить в неё пути типа /usr/local/mc/bin /usr/local/mc/share и тд. ,поскольку по умолчанию все файлы mc копируются в подкаталоги каталога /usr/local/mc . Да, устанавливать самосборные программы, не являющиеся частью системы (пакеты системы) в /usr - это противоречит политике дистрибутива, но поскольку я не собираюсь апгрейдить систему на автомате и знаю, что mc у меня стоит из исходников - в /usr поставить можно :)

  2. Опции поддержки виртуальных файловых систем включил "на всякий случай", хотя все опции кроме "enable-vfs-smb" (поддержка SMB) и enable-vfs-undelfs (поддержка восстановления удалённых файлов) включены по умолчанию.

Собственно конфигурирование:
$ ./configure --prefix=/usr --enable-vfs-tar --enable-vfs-ftp --enable-vfs-smb --enable-background --enable-charset --with-gpm-mouse
3. Сборка и установка.
$ make
# make install

4. Проверка и настройка.
$ mc -V
GNU Midnight Commander, версия 4.7.5.1
Скомпилирован с библиотекой GLib версии  2.16.6
С библиотекой S-Lang и с базой данных terminfo
Со встроенным редактором
C поддержкой внутренней командной оболочки
С поддержкой фоновых операций
С поддержкой мыши в xterm и консоли Linux
С поддержкой интернационализации
С поддержкой многих кодировок
Виртуальная файловая система: cpiofs, tarfs, sfs, extfs, ftpfs, fish, smbfs
Тип данных: char: 8; int: 32; long: 32; void *: 32; size_t: 32; off_t: 64;

Ну вот, осталось только проверить настройки и протестировать :)
Название: Re: mc
Отправлено: vovka от Воскресенье, 03 Апреля, 2011, 08:20:39
    Протестил с ftp-сервером ftp.zeya.org - новый mc работает нормально, старый mc тоже кстати работал нормально.  Вот я и думаю, может быть та проблема зарыта не в самом mc, а например в настройках работы mc в режиме ftp-передачи\приёма данных или работе самого ftp-сервера?
Название: Re: mc
Отправлено: Vena от Четверг, 06 Октября, 2011, 05:42:53
Ситуация не поменялась. Уже и версию MC другая, и машины разные. Один фиг - висит мс. Делал такие эксперименты.
Ставлю передачу по FTP на сервер в личный каталог. В соседней вкладке скрина засекаю номер процесск мс, так как по окончании его явно видно не будет.
Потом происходит закачка и картинка как и описывал остаётся. В соседней вкладке делаю килл ХХХХ , где ХХХХ номер процесса мс. Получаю:
[attach=1]
После в окне, где "висел" мс:
[attach=2]
Название: Re: mc
Отправлено: vovka от Пятница, 07 Октября, 2011, 16:18:04
Применительно к ftp.zeya.org.
Включён ли пассивный режим работы ftp?
F9 -> "Options" -> "Virtual FS"
[attach=1]

Комп работает за роутером? Если "да", то поддерживает ли роутер работу с портами с 60000 по 65000 для пассивного режима ftp?
Название: Re: mc
Отправлено: Vena от Суббота, 08 Октября, 2011, 17:03:58
Пассивный режим включен, но с ним вместе еще что-то ? (по умолчанию)
[attach=1]
Что касается роутера - проверю. Еще, по моему, я уже пробовал качать без роутера - результат был тот же :( , но еще раз проверю.
Название: Re: mc
Отправлено: vovka от Воскресенье, 09 Октября, 2011, 03:17:03
Пассивный режим включен, но с ним вместе еще что-то ? (по умолчанию)
Больше ничего. То, что показано стрелочкой на netrc - это видимо скрипт с сетевыми преднастройками для mc. У меня его нету и им ни разу не пользовался. Остальные настройки - в зависимости от ситуации.
Название: Re: mc
Отправлено: Vena от Понедельник, 10 Октября, 2011, 05:53:14
То, что показано стрелочкой на netrc - это видимо скрипт с сетевыми преднастройками для mc.
Вот эта пакость похоже и портила мне жизнь :) Из репов ставленный МС , видимо создатель включил эту опцию, а я пол года понять не мог, почему косячит мой МС :) Спасибо vovka, помог недотёпе :)
Эксперименты продолжу, потом отпишусь

PS пометку на netrc надо проверять и снимать! (если скрипта нет)
Название: Re: mc
Отправлено: vovka от Понедельник, 10 Октября, 2011, 13:26:20
Скрипт в студию. Посмотрим что он делает.
Название: Re: mc
Отправлено: Vena от Понедельник, 10 Октября, 2011, 18:15:52
где тот скрипт и где та студия? ;)
При закачке папки виснет таки падла МС :( Не вылечилось :( Продолжаем наблюдения :(
Название: Re: mc
Отправлено: Vena от Суббота, 14 Января, 2012, 16:41:31
Есть еще вопрос по МС
Для быстрого подключения например по FTP к каталогу запоминаю текущее подключение с помощью комбинации ctrl \
А во  как при ентом кампоте запомнить пароль не ясно. приходится каждый раз его набирать. Есть способ запомнить пароль для полной "автоматизации".
Название: Re: mc
Отправлено: vovka от Воскресенье, 15 Января, 2012, 05:14:36
Есть всего 2 способа, как автоматизировать пароли для FTP VFS в mc:
1. Использовать не быстрый переход, а через диалог обычного соединения: F9 -> FTP Link и ввести логин\пароль в строке соединения:
username:password@server
Правда этот список сохраняется в открытом виде в профиле mc

2. Можно использовать файл паролей .netrc
У меня эта штука не заработала, но можешь у себя проверить.
Пример:
1. Создаём файл .netrc в домашнем каталоге:
$ cd ~
$ touch .netrc
2. С помощью текстового редактора добавляем в него такую строку или строки:

  machine днс-имя-сервера login логин password пароль

, где днс-имя-сервера - имя сервера в сети или его ip-адрес (тогда и обращаться в mc нужно будет по ip-адресу).
логин и пароль - это данные для входа на сервер.

3. Чтобы не светить пароли, даём права 600 этому файлу:
chmod 600 .netrc
4. В mc идём через меню: Options -> Virtual FS и ставим галочку на Use ~/.netrc .
На этом настройка завершена.

Как работает выборка параметров из этого файла - непонятно. Или имя сервера + имя логина, или же выборка идёт только по имени сервера. Из мана, я так понял, что команда ftp или встроенный ftp-менеджер в mc применяют логин\пароль как только увидят соответствие имени машины в запросе и файле netrc. Как будет выглядеть процесс, когда сервер один, а логинов два или более - не знаю.

Дополнительно можно почитать:
Название: Re: mc
Отправлено: Vena от Воскресенье, 15 Января, 2012, 07:40:53
У меня эта штука не заработала, но можешь у себя проверить.
огромное спасибо, заработало сразу. то, что надо. попробую на остальных компах.
PS
вопрос с зависанием коммандера при закачке по фтп у меня так и не решен (на  всех компах) :(
Название: Re: mc
Отправлено: vovka от Воскресенье, 15 Января, 2012, 08:02:21
вопрос с зависанием коммандера при закачке по фтп у меня так и не решен (на  всех компах) :(

Если эти компы расположены за роутером и пересылка идёт через него, то глюк может быть в самом процессе трансляции битового потока в роутере. Предлагаю это проверить.
Название: Re: mc
Отправлено: Vena от Воскресенье, 15 Января, 2012, 08:22:51
Предлагаю это проверить.
Прикол в том, что роутера 2, в разных направлениях. Один D-Link , второй TP-Link. Серваки, куда подключаюсь - тоже разные. Результат один. Потом я припоминаю, что пробовал напрямую через свич в окс ставить комп и косяк имел место :(

По поводу .netrc и одного сервера с разными логинами тоже проверил. работает только тот логин, что в .netrc первым идёт. Второй просит вводить пароль. В принципе можно было бы в одном случае использовать имя во втором IP адрес, но у меня во вторую сеть не робит что-то имена, хожу по IP.
Название: Re: mc
Отправлено: Vena от Воскресенье, 15 Января, 2012, 17:30:57
наутилус не заедает