Jak mogę uzyskać nowszą wersję Vima na Ubuntu?

34

Pakiety Ubuntu mogą być dość stare, ale dla niektórych programów komputerowych (takich jak Vim) wolałbym mieć najnowszą wersję, ponieważ nowsze wersje często naprawiają różne błędy.

Jak mogę uzyskać dość nową wersję Vima na Ubuntu?

Martin Tournoij
źródło
Być może PPA jonathonf może Ci pomóc . Ale lepiej, jeśli używasz Ubuntu 16.04, ponieważ mówi: „Od 24 października będę pakował tylko 14.04, jeśli będzie to łatwa aktualizacja”.
joeytwiddle
4
@joeytwiddle Rzecz z PPA polega jednak na tym, że ufasz Random Stranger From The Internet ™ z dostępem root do twojego systemu, co może nie jest świetnym pomysłem w zależności od twoich wymagań bezpieczeństwa i poziomu paranoi (patrz: Czy PPA jest bezpieczny do dodać do mojego systemu i jakie są „czerwone flagi” trzeba uważać? i Czy istnieje gwarancja, że oprogramowanie z Launchpad PPA jest wolny od wirusów i zagrożeń backdoor? ).
Martin Tournoij,

Odpowiedzi:

49

Masz trzy różne opcje:

  • Poczekaj, aż najnowsze wersje zostaną dodane do pakietów dystrybucyjnych. Pamiętaj, że podczas oczekiwania możesz nauczyć się nowego języka lub zbudować statek gołymi rękami.

Jeśli czekanie przez kilka lat nie jest dla ciebie dobre, masz dwie następujące opcje:

  • Użyj PPA zawierającego najnowszą wersję:
    • Plusy:
      • Proste do zrobienia.
      • Całkowicie zautomatyzowany.
      • Pozwól zainstalować Vima jak każde inne oprogramowanie.
    • Cons:
      • Zasadniczo przyznajesz uprawnienia root całkowicie nieznajomemu.
      • Ta metoda działa tylko w systemie Ubuntu i pochodnych dystrybucjach korzystających z systemu PPA.
  • Zbuduj Vima ze źródeł:
    • Plusy:
      • Dostajesz precyzyjne dostrojenie włączonych opcji (gui, obsługa Python / Lua itp.).
      • Otrzymujesz najnowszą wersję i nie potrzebujesz żadnego zewnętrznego opiekuna, aby go zdobyć.
      • Zawsze warto nauczyć się kompilować oprogramowanie ze źródeł.
      • Jest to metoda agnostyczna z rozkładem.
    • Cons:
      • Nie tak zautomatyzowany jak opcja PPA.
      • Może być przerażający dla nowego użytkownika.

W dwóch ostatnich przypadkach oto procedura dla tych opcji:


PPA

Oto samouczek online na tipsonubuntu.com (Dzięki @joeytwiddle, który sugerował to w komentarzach).

Najpierw otwórz terminal i użyj następującego polecenia. Spowoduje to dodanie archiwum pakietów osobistych (PPA) obsługiwanego przez joathonf do twoich repozytoriów i powiadomienie Ubuntu, gdzie szukać Vima:

sudo add-apt-repository ppa:jonathonf/vim

Powtórzę tutaj, że zrobienie tego daje uprawnienia root do skryptów w tym PPA, rób to tylko wtedy, gdy mu ufasz . Możesz przeczytać, czy PPA można bezpiecznie dodać do mojego systemu i na jakie „czerwone flagi” należy uważać? i czy jest jakakolwiek gwarancja, że ​​oprogramowanie z PPA Launchpad jest wolne od wirusów i zagrożeń backdoor? .

Zaktualizuj listę pakietów, aby Ubuntu szukał w PPA plików Vim:

sudo apt update

Na koniec zainstaluj vim:

sudo apt install vim

I tada! Vim jest zainstalowany. Pamiętaj, że możesz to również zrobić w menedżerze pakietów GUI.

Zauważ, że nie jest to jedyny dostępny PPA z nowszych wersji Vima, można użyć swojej ulubionej wyszukiwarki, aby znaleźć więcej (i zrobić pamiętać ufasz jakiś nieznajomy z Internetu z dostępem do systemu korzeniowego).


Budowanie ze źródeł

Drugą opcją jest zbudowanie Vima ze źródeł. To wymaga dodatkowej manipulacji i może być przerażające dla nowego użytkownika, ale jest to najlepszy sposób na uzyskanie trwałej wersji.

Istnieje kilka zasobów online, które przeprowadzą Cię przez tę procedurę:

Ogólna procedura jest następująca, być może będziesz musiał ją dostosować, aby dopasować do swoich potrzeb, ale główna idea jest tutaj:

Najpierw może być konieczne zainstalowanie niektórych zależności. Na przykład użyj tego polecenia (sugerowanego przez 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

Pamiętaj, że być może nie będziesz potrzebować wszystkiego: na przykład jeśli nie będziesz używać Lua, nie umieszczaj lua5.1-devjej na liście .

Edytuj Zamiast używać poprzedniego apt-get installpolecenia, możesz użyć następujących. Ma tę zaletę, że automatycznie obsługuje potrzebne zależności:

sudo apt-get build-dep vim

Następnie pobierz źródła na swój komputer (będziesz potrzebować gitzainstalowanego polecenia apt-get install git):

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

Przejdź do tego katalogu i „wyciągnij” ostatnie zmiany:

cd vim
git pull

Jeśli masz błąd, git pullponieważ dokonałeś już zmian, możesz „ukryć” swoje modyfikacje (tj. Tymczasowo je usunąć), wyciągnij zmiany, a następnie przywróć modyfikacje. Jeśli to zrobiłeś, zakładam, że znasz git i nie podasz procedury, którą należy wykonać (jest to szczegółowo opisane w dokumencie vim.org).

Następnie możesz zbudować Vima, tak jak inne oprogramowanie ze źródeł. Plik src / INSTALL powinien dostarczyć ci informacji potrzebnych do skompilowania Vima.

Regularny przepływ pracy zaczynałby się od:

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

Usuń, --enable-guijeśli nie chcesz gVim .

Jeśli nie masz dostępu do roota na komputerze, na którym instalujesz Vima, możesz dodać --prefixopcję, która pozwala na korzystanie z katalogu, w którym masz prawa dostępu. Na przykład możesz użyć:

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

configureSkrypt może zająć dużo argumentów do melodii, które funkcje chcesz włączyć. Uruchomienie zajmuje trochę czasu. Podczas pracy drukuje komunikaty informujące o sprawdzanych funkcjach.

Po skonfigurowaniu możesz skompilować program za pomocą:

make

Istnieje opcjonalne polecenie, aby uruchomić niektóre autotesty ( nie pytaj mnie, co dokładnie robią, zawsze je pomijam :-) ):

make check

Na koniec zainstaluj Vima na /usr/local/(to polecenie wymaga uprawnień roota):

sudo make install

Aby usunąć teraz bezużyteczne pliki utworzone dla kompilacji, możesz uruchomić:

make clean
make distclean

A oto nowa instalacja Vima.

Prawdopodobnie będziesz chciał usunąć każdy zainstalowany Vim z repozytorium Ubuntu, ale nie musisz tego robić . Domyślnie Vim instaluje się /usr/local/zamiast /usr/. Upewnij się tylko, że używasz poprawnej wersji Vima (tj. /usr/local/bin/vimI nie /usr/bin/vim).

statox
źródło
1
Jeśli chodzi o zależności, sudo apt-get build-dep vimjest jeszcze prostszy w użyciu. W przeciwnym razie dodałbym notatkę o tym, --prefixże nie wszyscy mamy uprawnienia rootowania, co jest dość powszechne.
Luc Hermitte
@LucHermitte dziękuję za te sugestie. Jeśli chodzi o apt-get build-dep vimto, że zamierzasz go użyć na ostatnim etapie instalacji PPA, prawda? Teraz --prefixjest to ważna uwaga do dodania: czy jest --prefix=/usrto bezpieczne miejsce na doradztwo czy poleciłbyś inny katalog (np. --prefix=~/bin)?
statox
build-depKomenda może być stosowany zamiast sudo apt-get install libncurses5-dev ..... Jeśli chodzi o --preffix, jego typowe zastosowanie to --prefix=$HOME:, ale ostatnio używam --prefix=$HOME/local/vim. W ten sposób odinstalowanie oprogramowania jest tak proste, jak rm -ri usunięcie kilku linii w .profile/.bashrc
Luc Hermitte
@LucHermitte Ok dla prefix. Bo build-depmuszę powiedzieć, że nie znam się tak dobrze na tym poleceniu, więc obawiam się, że nie rozumiem poprawnie: z tego, co rozumiem apt-get build-dep vim, zainstalowałbym zależności dla pakietu vim. Ale tutaj, ponieważ nie mamy najnowszego pakietu vim w źródłach pakietów (ponieważ budujemy ze źródeł), w jaki sposób polecenie zainstaluje poprawne zależności? Jeśli próbuję zbudować Vim8 ze źródeł, a moja lista pakietów zawiera vim7.4, apt-get build-dep vimczy zainstaluję zależności vim7.4, prawda? (Nie mogę teraz tego przetestować, przepraszam)
statox
Zainstaluje zależności potrzebne do skompilowania kodu źródłowego vim, który możemy uzyskać z github. W ten sposób nie musimy śledzić wszystkich bibliotek używanych przez kod źródłowy Vima. Dopóki kod źródłowy, który kompilujemy, nie zależy od nieopakowanej wersji biblioteki, jest to całkowicie w porządku.
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
źródło
5
Witamy na stronie! Pomocne może być opisanie, co to jest, co robi i jak go używać. Nie każdy, kto to czyta, będzie zaznajomiony z poleceniami, których używasz, lub pisze / używasz skryptów bash, git i menedżerów pakietów. Widzę z twoich edycji, że wykonałeś już dobrą robotę, robiąc to gdzie indziej!
Bogaty
Dla tych, którzy wiedzą, co robi, działa świetnie, / usr / local / bin / vim jest szybko gotowy do pracy. Twoje istniejące / usr / bin / vim pozostało na swoim miejscu.
rshdev
1

Inną opcją jest zainstalowanie Homebrew na Linixie jako alternatywnego menedżera pakietów i użycie go do zainstalowania najnowszego vima z:

brew install vim

Funkcje Homebrew:

  • Może zainstalować oprogramowanie w katalogu domowym, więc nie wymaga sudo
  • Zainstaluj oprogramowanie nie spakowane przez Twoją dystrybucję hosta
  • Zainstaluj aktualną wersję oprogramowania, gdy dystrybucja hosta jest stara
  • Użyj tego samego menedżera pakietów do zarządzania systemami macOS, Linux i Windows
David Hatch
źródło
Witamy na naszej stronie David! Mam problem z widzeniem, w jaki sposób homebrew rozwiązuje ten problem: czy repozytoria homebrew są bardziej aktualne niż apt?
statox
@statox Tak, repozytoria homebrew są na ogół najnowszą wersją.
David Hatch
Ok, dobrze wiedzieć :)
statox