Làm cách nào tôi có thể có phiên bản Vim mới hơn trên Ubuntu?


34

Các gói của Ubuntu có thể khá cũ, nhưng đối với một số chương trình máy tính để bàn (như Vim) tôi muốn có phiên bản mới nhất, vì các phiên bản mới hơn thường sửa các lỗi khác nhau.

Làm cách nào tôi có thể có phiên bản Vim hợp lý gần đây trên Ubuntu?


Có lẽ PPA của jonathonf có thể làm việc cho bạn. Nhưng tốt hơn nếu bạn đang sử dụng Ubuntu 16.04, bởi vì anh ta nói "Kể từ ngày 24 tháng 10, tôi sẽ chỉ đóng gói cho 14.04 nếu đó là một bản cập nhật dễ dàng."
joeytwiddle

4
@joeytwiddle Điều đáng nói với PPA là bạn tin tưởng Người lạ ngẫu nhiên từ Internet ™ có quyền truy cập vào hệ thống của bạn, có lẽ không phải là ý tưởng hay tùy thuộc vào yêu cầu bảo mật và mức độ hoang tưởng của bạn (xem: PPA có an toàn không thêm vào hệ thống của tôi và những lá cờ màu đỏ nào mà Tử vi để xem?có đảm bảo rằng phần mềm từ Launchpad PPAs không có vi-rút và các mối đe dọa từ cửa sau không? ).
Martin Tournoij

Câu trả lời:


49

Bạn có ba tùy chọn khác nhau:

  • Đợi các phiên bản mới nhất được thêm vào các gói phân phối. Lưu ý rằng bạn có thể muốn học một ngôn ngữ mới hoặc đóng tàu bằng tay không trong khi chờ đợi.

Nếu chờ đợi vài năm không tốt cho bạn thì bạn có hai lựa chọn sau:

  • Sử dụng PPA chứa phiên bản mới nhất:
    • Ưu điểm:
      • Dễ làm.
      • Hoàn toàn tự động.
      • Cho phép bạn cài đặt Vim như bất kỳ phần mềm nào khác.
    • Nhược điểm:
      • Về cơ bản, bạn cấp đặc quyền gốc cho một người hoàn toàn xa lạ.
      • Phương pháp này chỉ hoạt động trên Ubuntu và các bản phân phối có nguồn gốc bằng hệ thống PPA.
  • Xây dựng Vim từ các nguồn:
    • Ưu điểm:
      • Bạn có thể tinh chỉnh các tùy chọn bạn bật (hỗ trợ gui, Python / Lua, v.v.).
      • Bạn nhận được phiên bản cạnh chảy máu và không cần bất kỳ nhà bảo trì bên thứ ba nào có được nó.
      • Luôn hữu ích khi tìm hiểu cách biên dịch phần mềm từ các nguồn.
      • Đây là một phương pháp bất khả tri phân phối.
    • Nhược điểm:
      • Không tự động như tùy chọn PPA.
      • Có thể đáng sợ cho một người dùng mới.

Trong hai trường hợp sau, đây là một thủ tục cho các tùy chọn sau:


PPA

Đây là một hướng dẫn trực tuyến trên tipsonubfox.com (Cảm ơn @joeytwiddle đã đề xuất nó trong các bình luận).

Đầu tiên mở terminal và sử dụng lệnh sau. Điều này sẽ thêm Lưu trữ gói cá nhân (PPA) được duy trì bởi joathonf cho bạn repos và cho Ubuntu biết nơi để tìm Vim:

sudo add-apt-repository ppa:jonathonf/vim

Tôi sẽ nhắc lại ở đây rằng làm điều này cung cấp các đặc quyền gốc cho các tập lệnh trong PPA này, chỉ làm điều đó nếu bạn tin tưởng nó . Bạn có thể muốn đọc là an toàn của PPA để thêm vào hệ thống của tôi và những lá cờ màu đỏ nào đó là màu đỏ mà bạn cần chú ý? có đảm bảo rằng phần mềm từ Launchpad PPAs không có vi-rút và các mối đe dọa cửa sau không? .

Cập nhật danh sách gói để Ubuntu sẽ tìm trong PPA để tìm các tệp Vim:

sudo apt update

Cuối cùng cài đặt vim:

sudo apt install vim

Và tada! Vim được cài đặt. Lưu ý rằng bạn cũng có thể làm điều đó từ trình quản lý gói GUI.

Lưu ý rằng đây không phải là chỉ PPA có sẵn với các phiên bản Vim mới hơn, bạn có thể sử dụng công cụ tìm kiếm ưa thích của bạn để tìm thêm (và làm nhớ bạn đang tin tưởng một số người lạ từ internet với quyền root cho hệ thống của bạn).


Xây dựng từ các nguồn

Tùy chọn thứ hai là xây dựng Vim từ các nguồn. Điều này ngụ ý một số thao tác bổ sung và có thể gây sợ hãi cho người dùng mới, nhưng đó là cách tốt nhất để có được bản dựng cuối cùng.

Có một số tài nguyên trực tuyến để hướng dẫn bạn thực hiện quy trình này:

Một thủ tục chung là như sau, bạn có thể cần phải điều chỉnh nó để phù hợp với nhu cầu của bạn nhưng ý tưởng chính là ở đây:

Trước tiên, bạn có thể cần phải cài đặt một số phụ thuộc. Ví dụ: sử dụng lệnh này (được đề xuất bởi 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

Lưu ý rằng bạn có thể sẽ không cần mọi thứ: ví dụ: nếu bạn sẽ không sử dụng Lua, đừng đưa lua5.1-devvào danh sách .

Chỉnh sửa Thay vì sử dụng apt-get installlệnh trước, bạn có thể sử dụng lệnh sau. Nó có lợi thế là tự động xử lý các phụ thuộc bạn cần:

sudo apt-get build-dep vim

Sau đó lấy các nguồn trên máy tính của bạn (bạn sẽ cần gitlệnh được cài đặt apt-get install git):

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

Chuyển đến thư mục này và 'kéo' những thay đổi cuối cùng:

cd vim
git pull

Nếu bạn gặp lỗi git pullvì bạn đã thực hiện các thay đổi, bạn có thể 'xóa' các sửa đổi của mình (nghĩa là tạm thời xóa chúng), kéo các thay đổi và sau đó khôi phục các sửa đổi của bạn. Nếu bạn đã làm như vậy tôi sẽ cho rằng bạn quen thuộc với git và sẽ không cung cấp quy trình để làm theo (nó được nêu chi tiết trong tài liệu vim.org).

Sau đó, bạn có thể xây dựng Vim như bạn sẽ xây dựng bất kỳ phần mềm nào khác từ các nguồn. Tệp src / INSTALL sẽ cung cấp cho bạn thông tin bạn cần để biên dịch Vim.

Một quy trình làm việc thường xuyên sẽ bắt đầu với:

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

Xóa --enable-guinếu bạn không muốn gVim .

Nếu bạn không có quyền truy cập root trên máy bạn đang cài đặt Vim, bạn có thể muốn thêm --prefixtùy chọn cho phép bạn sử dụng một thư mục nơi bạn có quyền truy cập. Ví dụ: bạn có thể sử dụng:

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

Các configurekịch bản có thể mất rất nhiều lập luận để điều chỉnh các tính năng mà bạn muốn kích hoạt. Chạy nó mất một lúc. Trong khi chạy, nó in các thông báo cho biết các tính năng mà nó đang kiểm tra.

Sau khi được cấu hình, bạn có thể biên dịch chương trình với:

make

Một lệnh tùy chọn tồn tại để chạy một số tự kiểm tra ( đừng hỏi tôi họ làm gì chính xác tôi luôn bỏ qua chúng :-) ):

make check

Cuối cùng cài đặt Vim tới /usr/local/(lệnh này yêu cầu quyền root):

sudo make install

Để xóa các tệp bây giờ vô dụng đã được tạo để biên dịch, sau đó bạn có thể chạy:

make clean
make distclean

Và ở đây bạn đang có một cài đặt Vim mới.

Bạn có thể sẽ muốn xóa bất kỳ Vim nào bạn đã cài đặt từ repo Ubuntu, nhưng bạn không cần phải làm vậy. Theo mặc định, Vim sẽ cài đặt /usr/local/, chứ không phải /usr/. Chỉ cần đảm bảo rằng bạn đang chạy phiên bản Vim chính xác (nghĩa là /usr/local/bin/vimkhông phải /usr/bin/vim).


1
Về phụ thuộc, sudo apt-get build-dep vimthậm chí còn đơn giản hơn để sử dụng. Mặt khác, tôi đã thêm một lưu ý về việc --prefixkhông phải tất cả chúng ta đều có quyền root, điều này khá phổ biến.
Luc Hermitte

@LucHermitte cảm ơn vì những gợi ý này. Liên quan đến apt-get build-dep vimbạn có nghĩa là sử dụng nó trong bước cuối cùng của cài đặt PPA, phải không? Bây giờ về --prefixđiều đó thực sự là một lưu ý quan trọng để thêm: là --prefix=/usrmột nơi an toàn để tư vấn hoặc bạn muốn giới thiệu một thư mục khác (ví dụ --prefix=~/bin)?
statox

Các build-deplệnh có thể được sử dụng thay cho sudo apt-get install libncurses5-dev ..... Về --preffix, công dụng điển hình của nó là : --prefix=$HOME, nhưng gần đây tôi đang sử dụng --prefix=$HOME/local/vim. Bằng cách này, việc gỡ cài đặt một phần mềm dễ dàng như một rm -rvà xóa một vài dòng trong .profile/.bashrc
Luc Hermitte

@LucHermitte Ok cho prefix. Vì build-deptôi phải nói rằng tôi không quen thuộc với lệnh này nên tôi sợ tôi không hiểu đúng: Từ những gì tôi hiểu apt-get build-dep vimsẽ cài đặt các phụ thuộc cho gói vim. Nhưng ở đây vì chúng ta không có gói vim mới nhất trong các gói nguồn (vì chúng ta đang xây dựng từ các nguồn) nên lệnh sẽ cài đặt các phụ thuộc chính xác như thế nào? Nếu tôi đang cố gắng xây dựng Vim8 từ các nguồn và danh sách gói của tôi chứa vim7.4, apt-get build-dep vimsẽ cài đặt các phụ thuộc của vim7.4 phải không? (Tôi không thể kiểm tra nó ngay bây giờ, xin lỗi)
statox

Nó sẽ cài đặt các phụ thuộc mà chúng ta cần để biên dịch mã nguồn vim mà chúng ta có thể lấy từ github. Bằng cách này, chúng tôi không cần phải theo dõi tất cả các thư viện được sử dụng bởi mã nguồn Vim. Miễn là mã nguồn chúng tôi biên dịch không phụ thuộc vào phiên bản không đóng gói của thư viện, điều này hoàn toàn tốt.
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
Chào mừng đến với trang web! Nó có thể hữu ích để mô tả cái này là gì, nó làm gì và làm thế nào để sử dụng nó. Không phải ai đọc nó cũng sẽ quen thuộc với các lệnh bạn sử dụng hoặc viết / sử dụng tập lệnh bash, git và trình quản lý gói. Tôi có thể thấy từ các chỉnh sửa của bạn rằng bạn đã hoàn thành tốt công việc đó ở nơi khác!
Giàu

Đối với những người biết những gì nó đang làm, nó hoạt động rất tốt, / usr / local / bin / vim đã nhanh chóng sẵn sàng để đi. / Usr / bin / vim hiện tại của bạn được giữ nguyên vị trí.
rshdev

1

Một tùy chọn khác là cài đặt Homebrew trên Linix làm trình quản lý gói thay thế và sử dụng nó để cài đặt vim mới nhất với:

brew install vim

Tính năng Homebrew:

  • Có thể cài đặt phần mềm vào thư mục chính của bạn và do đó không yêu cầu sudo
  • Cài đặt phần mềm không được đóng gói bởi phân phối máy chủ của bạn
  • Cài đặt các phiên bản phần mềm cập nhật khi phân phối máy chủ của bạn cũ
  • Sử dụng cùng một trình quản lý gói để quản lý các hệ thống macOS, Linux và Windows của bạn

Chào mừng đến với trang web của chúng tôi David! Tôi gặp khó khăn khi xem cách homebrew giải quyết vấn đề này: Các kho lưu trữ của homebrew có cập nhật hơn so với apt không?
statox

@statox Có, kho lưu trữ homebrew thường là phiên bản mới nhất.
David nở

Ok, thật tốt khi biết :)
statox
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.