Emacs 24.3 для windows, байт-код барабана: не удалось найти правильную команду `ls '
24.2 работает хорошо, но 24.3 ограниченный tramp получил следующую ошибку при открытии удаленных системных файлов или каталогов Linux:
"byte-code: Couldn't find a proper `ls' command"
Я открываю трассировку tramp и обнаруживаю, что все удаленные пути поиска и путь к файлу расширяются на что-то, добавляя в начале дополнительные "c:". Результатом является то, что tramp не может найти ни команду, ни файл, который я хочу открыть.
16:04:51.768000 tramp-get-connection-property (7) # process-buffer nil
16:04:51.769000 tramp-set-file-property (8) # c:/bin file-directory-p nil
16:04:51.770000 tramp-get-file-property (8) # c:/usr/bin file-directory-p undef
...
16:04:59.531000 tramp-sh-handle-file-truename (5) # Check /c:
16:04:59.532000 tramp-get-file-property (8) # c:/c: file-attributes-integer undef
...
16:04:51.773000 tramp-get-connection-property (7) # process-name nil
16:04:51.773000 tramp-get-connection-property (7) # chunksize 0
16:04:51.773000 tramp-set-connection-property (7) # last-cmd-time (20809 28067 773000 0)
16:04:51.774000 tramp-send-string (10) # test -d c\:/usr/bin 2>/dev/null; echo tramp_exit_status $?
Кто-нибудь знает об этом? Спасибо заранее.
Ответы
Ответ 1
У меня была такая же проблема после переключения на Emacs 24.3. Решением было обновление до последней версии Tramp 2.2.7. Вот что я сделал:
- загружен http://ftp.gnu.org/gnu/tramp/tramp-2.2.7.tar.gz
- распаковали архив в папку ~/.emacs.d/src. Я использую emacs-starter-kit, который добавляет этот каталог и все его подкаталоги в путь загрузки. В противном случае следуйте инструкциям в файле Tramp INSTALL.
- используется Cygwin bash для настройки и компиляции файлов. Я не использую Cygwin Emacs нормально, но удобно иметь его для таких случаев.
- удалил старые файлы tramp el и elc в emacs/ lisp/net для обеспечения безопасности.
- конечно, перезапустили Emacs.
Сделайте M-x tramp-версию, чтобы убедиться, что она установлена правильно. Теперь бродяга работает повсюду (устно, неэшелл, оболочка и т.д.).
Ответ 2
Объединив ответ от @AlanThird и комментарий от @uscjeremy, вот что сработало для меня (GNU Emacs 24.3.1 (i386-mingw-nt5.1.2600 ) 2013-03-17 на MARVIN, Windows XP/SP3/32):
-
Байт компилирует tramp-sh.el
(соответственно адаптировать путь):
(byte-compile-file "C:/Program Files (X86)/emacs/lisp/net/tramp-sh.el")
-
Выход из Emacs.
-
Удалить кеш Tramp: ~/.emacs.d/tramp
-
Запустите Emacs.
См. также отчет об ошибке # 14030 на gnu.org.
Ответ 3
Кажется, это ошибка в tramp, но вам не нужно обновлять tramp, все, что вам нужно сделать, это перекомпилировать tramp-sh.el в окне Windows. Подробнее см. Отчет об ошибке здесь.
Введите это в буфер нуля:
(byte-compile-file "C:/Program Files/emacs/lisp/net/tramp-sh.el")
настройка пути в соответствии с вашей установкой, затем введите Ctrl-Meta-x, чтобы перекомпилировать файл. Если он жалуется на разрешения, вам может потребоваться перезапустить emacs, используя параметр "запустить как администратор" в Windows.
Как только файл перекомпилирует тип M-x tramp-cleanup-all-connections, чтобы reset использовать кеш-троп. Это закроет любые открытые tramp соединения.
Ответ 4
Использование eval-expression
с (byte-compile-file ..)
не сработало для меня, но следующее:
- Откройте emacs как администратор (щелкните правой кнопкой мыши по кнопке emacs на панели задач, щелкните правой кнопкой мыши по значку emacs в появившемся всплывающем окне, нажмите "Запуск от имени администратора" )
- Используйте Alt-X для выполнения компиляции, а не eval-выражения:
M-x byte-compile-file
: c:/Program Files/emacs-24.3/lisp/net/tramp-sh.el
- Введите
tramp-cleanup-all-connections
в исходное окно emacs, затем снова попробуйте открыть удаленный файл.