Как я могу получить более новую версию Vim на Ubuntu?


34

Пакеты Ubuntu могут быть довольно старыми, но для некоторых настольных программ (например, Vim) я бы предпочел иметь последнюю версию, так как более новые версии часто исправляют различные ошибки.

Как я могу получить достаточно свежую версию Vim на Ubuntu?


Возможно , PPA Джонатона может сработать для вас. Но лучше, если вы используете Ubuntu 16.04, потому что он говорит: «С 24 октября я буду собирать пакеты только для 14.04, если это простое обновление».
Joeytwiddle

4
@joeytwiddle Что касается PPA, то вы доверяете случайному незнакомцу из Интернета ™ с корневым доступом к вашей системе, что, возможно, не очень хорошая идея, в зависимости от ваших требований безопасности и уровня паранойи (см .: PPA безопасен для добавьте в мою систему и какие «красные флажки» нужно учитывать, и есть ли какая-либо гарантия того, что программное обеспечение из PPA Launchpad не содержит вирусов и бэкдор-угроз? ).
Мартин Турной

Ответы:


49

У вас есть три разных варианта:

  • Подождите, пока самые новые версии будут добавлены в дистрибутивы. Обратите внимание, что вы, возможно, захотите выучить новый язык или построить корабль голыми руками, пока вы ждете.

Если ожидание нескольких лет не подходит для вас, у вас есть следующие два варианта:

  • Используйте PPA, содержащий последнюю версию:
    • Плюсы:
      • Легко сделать.
      • Полностью автоматизирован.
      • Позвольте вам установить Vim как любое другое программное обеспечение.
    • Минусы:
      • Вы в основном предоставляете привилегии суперпользователя.
      • Этот метод работает только в Ubuntu и производных дистрибутивах, использующих систему PPA.
  • Сборка Vim из источников:
    • Плюсы:
      • Вы получаете точную настройку параметров, которые вы включаете (графический интерфейс, поддержка Python / Lua и т. Д.).
      • Вы получаете самую передовую версию и вам не нужен сторонний сопровождающий, чтобы получить ее.
      • Всегда полезно узнать, как собрать программное обеспечение из источников.
      • Это метод, независимый от распределения.
    • Минусы:
      • Не так автоматизирован, как опция PPA.
      • Может быть страшно для нового пользователя.

В двух последних случаях вот процедура для этих опций:


PPA

Вот онлайн-учебник на tipsonubuntu.com (спасибо @joeytwiddle, кто предложил это в комментариях).

Сначала откройте терминал и используйте следующую команду. Это добавит к вашим репозиториям личный архив пакетов (PPA), поддерживаемый joathonf, и даст Ubuntu знать, где искать Vim:

sudo add-apt-repository ppa:jonathonf/vim

Я повторю здесь, что выполнение этого дает привилегии root для сценариев в этом PPA, делайте это, только если вы доверяете этому . Возможно, вы захотите прочитать , безопасны ли PPA для добавления в мою систему, и какие «красные флажки» нужно учитывать? и есть ли гарантия того, что программное обеспечение от PPA Launchpad не содержит вирусов и бэкдоров? ,

Обновите список пакетов, чтобы Ubuntu посмотрел в PPA, чтобы найти файлы Vim:

sudo apt update

Наконец, установите vim:

sudo apt install vim

И тада! Vim установлен. Обратите внимание, что вы также можете сделать это из диспетчера пакетов GUI.

Обратите внимание , что это не только PPA доступны новыми версиями Vim, вы можете использовать ваш любимый поисковик , чтобы найти больше (и делать помните , что вы доверяя какой - то незнакомец из Интернета с корневым доступом к системе).


Здание из источников

Второй вариант - собрать Vim из исходников. Это подразумевает некоторые дополнительные манипуляции и может быть пугающим для нового пользователя, но это лучший способ получить продолжительную сборку.

Есть несколько интернет-ресурсов, которые помогут вам пройти через эту процедуру:

Общая процедура заключается в следующем, вам может потребоваться настроить его под свои нужды, но основная идея здесь:

Сначала вам может понадобиться установить некоторые зависимости. Например, используйте эту команду (предложенную вики 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

Обратите внимание, что вам, возможно, не понадобится все: например, если вы не будете использовать 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 .

Если у вас нет root-прав на компьютере, на котором вы устанавливаете Vim, вы можете добавить --prefixопцию, которая позволит вам использовать каталог, в котором у вас есть права доступа. Например, вы можете использовать:

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

configureСценарий может занять много аргументов , чтобы настроиться , какие функции вы хотите включить. Запуск занимает некоторое время. Во время работы он печатает сообщения о том, какие функции он проверяет.

После настройки вы можете скомпилировать программу:

make

Существует необязательная команда для запуска некоторых самопроверок ( не спрашивайте меня, что именно они делают, я всегда их пропускаю :-) ):

make check

Наконец, установите Vim в /usr/local/(для этой команды требуются права суперпользователя):

sudo make install

Чтобы удалить ненужные теперь файлы, созданные для компиляции, вы можете запустить:

make clean
make distclean

И вот вы с новой установкой Vim.

Возможно, вы захотите удалить любой Vim, который вы установили из репозитория Ubuntu, но вам это не нужно . По умолчанию Vim будет устанавливать /usr/local/вместо /usr/. Просто убедитесь, что вы используете правильную версию Vim (т.е. /usr/local/bin/vimнет /usr/bin/vim).


1
Что касается зависимостей, sudo apt-get build-dep vimеще проще в использовании. В противном случае, я бы добавил примечание о том, --prefixчто не все из нас имеют привилегии root, что довольно часто.
Люк Эрмитт

@LucHermitte спасибо за эти предложения. Что касается apt-get build-dep vimего использования на последнем этапе установки PPA, верно? Теперь о --prefixтом, что действительно важно добавить: --prefix=/usrэто безопасное место для консультирования или вы бы порекомендовали другой каталог (например --prefix=~/bin)?
statox

Команда build-depможет использоваться вместо sudo apt-get install libncurses5-dev ..... Что касается --preffix, его типичное использование:, --prefix=$HOMEно в последнее время я использую --prefix=$HOME/local/vim. Таким образом, удаление программного обеспечения так же просто, как rm -rи удаление нескольких строк в .profile/.bashrc
Luc Hermitte

@LucHermitte Хорошо для prefix. Для build-depЯ должен сказать , что я не знаком с этой командой , так что я боюсь , что я не понимаю , правильно: Из того, что я понимаю , apt-get build-dep vimчто установить зависимости для пакета vim. Но здесь, поскольку у нас нет самого нового пакета vim в исходных кодах пакетов (поскольку мы строим из исходных текстов), как команда установит правильные зависимости? Если я пытаюсь собрать Vim8 из исходников, а мой список пакетов содержит vim7.4, правильно ли apt-get build-dep vimбудут установлены зависимости vim7.4? (Я не могу проверить это сейчас, извините)
statox

Он установит зависимости, которые нам нужны для компиляции исходного кода vim, который мы можем получить из github. Таким образом, нам не нужно отслеживать все библиотеки, используемые исходным кодом Vim. Пока исходный код, который мы компилируем, не зависит от неупакованной версии библиотеки, это прекрасно.
Люк Эрмитт

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
Добро пожаловать на сайт! Может быть полезно описать, что это такое, что оно делает и как его использовать. Не все, кто читает это, будут знакомы с командами, которые вы используете или пишете / используете bash-скрипты, git и менеджеры пакетов. По вашим правкам я вижу, что вы уже проделали хорошую работу в других местах!
Богатый

Для тех, кто знает, что он делает, он отлично работает, / usr / local / bin / vim быстро готов к работе. Ваш существующий / usr / bin / vim остается на месте.
rshdev

1

Другой вариант - установить Homebrew на Linix в качестве альтернативного менеджера пакетов и использовать его для установки последней версии vim с:

brew install vim

Доморощенные Особенности:

  • Может устанавливать программное обеспечение в ваш домашний каталог и поэтому не требует sudo
  • Установите программное обеспечение, не упакованное вашим дистрибутивом хоста
  • Установите последние версии программного обеспечения, когда ваш хост-дистрибутив устарел
  • Используйте тот же менеджер пакетов для управления системами MacOS, Linux и Windows

Добро пожаловать на наш сайт Дэвид! У меня проблемы с просмотром, как homebrew решает эту проблему: являются ли домашние репозитории более современными, чем apt?
statox

@statox Да, доморощенные репозитории, как правило, являются новейшей версией.
Дэвид Хэтч

Хорошо, приятно знать :)
statox
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.