如何在Ubuntu上获得较新版本的Vim?


34

Ubuntu的软件包可能已经很旧了,但是对于某些桌面程序(例如Vim),我宁愿拥有最新版本,因为较新的版本通常会修复各种错误。

如何在Ubuntu上获得合理的Vim版本?


也许jonathonf的PPA可能对您有用。但是,如果您使用的是Ubuntu 16.04,那就更好了,因为他说:“从10月24日开始,如果这是一个简单的更新,我将只打包14.04。”
joeytwiddle

4
@joeytwiddle PPA的问题是,您信任具有根访问系统权限的Internet™随机陌生人,根据您的安全要求和偏执程度,这可能不是一个好主意(请参阅:PPA是否安全?添加到我的系统,什么是一些“红旗”要提防?是否有任何保证,从Launchpad中的PPA软件免受病毒和后门威胁免费的吗?)。
马丁·图尔诺伊

Answers:


49

您有三种不同的选择:

  • 等待最新版本添加到分发包中。请注意,在等待时,您可能想学习一种新语言或徒手造船。

如果等待几年对您不利,那么您可以选择以下两种选择:

  • 使用包含最新版本的PPA:
    • 优点:
      • 容易做。
      • 完全自动化。
      • 让您像其他任何软件一样安装Vim。
    • 缺点:
      • 您基本上将root特权授予了一个完全陌生的人。
      • 此方法仅适用于Ubuntu和使用PPA系统的派生发行版。
  • 从源代码构建Vim:
    • 优点:
      • 您可以对启用的选项(gui,Python / Lua支持等)进行微调。
      • 您可以获得最新版本,不需要任何第三方维护者即可获得它。
      • 学习如何从源代码编译软件总是很有用的。
      • 这是一种与分布无关的方法。
    • 缺点:
      • 不像PPA选项那样自动化。
      • 对于新用户可能会感到恐惧。

在后两种情况下,以下是这些选项的过程:


PPA

这是tiponubuntu.com上的在线教程(感谢@joeytwiddle在评论中提出建议)。

首先打开一个终端并使用以下命令。这会将joathonf维护的Personal Packet Archive(PPA)添加到您的存储库中,并让Ubuntu知道在哪里寻找Vim:

sudo add-apt-repository ppa:jonathonf/vim

在此我将重复说明,这样做可以赋予该PPA中脚本的root特权,只有在您信任它的情况下才可以这样做。您可能想阅读PPA可以安全地添加到我的系统中,需要注意哪些“危险信号”?没有任何保证,从Launchpad中的PPA软件免受病毒和后门威胁免费的吗?

更新数据包列表,以便Ubuntu可以在PPA中查找Vim文件:

sudo apt update

最后安装vim:

sudo apt install vim

和田田!Vim已安装。请注意,您也可以从GUI软件包管理器中执行此操作。

请注意,这不是较新的Vim版本可用的唯一PPA,您可以使用自己喜欢的搜索引擎查找更多信息(并且记住,您信任Internet上具有系统访问权限的某些陌生人)。


从源头建造

第二种选择是从源代码构建Vim。这意味着需要进行一些额外的操作,并且可能会使新用户感到恐惧,但这是获得持久构建的最佳方法。

有一些在线资源可以指导您完成此过程:

下面是一个常规过程,您可能需要对其进行调整以满足自己的需求,但是主要思想在这里:

首先,您可能需要安装一些依赖项。例如,使用以下命令(由YouCompleteMe Wiki建议):

sudo apt-get update
sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \
    libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \
    libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \
    python3-dev ruby-dev lua5.1 lua5.1-dev libperl-dev git

请注意,您可能不需要所有内容:例如,如果您不使用Lua,请不要lua5.1-dev将其包括在列表中

编辑apt-get install可以使用以下命令代替使用上一个命令。它具有自动处理所需依赖项的优势:

sudo apt-get build-dep vim

然后在您的计算机上获取源代码(您需要git安装的命令apt-get install git):

git clone https://github.com/vim/vim.git

转到此目录并“拉”最近的更改:

cd vim
git pull

如果git pull由于已进行更改而出现错误,则可以“存储”您的修改(即临时删除它们),拉出更改,然后恢复您的修改。如果您这样做了,我将假设您熟悉git,并且不会提供要遵循的步骤(有关详细信息,请参见vim.org文档)。

然后可以像从源代码构建任何其他软件一样构建Vim。文件src / INSTALL应该为您提供编译Vim所需的信息。

常规的工作流程将从以下内容开始:

./configure --with-features=huge --enable-gui=auto

--enable-gui如果您不需要gVim,请将其删除

如果在安装Vim的计算机上没有root用户访问权限,则可能需要添加该--prefix选项,该选项允许您使用具有访问权限的目录。例如,您可以使用:

./configure --with-features=huge --enable-gui=auto --prefix=$HOME/local/vim

configure脚本可以使用很多参数来调整要启用的功能。运行需要一段时间。在运行时,它会打印消息,告知正在检查的功能。

配置完成后,可以使用以下命令编译程序:

make

存在一个可选命令来运行一些自检(不要问我它们到底做了什么,我总是跳过它们:-)):

make check

最后安装Vim到/usr/local/(此命令需要root特权):

sudo make install

要删除现在为编译创建的无用文件,可以运行:

make clean
make distclean

在这里,您将获得全新的Vim安装。

你可能会想删除你从Ubuntu的安装回购任何Vim的,但你并不需要到。默认情况下,Vim将安装到/usr/local/,而不是/usr/。只要确保您运行的是正确的Vim版本(即/usr/local/bin/vim,而不是/usr/bin/vim)。


1
关于依赖关系,sudo apt-get build-dep vim使用起来更简单。否则,我会添加一条注释,--prefix因为并非所有人都具有root特权,这是很常见的。
卢克·赫米特

@LucHermitte感谢您的建议。关于apt-get build-dep vim您的意思是在PPA安装的最后一步中使用它,对吗?现在,关于--prefix这的确确实是要添加的重要说明:是--prefix=/usr建议的安全场所还是您会推荐另一个目录(例如--prefix=~/bin)?
statox

build-dep命令可以代替使用sudo apt-get install libncurses5-dev ....。关于--preffix它的典型用法是:--prefix=$HOME,但是最近我一直在使用--prefix=$HOME/local/vim。这样,卸载软件是那么容易,因为一个rm -r和消除一对情侣在行.profile/.bashrc
吕克Hermitte

@LucHermitte好的prefix。因为build-dep我不得不说我对这个命令不太熟悉,所以恐怕我无法正确理解:根据我的理解,apt-get build-dep vim将为该软件包安装依赖项vim。但是这里由于我们在软件包源中没有最新的vim软件包(因为我们是从源中构建的),该命令将如何安装正确的依赖项?如果我试图从源代码构建Vim8,并且我的软件包列表中包含vim7.4,apt-get build-dep vim是否可以安装vim7.4的依赖项?(抱歉,我现在无法测试)
statox

它将安装我们需要的依赖项,以便编译可以从github获得的vim源代码。这样,我们无需跟踪Vim源代码使用的所有库。只要我们正在编译的源代码不依赖于库的非打包版本,就可以了。
卢克·赫米特

2
#!/usr/bin/env bash

sudo apt update

sudo apt install -y git

sudo apt install -y build-essential

rm -fr /tmp/vim

git clone https://github.com/vim/vim.git /tmp/vim

make -C /tmp/vim

sudo make install -C /tmp/vim 

rm -fr /tmp/vim

5
欢迎光临本站!描述这是什么,做什么以及如何使用它可能会有所帮助。并非所有阅读本文的人都会熟悉您使用或编写/使用bash脚本,git和程序包管理器的命令。从您的编辑中可以看出,您在其他地方已经做得很好!
Rich

对于那些知道它在做什么的人来说,它很好用,/ usr / local / bin / vim很快就可以使用了。现有的/ usr / bin / vim保留在原位。
rshdev

1

另一个选择是在Linix上安装Homebrew作为备用软件包管理器,并使用它通过以下方式安装最新的vim:

brew install vim

自制功能:

  • 可以将软件安装到您的主目录,因此不需要sudo
  • 安装主机发行版未打包的软件
  • 当您的主机发行版旧时,安装最新版本的软件
  • 使用同一软件包管理器来管理您的macOS,Linux和Windows系统

欢迎来到我们的网站David!我很难看到自制软件如何解决此问题:自制软件存储库是否比apt的存储库更新?
statox

@statox是的,自制软件存储库通常是最新版本。
David Hatch

好的,很高兴知道:)
statox
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.