Nano Hash - криптовалюты, майнинг, программирование

vi или vim не запускаются после обновления Cygwin

ОС: Windows 10 Pro

Установка Cygwin: 2.889 (64 бит)

ВИМ: 8.0.1567-1

терминал: мятный 2.8.4

сигвин: 2.10.0-1

Я обновил пакеты cygwin 09.03.2018, и мне нужно было перезапустить ОС, чтобы завершить обновление. Но некоторые службы работали, поэтому я не перезагружался в то время. На следующий день я перезагрузил Windows, но обнаружил, что команда vi/vim больше не отвечает. Даже я пытался ввести vi, vim или vi -V, vim -v, vim text.txt, терминал ничего не ответил.

$ vi

$

Я проверил, что vi и vim все еще существуют.

$ ls -l `which vi vim`
-rwxr-xr-x 1 bobchang None 1014803 三月  5 13:30 /usr/bin/vi
-rwxr-xr-x 1 bobchang None 2645011 三月  5 13:30 /usr/bin/vim

Я проверил setup.log vim, он был стерт и установлен.

2018/03/09 13:31:12    0   erase                    gvim          8.0.1567-1
2018/03/09 13:31:12    1 install                    gvim          8.0.1567-1
2018/03/09 13:31:12    2   erase                    vim          8.0.1567-1
2018/03/09 13:31:12    3 install                    vim          8.0.1567-1
2018/03/09 13:31:12    4   erase                    vim-common          8.0.1567-1
2018/03/09 13:31:12    5 install                    vim-common          8.0.1567-1
2018/03/09 13:31:12    6   erase                    vim-doc          8.0.1567-1
2018/03/09 13:31:12    7 install                    vim-doc          8.0.1567-1
2018/03/09 13:31:12    8   erase                    vim-minimal          8.0.1567-1
2018/03/09 13:31:12    9 install                    vim-minimal          8.0.1567-1
2018/03/09 13:31:17 running: C:\cygwin64\bin\bash.exe --norc --noprofile "/etc/preremove/vim.sh"
2018/03/09 13:31:17 Uninstalling gvim
2018/03/09 13:31:17 Uninstalling vim
2018/03/09 13:31:17 Uninstalling vim-common
2018/03/09 13:31:18 Uninstalling vim-doc
2018/03/09 13:31:19 Uninstalling vim-minimal

Я вручную удалил и установил vim с соответствующим пакетом, но беспомощен.

Кто-нибудь знает, как решить эту проблему или как отладить, чтобы найти решение?

Обновить Результат cygcheck vim:

Found: C:\cygwin64\bin\vim.exe
Found: C:\Program Files (x86)\Vim\vim74\vim.exe
Found: C:\cygwin64\bin\vim.exe
C:\cygwin64\bin\vim.exe
  C:\cygwin64\bin\cygwin1.dll
    C:\WINDOWS\system32\KERNEL32.dll
      C:\WINDOWS\system32\ntdll.dll
      C:\WINDOWS\system32\KERNELBASE.dll
        C:\WINDOWS\system32\api-ms-win-eventing-provider-l1-1-0.dll
      C:\WINDOWS\system32\api-ms-win-core-processthreads-l1-1-1.dll
      C:\WINDOWS\system32\api-ms-win-core-synch-l1-2-0.dll
      C:\WINDOWS\system32\api-ms-win-core-file-l1-2-0.dll
      C:\WINDOWS\system32\api-ms-win-core-timezone-l1-1-0.dll
      C:\WINDOWS\system32\api-ms-win-core-localization-l1-2-0.dll
      C:\WINDOWS\system32\api-ms-win-core-file-l2-1-0.dll
      C:\WINDOWS\system32\api-ms-win-core-xstate-l2-1-0.dll
  C:\cygwin64\bin\cygiconv-2.dll
  C:\cygwin64\bin\cygintl-8.dll
  C:\cygwin64\bin\cygncursesw-10.dll
  C:\WINDOWS\system32\USER32.dll
    C:\WINDOWS\system32\win32u.dll
    C:\WINDOWS\system32\GDI32.dll

Результат strace /usr/bin/vim равен The procedure entry point __memcpy_chk could not be located in the dynamic link library C:\cygwin64\bin\vim.exe.

$ strace /usr/bin/vim
--- Process 5056 created
--- Process 5056 loaded C:\Windows\System32\ntdll.dll at 00007ffed9350000
--- Process 5056 loaded C:\Windows\System32\kernel32.dll at 00007ffed8e10000
--- Process 5056 loaded C:\Windows\System32\KernelBase.dll at 00007ffed6510000
--- Process 5056 thread 10048 created
--- Process 5056 thread 2488 created
--- Process 5056 thread 212 created
--- Process 5056 loaded C:\Windows\System32\user32.dll at 00007ffed8bc0000
--- Process 5056 loaded C:\cygwin64\bin\cygiconv-2.dll at 00000003f4050000
--- Process 5056 loaded C:\cygwin64\bin\cygwin1.dll at 0000000180040000
--- Process 5056 loaded C:\Windows\System32\win32u.dll at 00007ffed59e0000
--- Process 5056 loaded C:\Windows\System32\gdi32.dll at 00007ffed8390000
--- Process 5056 loaded C:\cygwin64\bin\cygncursesw-10.dll at 00000003f3430000
--- Process 5056 loaded C:\cygwin64\bin\cygintl-8.dll at 00000003f3fa0000
--- Process 5056 loaded C:\Windows\System32\gdi32full.dll at 00007ffed5a50000
--- Process 5056 loaded C:\Windows\System32\msvcp_win.dll at 00007ffed6780000
--- Process 5056 loaded C:\Windows\System32\ucrtbase.dll at 00007ffed57d0000
--- Process 5056 thread 212 exited with status 0x0
--- Process 5056 thread 10048 exited with status 0x0
--- Process 5056 thread 2488 exited with status 0x0
--- Process 5056, exception c0000139 at 00007ffed9352b10
--- Process 5056 exited with status 0xc0000139
12.03.2018

  • каков результат cygcheck vim ? Если об ошибке не сообщается, вы также можете запустить strace /usr/bin/vim, чтобы увидеть, есть ли несоответствие в необходимых библиотеках. 12.03.2018
  • @matzeri Большое спасибо. Я обновил свой вопрос, и вы можете увидеть результат двух команд. И вы правы, есть сообщение об ошибке, но я не знаю, как это исправить (я тоже этого не понимаю). 13.03.2018

Ответы:


1

__memcpy_chk принадлежит cygwin1.dll

Он был добавлен в последнем выпуске
https://www.cygwin.com/ml/cygwin-announce/2018-02/msg00002.html

Переустановите пакет cygwin, так как кажется, что он был неправильно обновлен.

13.03.2018
  • Удивительно! Я переустановил пакет cygwin, и теперь vim работает нормально. Большое тебе спасибо. 13.03.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..