我有以下问题。
最近我安装了vim(这是我自己编译的,因为 Ubuntu 存储库中的版本太旧了)。我用它安装了范围和你成就了我插件。
现在每次 Ubuntu 检查更新时,它都会“升级”我的vim和vim 你完成我插件停止工作(因为它实际上降低了我的vim...)。
我该如何告诉 Ubuntu 不要管它自己的事,不要“升级”我的vim?我不想每次系统更新时都取消选择复选框……
更新:我已经安装vim使用此处提供的步骤:https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
答案1
要保留已安装的版本,请运行以下命令以防止包管理器在将来自动更新它终端:
echo "<packagename> hold" | sudo dpkg --set-selections
<packagename>
使用您想要的包进行更改(在您的情况下可能是vim
)。
答案2
您可以设置包抓住。
抓住— 标记为暂停的软件包不会由 dpkg 处理,除非使用选项强制执行--强制保持。
基本上,暂停的软件包将不会被升级(或如 apt 所说:将被“保留”)。
这是暂停任何包裹的简单方法。
- 通过运行获取包的选择状态
dpkg --get-selections >selections.txt
- 编辑
selections.txt
文件并搜索您不想更新的软件包名称。将第二列中的状态文本从 替换为install
。hold
保存文件。 - 通过运行应用您的自定义选择
sudo dpkg --set-selections <selections.txt
。
现在运行sudo apt-get upgrade
,该包就不再升级了。
答案3
dpkg-hold 工具的作用与@lgarzo 描述的相同,但方式更方便。您可以使用 安装它sudo apt-get install dlocate
。然后运行sudo dpkg-hold packagename
它就会变成 hold。
答案4
一个可能更好的解决方案是首先不要在 Ubuntu 包管理器安装的现有二进制文件上安装 vim。这始终是一个坏主意,迟早会给你带来麻烦。
/usr/bin
中的文件/usr/lib
由 Ubuntu 管理,如果您希望它管好自己的事,则不应将您的内容放在那里。您可以将自己手工编译的二进制文件放在 中/usr/local
,/opt
甚至可以放在您的主目录中。
说明中有问题的部分是--prefix=/usr
- 删除它应该安装vim
进去/usr/local
- 然后您需要修改其余的说明以考虑新的位置。
(此外,Ubuntu 覆盖了你的二进制文件这一事实表明你vim
在用你的系统覆盖它之前没有删除该系统 - 你链接的说明实际上提到了这一点)