Ubuntu的软件包可能已经很旧了,但是对于某些桌面程序(例如Vim),我宁愿拥有最新版本,因为较新的版本通常会修复各种错误。
如何在Ubuntu上获得合理的Vim版本?
Ubuntu的软件包可能已经很旧了,但是对于某些桌面程序(例如Vim),我宁愿拥有最新版本,因为较新的版本通常会修复各种错误。
如何在Ubuntu上获得合理的Vim版本?
Answers:
您有三种不同的选择:
如果等待几年对您不利,那么您可以选择以下两种选择:
在后两种情况下,以下是这些选项的过程:
这是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
)。
sudo apt-get build-dep vim
使用起来更简单。否则,我会添加一条注释,--prefix
因为并非所有人都具有root特权,这是很常见的。
apt-get build-dep vim
您的意思是在PPA安装的最后一步中使用它,对吗?现在,关于--prefix
这的确确实是要添加的重要说明:是--prefix=/usr
建议的安全场所还是您会推荐另一个目录(例如--prefix=~/bin
)?
build-dep
命令可以代替使用sudo apt-get install libncurses5-dev ....
。关于--preffix
它的典型用法是:--prefix=$HOME
,但是最近我一直在使用--prefix=$HOME/local/vim
。这样,卸载软件是那么容易,因为一个rm -r
和消除一对情侣在行.profile
/.bashrc
prefix
。因为build-dep
我不得不说我对这个命令不太熟悉,所以恐怕我无法正确理解:根据我的理解,apt-get build-dep vim
将为该软件包安装依赖项vim
。但是这里由于我们在软件包源中没有最新的vim软件包(因为我们是从源中构建的),该命令将如何安装正确的依赖项?如果我试图从源代码构建Vim8,并且我的软件包列表中包含vim7.4,apt-get build-dep vim
是否可以安装vim7.4的依赖项?(抱歉,我现在无法测试)
#!/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
另一个选择是在Linix上安装Homebrew作为备用软件包管理器,并使用它通过以下方式安装最新的vim:
brew install vim
自制功能: