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 损坏了?这是我尝试解决的问题:
sudo apt-get remove vim) - 删除失败并返回与上述类似的错误。sudo apt-get purge vim - 失败,同样的错误。删除/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)再次安装 vim - 失败,同样的错误。
sudo apt-get clean && sudo apt-get autoremove- 失败,同样的错误。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 的内容,因为我删除了它,哈哈对不起。
替代条目无可救药地被破坏了。
您应该使用以下方法删除它们:
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再次抱怨损坏的文件,请忽略它并使用下一个命令继续删除它们。
然后重新安装他们的软件包:
sudo apt-get install --reinstall vim
Run Code Online (Sandbox Code Playgroud)
这将根据您系统上可用的软件包恢复替代条目。
对vimdiff,rvim和其他损坏的条目进行类似的处理。