代码之家  ›  专栏  ›  技术社区  ›  Babu

更新Cygwin后vi或vim未启动

  •  1
  • Babu  · 技术社区  · 6 年前

    操作系统:Windows 10 Pro

    Cygwin设置:2.889(64位)

    vim:8.0.1567-1

    端子:mintty 2.8.4

    cygwin:2.10.0-1

    我于2018年3月9日更新了cygwin软件包,需要重启操作系统才能完成更新。但有些服务正在运行,所以我当时没有重新启动。第二天,我重新启动了windows,但发现vi/vim命令不再响应。甚至我也尝试输入vi,vim或vi-V,vim-V,vim文本。txt终端仅响应nothing。

    $ 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
    

    我检查了设置。已删除并安装日志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
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   matzeri    6 年前

    __memcpy_chk 属于 cygwin1.dll

    它是在上一版本中添加的
    https://www.cygwin.com/ml/cygwin-announce/2018-02/msg00002.html

    重新安装 cygwin 软件包似乎没有正确升级。