¿Cómo puedo obtener una versión más nueva de Vim en Ubuntu?

34

Los paquetes de Ubuntu pueden ser bastante antiguos, pero para algunos programas de escritorio (como Vim) preferiría tener la última versión, ya que las versiones más nuevas a menudo corrigen varios errores.

¿Cómo puedo obtener una versión de Vim razonablemente reciente en Ubuntu?

Martin Tournoij
fuente
Quizás el PPA de jonathonf podría funcionar para usted. Pero mejor si está usando Ubuntu 16.04, porque dice "A partir del 24 de octubre, solo empacaré para 14.04 si es una actualización fácil".
joeytwiddle
44
@joeytwiddle Sin embargo, lo que pasa con los PPA es que confías en un Random Stranger From The Internet ™ con acceso de root a tu sistema, lo que quizás no sea una gran idea dependiendo de tus requisitos de seguridad y nivel de paranoia (ver: ¿Son seguros los PPA para añadir a mi sistema y cuáles son algunas “señales de alerta” a tener en cuenta? y ¿hay alguna garantía de que el software de Launchpad PPA está libre de virus y amenazas de puerta trasera? ).
Martin Tournoij

Respuestas:

49

Tienes tres opciones diferentes:

  • Espere a que se agreguen las versiones más recientes a los paquetes de distribución. Tenga en cuenta que es posible que desee aprender un nuevo idioma o construir un barco con sus propias manos mientras espera.

Si esperar varios años no es bueno para usted, entonces tiene las siguientes dos opciones:

  • Use un PPA que contenga la última versión:
    • Pros:
      • Fácil de hacer.
      • Totalmente automatizado.
      • Le permite instalar Vim como cualquier otro software.
    • Contras:
      • Básicamente otorgas privilegios de root a un completo desconocido.
      • Este método solo funciona en Ubuntu y las distribuciones derivadas que utilizan el sistema PPA.
  • Construye Vim desde las fuentes:
    • Pros:
      • Obtiene un ajuste fino de las opciones que habilita (gui, soporte de Python / Lua, etc.).
      • Obtiene la versión de última generación y no necesita ningún mantenedor de terceros para obtenerla.
      • Siempre es útil aprender a compilar un software a partir de fuentes.
      • Este es un método agnóstico de distribución.
    • Contras:
      • No tan automatizado como la opción PPA.
      • Puede ser aterrador para un nuevo usuario.

En dos últimos casos, aquí hay un procedimiento para estas opciones:


PPA

Aquí hay un tutorial en línea en tipsonubuntu.com (Gracias @joeytwiddle que lo sugirió en los comentarios).

Primero abra una terminal y use el siguiente comando. Esto agregará el Archivo de paquetes personales (PPA) mantenido por joathonf a sus repositorios y le permitirá a Ubuntu saber dónde buscar Vim:

sudo add-apt-repository ppa:jonathonf/vim

Repetiré aquí que al hacer esto, se otorgan los privilegios de root a los scripts en este PPA, hágalo solo si confía en él . Es posible que desee leer si los PPA son seguros para agregar a mi sistema y ¿cuáles son algunas de las “señales de alerta” a tener en cuenta? y ¿hay alguna garantía de que el software de Launchpad PPA está libre de virus y amenazas de puerta trasera? .

Actualice la lista de paquetes para que Ubuntu busque en el PPA para encontrar los archivos Vim:

sudo apt update

Finalmente instale vim:

sudo apt install vim

Y tada! Vim está instalado. Tenga en cuenta que también puede hacerlo desde el administrador de paquetes de la GUI.

Tenga en cuenta que esta no es la única PPA disponible con las nuevas versiones de Vim, puede utilizar su motor de búsqueda favorito para encontrar más (y hacer recuerde que usted está confiando en un desconocido a través de Internet con acceso de root al sistema).


Construyendo desde fuentes

Una segunda opción es construir Vim desde las fuentes. Esto implica una manipulación adicional y puede ser aterrador para un nuevo usuario, pero es la mejor manera de obtener la construcción duradera.

Existen varios recursos en línea para guiarlo a través de este procedimiento:

Un procedimiento general es el siguiente, es posible que deba ajustarlo para que se ajuste a sus necesidades, pero la idea principal está aquí:

Primero puede que necesite instalar algunas dependencias. Por ejemplo, use este comando (sugerido por 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

Tenga en cuenta que quizás no necesite todo: por ejemplo, si no va a usar Lua, no lo incluya lua5.1-deven la lista .

Editar En lugar de usar el apt-get installcomando anterior , puede usar lo siguiente. Tiene la ventaja de manejar automáticamente las dependencias que necesita:

sudo apt-get build-dep vim

Luego obtenga las fuentes en su computadora (necesitará el gitcomando instalado con apt-get install git):

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

Vaya a este directorio y 'tire' los últimos cambios:

cd vim
git pull

Si tiene un error git pullporque ya realizó cambios, puede 'esconder' sus modificaciones (es decir, eliminarlas temporalmente), extraer los cambios y luego restaurar sus modificaciones. Si lo hizo, supondré que está familiarizado con git y no proporcionará el procedimiento a seguir (se detalla en el documento vim.org).

Luego puede compilar Vim como crearía cualquier otro software a partir de las fuentes. El archivo src / INSTALL debe proporcionarle la información que necesita para compilar Vim.

Un flujo de trabajo regular comenzaría con:

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

Eliminar --enable-guisi no quieres gVim .

Si no tiene acceso de root en la máquina que está instalando Vim, es posible que desee agregar la --prefixopción que le permite usar un directorio donde tiene derechos de acceso. Por ejemplo, podría usar:

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

El configurescript puede tomar muchos argumentos para ajustar qué características desea habilitar. Ejecutarlo lleva un tiempo. Mientras se ejecuta, imprime mensajes que indican qué características está buscando.

Una vez que está configurado, puede compilar el programa con:

make

Existe un comando opcional para ejecutar algunas autocomprobaciones ( no me pregunte qué hacen exactamente, siempre las omito :-) ):

make check

Finalmente instale Vim a /usr/local/(este comando requiere los privilegios de root):

sudo make install

Para eliminar los archivos ahora inútiles que se crearon para la compilación, puede ejecutar:

make clean
make distclean

Y aquí estás con una nueva instalación de Vim.

Probablemente desee eliminar cualquier Vim que haya instalado del repositorio de Ubuntu, pero no es necesario . Por defecto, Vim se instalará en /usr/local/, en lugar de /usr/. Solo asegúrese de estar ejecutando la versión correcta de Vim (es decir /usr/local/bin/vim, y no /usr/bin/vim).

statox
fuente
1
En cuanto a las dependencias, sudo apt-get build-dep vimes aún más sencillo de usar. De lo contrario, habría agregado una nota acerca de --prefixque no todos tenemos privilegios de root, lo cual es bastante común.
Luc Hermitte
@LucHermitte gracias por estas sugerencias. En cuanto a apt-get build-dep vimque quiere usarlo en el último paso de la instalación de PPA, ¿verdad? Ahora, sobre --prefixeso es una nota importante para agregar: ¿es --prefix=/usrun lugar seguro para asesorar o recomendaría otro directorio (por ejemplo --prefix=~/bin)?
statox
El build-depcomando se puede usar en lugar de sudo apt-get install libncurses5-dev ..... En cuanto a --preffix, su uso típico es:, --prefix=$HOMEpero últimamente he estado usando --prefix=$HOME/local/vim. De esta manera, desinstalar un software es tan fácil como rm -reliminar un par de líneas en el .profile/.bashrc
Luc Hermitte
@LucHermitte Ok por prefix. Para build-depTengo que decir que no estoy tan familiarizado con este comando así que me temo que no entiendo correctamente: Por lo que entiendo apt-get build-dep vimque instalaría las dependencias para el paquete vim. Pero aquí, como no tenemos el paquete vim más nuevo en las fuentes de los paquetes (ya que estamos construyendo a partir de las fuentes), ¿cómo instalará el comando las dependencias correctas? Si estoy tratando de construir Vim8 desde las fuentes y mi lista de paquetes contiene vim7.4, apt-get build-dep vim¿instalaré las dependencias de vim7.4, verdad? (No puedo probarlo ahora, lo siento)
statox
Instalará las dependencias que necesitamos para compilar el código fuente de vim que podemos obtener de github. De esta manera, no necesitamos rastrear todas las bibliotecas utilizadas por el código fuente de Vim. Mientras el código fuente que estamos compilando no dependa de una versión no empaquetada de una biblioteca, esto está perfectamente bien.
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
bogdanvlviv
fuente
55
Bienvenido al sitio! Puede ser útil describir qué es esto, qué hace y cómo usarlo. No todos los que lean esto estarán familiarizados con los comandos que usa o escribe / usa scripts de bash, git y administradores de paquetes. ¡Puedo ver por tus ediciones que ya has hecho un buen trabajo al hacerlo en otro lugar!
Rico
Para aquellos que saben lo que está haciendo, funciona muy bien, / usr / local / bin / vim está rápidamente listo para funcionar. Su / usr / bin / vim existente se deja en su lugar.
rshdev
1

Otra opción es instalar Homebrew en Linix como un administrador de paquetes alternativo y usarlo para instalar el último vim con:

brew install vim

Características de Homebrew:

  • Puede instalar software en su directorio personal y, por lo tanto, no requiere sudo
  • Instale software no empaquetado por su distribución de host
  • Instale versiones actualizadas de software cuando la distribución de su host sea antigua
  • Use el mismo administrador de paquetes para administrar sus sistemas macOS, Linux y Windows
David Hatch
fuente
Bienvenido a nuestro sitio David! Tengo problemas para ver cómo homebrew resuelve este problema: ¿están los repositorios de homebrew más actualizados que los de apt?
statox
@statox Sí, los repositorios homebrew son generalmente la versión más nueva.
David Hatch
Ok, es bueno saberlo :)
statox