更新替代:错误:/var/lib/dpkg/alternatives/vim 损坏:无效状态

MD-*_*D-7 4 vim package-management apt dpkg

每当我尝试使用 apt-get 安装、更新或执行任何操作时,我总是收到与此类似的错误消息,抱怨 vim:

0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
Setting up vim (2:7.3.154+hg~74503f6ee649-2ubuntu3.1) ...
update-alternatives: error: /var/lib/dpkg/alternatives/vim corrupt: invalid status
dpkg: error processing vim (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 vim
Run Code Online (Sandbox Code Playgroud)

不完全确定这里发生了什么。我的假设是某些东西被 vim 损坏了?这是我尝试解决的问题:

  1. 卸载 vim ( sudo apt-get remove vim) - 删除失败并返回与上述类似的错误。
  2. sudo apt-get purge vim - 失败,同样的错误。
  3. 删除/var/lib/dpkg/alternatives/vim错误消息中提到的文件,然后再次尝试删除/清除 - 删除/清除仍然失败,但不是:

    update-alternatives: error: /var/lib/dpkg/alternatives/vim corrupt: invalid status
    
    Run Code Online (Sandbox Code Playgroud)

    取而代之的是:

    update-alternatives: error: /var/lib/dpkg/alternatives/vimdiff corrupt: line not terminated while trying to read status
    
    Run Code Online (Sandbox Code Playgroud)
  4. 再次安装 vim - 失败,同样的错误。

  5. sudo apt-get clean && sudo apt-get autoremove- 失败,同样的错误。
  6. sudo apt-get install --fix-broken - 失败,同样的错误。

这有点烦人。vim 不会死。怎么了?我究竟做错了什么?我该如何解决?

帮助将不胜感激。

**编辑**

按照要求:

的输出LC_MESSAGES=C update-alternatives --query vim

Link: vim
Status: auto
Best: /usr/bin/vim.basic
Value: /usr/bin/vim.basic

Alternative: /usr/bin/vim.basic
Priority: 30
Run Code Online (Sandbox Code Playgroud)

内容/var/lib/dpkg/alternatives/vimdiff

b0VIM 7.3Ýroot
Run Code Online (Sandbox Code Playgroud)

无法获取/var/lib/dpkg/alternatives/vim 的内容,因为我删除了它,哈哈对不起。

Dav*_*ter 5

替代条目无可救药地被破坏了。

  1. 您应该使用以下方法删除它们:

    sudo update-alternatives --remove-all vim
    sudo rm -f /etc/alternatives/vim /var/lib/dpkg/alternatives/vim
    
    Run Code Online (Sandbox Code Playgroud)

    如果update-alternatives再次抱怨损坏的文件,请忽略它并使用下一个命令继续删除它们。

  2. 然后重新安装他们的软件包:

    sudo apt-get install --reinstall vim
    
    Run Code Online (Sandbox Code Playgroud)

    这将根据您系统上可用的软件包恢复替代条目。

  3. vimdiff,rvim和其他损坏的条目进行类似的处理。