Como posso obter uma versão mais recente do Vim no Ubuntu?


34

Os pacotes do Ubuntu podem ser bem antigos, mas para alguns programas de desktop (como o Vim) eu prefiro ter a versão mais recente, pois as versões mais recentes geralmente corrigem vários bugs.

Como posso obter uma versão Vim razoavelmente recente no Ubuntu?


Talvez o PPA de Jonathonf possa funcionar para você. Mas é melhor se você estiver usando o Ubuntu 16.04, porque ele diz "A partir de 24 de outubro, estarei empacotando apenas para o 14.04 se for uma atualização fácil".
Joeytwiddle #

4
@joeytwiddle O problema dos PPAs é que você confia no Random Stranger From Internet ™ com acesso root ao seu sistema, o que talvez não seja uma boa idéia, dependendo de seus requisitos de segurança e nível de paranóia (consulte: O PPA é seguro para adicionar ao meu sistema e quais são algumas das "bandeiras vermelhas" a serem observadas? e Existe alguma garantia de que o software dos PPAs do Launchpad esteja livre de vírus e ameaças de backdoor? ).
Martin Tournoij

Respostas:


49

Você tem três opções diferentes:

  • Aguarde até que as versões mais recentes sejam adicionadas aos pacotes de distribuição. Observe que você pode aprender um novo idioma ou construir um navio com as próprias mãos enquanto espera.

Se esperar vários anos não é bom para você, você tem as duas opções a seguir:

  • Use um PPA contendo a versão mais recente:
    • Prós:
      • Fácil de fazer.
      • Totalmente automatizado.
      • Permite instalar o Vim como qualquer outro software.
    • Contras:
      • Você basicamente concede privilégios de root a um completo estranho.
      • Este método funciona apenas no Ubuntu e nas distribuições derivadas usando o sistema PPA.
  • Crie o Vim a partir de fontes:
    • Prós:
      • Você obtém um ajuste fino das opções ativadas (gui, suporte a Python / Lua, etc.).
      • Você obtém a versão mais avançada e não precisa de nenhum mantenedor de terceiros para obtê-la.
      • É sempre útil aprender como compilar um software a partir de fontes.
      • Este é um método independente de distribuição.
    • Contras:
      • Não é tão automatizado quanto a opção PPA.
      • Pode ser assustador para um novo usuário.

Nos dois últimos casos, aqui está um procedimento para essas opções:


PPA

Aqui está um tutorial on-line no tipsonubuntu.com (Obrigado @joeytwiddle, que o sugeriu nos comentários).

Primeiro abra um terminal e use o seguinte comando. Isso adicionará o PPA (Personal Packet Archive) mantido por joathonf aos seus repositórios e permitirá que o Ubuntu saiba onde procurar pelo Vim:

sudo add-apt-repository ppa:jonathonf/vim

Repetirei aqui que, ao fazer isso, concedemos privilégios de root aos scripts deste PPA, faça-o apenas se você confiar nele . Você pode querer ler se os PPAs são seguros para adicionar ao meu sistema e quais são algumas das "bandeiras vermelhas" a serem observadas? e existe alguma garantia de que o software dos PPAs do Launchpad esteja livre de vírus e ameaças de backdoor? .

Atualize a lista de pacotes para que o Ubuntu procure no PPA para encontrar os arquivos Vim:

sudo apt update

Por fim, instale o vim:

sudo apt install vim

E tada! O Vim está instalado. Observe que você também pode fazer isso no gerenciador de pacotes da GUI.

Note-se que esta não é a única PPA disponível com as versões mais recentes do Vim, você pode usar o seu motor de busca preferido para encontrar mais (e fazer lembre-se você está confiando em algum estranho a partir da Internet com acesso root para seu sistema).


Construindo a partir de fontes

Uma segunda opção é construir o Vim a partir de fontes. Isso implica alguma manipulação adicional e pode ser assustador para um novo usuário, mas é a melhor maneira de obter a compilação duradoura.

Existem vários recursos online para guiá-lo através deste procedimento:

Um procedimento geral é o seguinte, você pode precisar ajustá-lo para atender às suas necessidades, mas a idéia principal está aqui:

Primeiro, você pode precisar instalar algumas dependências. Por exemplo, use este comando (sugerido pelo wiki do YouCompleteMe):

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

Observe que talvez você não precise de tudo: por exemplo, se você não usar Lua, não inclua lua5.1-devna lista .

Editar Em vez de usar o apt-get installcomando anterior, você pode usar o seguinte. Tem a vantagem de lidar automaticamente com as dependências necessárias:

sudo apt-get build-dep vim

Em seguida, obtenha as fontes no seu computador (você precisará do gitcomando instalado apt-get install git):

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

Vá para este diretório e 'puxe' as últimas alterações:

cd vim
git pull

Se você tiver um erro git pullporque já fez alterações, poderá "esconder" suas modificações (por exemplo, removê-las temporariamente), puxe as alterações e restaure as modificações. Se você fez isso, assumirei que você está familiarizado com o git e não fornecerá o procedimento a seguir (é detalhado no documento vim.org).

Você pode criar o Vim como qualquer outro software a partir das fontes. O arquivo src / INSTALL deve fornecer as informações necessárias para compilar o Vim.

Um fluxo de trabalho regular começaria com:

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

Remova --enable-guise você não quiser o gVim .

Se você não possui acesso root na máquina em que está instalando o Vim, convém adicionar a --prefixopção que permite usar um diretório no qual você tem direitos de acesso. Por exemplo, você pode usar:

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

O configurescript pode levar muitos argumentos para ajustar quais recursos você deseja ativar. A execução demora um pouco. Durante a execução, ele imprime mensagens informando quais recursos está verificando.

Uma vez configurado, você pode compilar o programa com:

make

Existe um comando opcional para executar algumas autoverificações ( não me pergunte o que eles fazem exatamente, eu sempre os pulo :-) ):

make check

Por fim, instale o Vim em /usr/local/(este comando requer os privilégios de root):

sudo make install

Para remover os arquivos agora inúteis que foram criados para a compilação, você pode executar:

make clean
make distclean

E aqui você está com uma nova instalação do Vim.

Você provavelmente desejará remover qualquer Vim instalado no repositório Ubuntu, mas não precisará . Por padrão, o Vim instalará no /usr/local/, em vez de /usr/. Apenas verifique se você está executando a versão correta do Vim (por exemplo /usr/local/bin/vim, e não /usr/bin/vim).


11
Em relação às dependências, sudo apt-get build-dep vimé ainda mais simples de usar. Caso contrário, eu acrescentaria uma observação sobre --prefixcomo nem todos temos privilégios de root, o que é bastante comum.
Luc Hermitte

@LucHermitte, obrigado por essas sugestões. Em relação a apt-get build-dep vimvocê pretender usá-lo na última etapa da instalação do PPA, certo? Agora, --prefixisso é realmente uma observação importante a acrescentar: é --prefix=/usrum local seguro para aconselhar ou você recomendaria outro diretório (por exemplo --prefix=~/bin)?
statox

O build-depcomando pode ser usado em vez de sudo apt-get install libncurses5-dev ..... Em relação --preffix, seu uso típico é --prefix=$HOME:, mas ultimamente estou usando --prefix=$HOME/local/vim. Desta forma, a desinstalação de um software é tão fácil como rm -re remoção de um par de linhas no .profile/.bashrc
Luc Hermitte

@LucHermitte Ok for prefix. Pois build-depeu tenho que dizer que não conheço esse comando, por isso tenho medo de não entender direito: Pelo que entendi apt-get build-dep vim, instalariam as dependências do pacote vim. Mas aqui, como não temos o pacote vim mais novo nas fontes de pacotes (já que estamos construindo a partir das fontes), como o comando instalará as dependências corretas? Se estou tentando construir o Vim8 a partir de fontes e minha lista de pacotes contém o vim7.4, apt-get build-dep viminstalará as dependências do vim7.4, certo? (Não posso testá-lo agora, desculpe)
statox

Ele instalará as dependências necessárias para compilar o código-fonte do vim que podemos obter no github. Dessa forma, não precisamos rastrear todas as bibliotecas usadas pelo código-fonte do Vim. Desde que o código fonte que estamos compilando não dependa de uma versão não empacotada de uma biblioteca, isso é perfeitamente aceitável.
Luc Hermitte

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
Bem vindo ao site! Pode ser útil descrever o que é isso, o que faz e como usá-lo. Nem todo mundo que lê isso conhece os comandos que você usa ou escreve / usa scripts bash, git e gerenciadores de pacotes. Vejo pelas suas edições que você já fez um bom trabalho em outro lugar!
Rich

Para quem sabe o que está fazendo, funciona muito bem, / usr / local / bin / vim está pronto para começar. Seu / usr / bin / vim existente é deixado no local.
rshdev

1

Outra opção é instalar o Homebrew no Linix como um gerenciador de pacotes alternativo e usá-lo para instalar o vim mais recente com:

brew install vim

Recursos do Homebrew:

  • Pode instalar software no diretório inicial e, portanto, não requer sudo
  • Instale o software não fornecido pela sua distribuição host
  • Instale versões atualizadas do software quando a distribuição do host for antiga
  • Use o mesmo gerenciador de pacotes para gerenciar seus sistemas macOS, Linux e Windows

Bem-vindo ao nosso site David! Tenho problemas para ver como o homebrew resolve esse problema: Os repositórios do homebrew estão mais atualizados que os do apt?
statox

@statox Sim, os repositórios de homebrew são geralmente a versão mais recente.
David Hatch

Ok, bom saber :)
statox
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.