我按照 YouCompleteMe 的说明从源代码构建 Vim:https://github.com/ycm-core/YouCompleteMe/wiki/Building-Vim-from-source
成功了。但现在,每次我重启电脑时,旧版 Vim 都会重新安装,尽管我apt uninstall vim
每次都运行。这需要转到包含 .deb 文件的目录,运行apt install ./vim_20201226-1_amd64.deb
,然后运行hash vim
。如何避免每次电脑启动时都执行此操作?
另外,每次我安装升级版的 Vim 时,dpkg 都会给我一个警告:dpkg: warning: downgrading vim from 2:8.1.0875-5 to 20201226-1
。事实并非如此:我正在将 Vim 升级到 8.2.2223,因为 YouCompleteMe 至少需要 v8.1.2269。
我正在运行 Debian Buster。
答案1
apt
将尝试升级,vim
因为 Debian 存储库中的可用版本比通过 安装的版本更新dpkg
。
为了防止apt
升级单个包vim
,您可以使用:
sudo apt-mark hold vim
man apt-mark
:
hold
hold is used to mark a package as held back, which will prevent the package from being
automatically installed, upgraded or removed.
答案2
我认为这个警告可能只是一个警告,而且是错误的:
dpkg: warning: downgrading vim from 2:8.1.0875-5 to 20201226-1
在 ASCII 中,“:” 是十进制 58,“0” 是十进制 48。
因此,如果打包通过在每个“。”或“-”处剪切版本字符串来比较版本,则以“2:”开头的字符串将被视为比以“20”开头的字符串“更高”(因此是“更新”的版本)
看起来包装系统正确更新到了最新版本 20201226-1(可能是因为它使用了另一种机制来检查哪个版本更新,例如它的发布日期?),但是在升级时,包装系统通过按“字母顺序”比较版本来宣布更改,并认为从“2:8.1.0875-5”到“20201226-1”是“降级”(尽管事实并非如此:您实际上正在将 vim 更新到最新的包装版本)
它安装的版本应该满足您的要求(它比您手动安装的版本更新),除非您需要修改用例的源代码?(或者除非某些东西也认为由于相同的词典比较,这个新版本“低于”所需的版本?)