Come posso ottenere una versione più recente di Vim su Ubuntu?


34

I pacchetti di Ubuntu possono essere piuttosto vecchi, ma per alcuni programmi desktop (come Vim) preferirei avere la versione più recente, poiché le versioni più recenti spesso risolvono vari bug.

Come posso ottenere una versione Vim abbastanza recente su Ubuntu?


Forse il PPA di jonathonf potrebbe funzionare per te. Ma meglio se stai usando Ubuntu 16.04, perché dice "A partire dal 24 ottobre, impaccherò per 14.04 solo se è un aggiornamento facile".
joeytwiddle,

4
@joeytwiddle La cosa con i PPA è che ti stai fidando di uno sconosciuto casuale da Internet ™ con accesso root al tuo sistema, che forse non è una grande idea a seconda dei requisiti di sicurezza e del livello di paranoia (vedi: PPA è sicuro da aggiungere al mio sistema e quali sono alcune “bandiere rosse” a cui prestare attenzione? e c'è alcuna garanzia che il software da Launchpad PPA è esente da virus e backdoor minacce? ).
Martin Tournoij,

Risposte:


49

Hai tre diverse opzioni:

  • Attendere che vengano aggiunte le versioni più recenti ai pacchetti di distribuzione. Nota che potresti voler imparare una nuova lingua o costruire una nave a mani nude mentre aspetti.

Se aspettare diversi anni non ti fa bene, hai le seguenti due opzioni:

  • Utilizzare un PPA contenente l'ultima versione:
    • Professionisti:
      • Facile da fare.
      • Totalmente automatizzato.
      • Ti consente di installare Vim come qualsiasi altro software.
    • Contro:
      • Concedi fondamentalmente i privilegi di root a uno sconosciuto completo.
      • Questo metodo funziona solo su Ubuntu e le distribuzioni derivate usando il sistema PPA.
  • Costruisci Vim dalle fonti:
    • Professionisti:
      • Ottieni una messa a punto delle opzioni che abiliti (gui, supporto Python / Lua, ecc.).
      • Ottieni la versione bleeding edge e non hai bisogno di manutentori di terze parti per ottenerla.
      • È sempre utile imparare come compilare un software da fonti.
      • Questo è un metodo agnostico di distribuzione.
    • Contro:
      • Non automatizzato come l'opzione PPA.
      • Può essere spaventoso per un nuovo utente.

In questi ultimi due casi, ecco una procedura per queste opzioni:


PPA

Ecco un tutorial online su tipsonubuntu.com (Grazie @joeytwiddle per averlo suggerito nei commenti).

Per prima cosa apri un terminale e usa il seguente comando. Ciò aggiungerà il Personal Packet Archive (PPA) gestito da joathonf ai repository e farà sapere a Ubuntu dove cercare Vim:

sudo add-apt-repository ppa:jonathonf/vim

Ripeterò qui che facendo questo dai i privilegi di root agli script in questo PPA, fallo solo se ti fidi . Potresti voler leggere : PPA è sicuro da aggiungere al mio sistema e quali sono alcune "bandiere rosse" a cui prestare attenzione? e c'è qualche garanzia che il software di Launchpad PPA sia privo di virus e minacce backdoor? .

Aggiorna l'elenco dei pacchetti in modo che Ubuntu guardi nel PPA per trovare i file Vim:

sudo apt update

Finalmente installa vim:

sudo apt install vim

E tada! Vim è installato. Nota che puoi anche farlo dal gestore dei pacchetti della GUI.

Si noti che questo non è l'unico PPA disponibile con le versioni più recenti di Vim, è possibile utilizzare il motore di ricerca preferito per trovare più (e fare ricordi che si sta confidando un estraneo da internet con accesso root al vostro sistema).


Costruire da fonti

Una seconda opzione è quella di costruire Vim dalle fonti. Ciò implica una manipolazione aggiuntiva e può essere spaventoso per un nuovo utente, ma è il modo migliore per ottenere la build durata.

Esistono diverse risorse online per guidare l'utente attraverso questa procedura:

Una procedura generale è la seguente, potrebbe essere necessario modificarla in base alle proprie esigenze, ma l'idea principale è qui:

Innanzitutto potrebbe essere necessario installare alcune dipendenze. Ad esempio, utilizzare questo comando (suggerito da 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

Nota che forse non avrai bisogno di tutto: ad esempio se non utilizzerai Lua, non includerlo lua5.1-devnell'elenco .

Modifica Invece di utilizzare il apt-get installcomando precedente è possibile utilizzare quanto segue. Ha il vantaggio di gestire automaticamente le dipendenze di cui hai bisogno:

sudo apt-get build-dep vim

Quindi scarica i sorgenti sul tuo computer (avrai bisogno del gitcomando installato con apt-get install git):

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

Vai a questa directory e 'pull' le ultime modifiche:

cd vim
git pull

Se si verifica un errore git pullperché sono già state apportate modifiche, è possibile "riporre" le modifiche (ovvero rimuoverle temporaneamente), estrarre le modifiche e quindi ripristinarle. Se lo hai fatto, suppongo che tu abbia familiarità con Git e che non fornirà la procedura da seguire (è dettagliato nel documento di vim.org).

È quindi possibile creare Vim come si farebbe con qualsiasi altro software dalle fonti. Il file src / INSTALL dovrebbe fornire le informazioni necessarie per compilare Vim.

Un flusso di lavoro regolare inizierebbe con:

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

Rimuovere --enable-guise non si desidera gVim .

Se non si dispone dell'accesso root sul computer in cui si sta installando Vim, è possibile aggiungere l' --prefixopzione che consente di utilizzare una directory in cui si dispone dei diritti di accesso. Ad esempio puoi usare:

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

Lo configurescript può richiedere molti argomenti per ottimizzare le funzionalità che si desidera abilitare. L'esecuzione richiede un po 'di tempo. Durante l'esecuzione, stampa i messaggi che indicano quali funzionalità sta verificando.

Una volta configurato, è possibile compilare il programma con:

make

Esiste un comando opzionale per eseguire alcuni controlli automatici ( non chiedermi cosa fanno esattamente, li salto sempre :-) ):

make check

Infine installa Vim su /usr/local/(questo comando richiede i privilegi di root):

sudo make install

Per rimuovere i file ora inutili che sono stati creati per la compilazione è quindi possibile eseguire:

make clean
make distclean

Ed eccoti qui con una nuova installazione di Vim.

Probabilmente vorrai rimuovere qualsiasi Vim che hai installato dal repository di Ubuntu, ma non è necessario . Per impostazione predefinita, Vim verrà installato su /usr/local/, anziché /usr/. Assicurati solo di utilizzare la versione corretta di Vim (ovvero /usr/local/bin/vim, e non /usr/bin/vim).


1
Per quanto riguarda le dipendenze, sudo apt-get build-dep vimè ancora più semplice da usare. Altrimenti, avrei aggiunto una nota in --prefixquanto non tutti noi abbiamo il privilegio di root, il che è abbastanza comune.
Luc Hermitte,

@LucHermitte grazie per questi suggerimenti. Per quanto riguarda apt-get build-dep vimintendi usarlo nell'ultimo passaggio dell'installazione PPA, giusto? Ora su --prefixquesto è davvero una nota importante da aggiungere: è --prefix=/usrun posto sicuro da consigliare o consiglieresti un'altra directory (es. --prefix=~/bin)?
statox

Il build-depcomando può essere utilizzato al posto di sudo apt-get install libncurses5-dev ..... Per quanto riguarda --preffix, il suo uso tipico è --prefix=$HOME:, ma ultimamente sto usando --prefix=$HOME/local/vim. In questo modo, disinstallare un software è facile come rm -rrimuovere una coppia di righe in .profile/.bashrc
Luc Hermitte il

@LucHermitte Ok per prefix. Per build-depDevo dire che io non sono che la familiarità con questo comando in modo temo che non capisco correttamente: Da quello che ho capito apt-get build-dep vimsarebbe installare le dipendenze per il pacchetto vim. Ma qui come non abbiamo il pacchetto vim più recente nelle fonti dei pacchetti (poiché stiamo costruendo dalle fonti) come installerà le dipendenze corrette dal comando? Se sto provando a compilare Vim8 dai sorgenti e il mio elenco di pacchetti contiene vim7.4, apt-get build-dep viminstalleranno le dipendenze di vim7.4 giusto? (Non posso provarlo adesso, scusa)
statox

Installerà le dipendenze di cui abbiamo bisogno per compilare il codice sorgente di VIM che possiamo ottenere da Github. In questo modo non è necessario rintracciare tutte le librerie utilizzate dal codice sorgente di Vim. Fintanto che il codice sorgente che stiamo compilando non dipende da una versione non impacchettata di una libreria, questo va perfettamente bene.
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
Benvenuti nel sito! Potrebbe essere utile descrivere di cosa si tratta, cosa fa e come usarlo. Non tutti coloro che leggono questo avranno familiarità con i comandi che usi o scrivi / usi script bash, git e gestori di pacchetti. Dalle tue modifiche vedo che hai già fatto un buon lavoro nel farlo altrove!
Ricco

Per coloro che sanno cosa sta facendo, funziona benissimo, / usr / local / bin / vim è rapidamente pronto per partire. Il tuo / usr / bin / vim esistente viene lasciato al suo posto.
rshdev,

1

Un'altra opzione è installare Homebrew su Linix come gestore di pacchetti alternativo e usarlo per installare l'ultima versione di vim con:

brew install vim

Caratteristiche homebrew:

  • Può installare software nella tua home directory e quindi non richiede sudo
  • Installa software non impacchettato dalla tua distribuzione host
  • Installa versioni aggiornate del software quando la tua distribuzione host è obsoleta
  • Usa lo stesso gestore di pacchetti per gestire i tuoi sistemi macOS, Linux e Windows

Benvenuti sul nostro sito David! Ho difficoltà a vedere come l'homebrew risolve questo problema: i repository homebrew sono più aggiornati di quelli di apt?
statox

@statox Sì, i repository homebrew sono generalmente la versione più recente.
David Hatch,

Ok, buono a sapersi :)
statox
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.