Bagaimana saya bisa mendapatkan Vim versi yang lebih baru di Ubuntu?

34

Paket Ubuntu bisa sangat lama, tetapi untuk beberapa program desktop (seperti Vim) saya lebih suka memiliki versi terbaru, karena versi yang lebih baru sering memperbaiki berbagai bug.

Bagaimana saya bisa mendapatkan versi Vim yang cukup baru di Ubuntu?

Martin Tournoij
sumber
Mungkin PPA jonathonf mungkin bekerja untuk Anda. Tetapi lebih baik jika Anda menggunakan Ubuntu 16.04, karena dia berkata "Pada 24 Oktober, saya hanya akan mengemas untuk 14,04 jika itu pembaruan yang mudah."
joeytwiddle
4
@joeytwiddle Masalahnya dengan PPA adalah bahwa Anda mempercayai Orang Asing Acak Dari Internet ™ dengan akses root ke sistem Anda, yang mungkin bukan ide bagus tergantung pada persyaratan keamanan Anda dan tingkat paranoia (lihat: Apakah PPA aman untuk tambahkan ke sistem saya dan "bendera merah" apa yang harus diperhatikan? dan apakah ada jaminan bahwa perangkat lunak dari Launchpad PPA bebas dari virus dan ancaman backdoor? ).
Martin Tournoij

Jawaban:

49

Anda memiliki tiga opsi berbeda:

  • Tunggu versi terbaru untuk ditambahkan ke paket distribusi. Perhatikan bahwa Anda mungkin ingin mempelajari bahasa baru atau membangun kapal dengan tangan kosong saat menunggu.

Jika menunggu beberapa tahun tidak baik untuk Anda, maka Anda memiliki dua opsi berikut:

  • Gunakan PPA yang berisi versi terbaru:
    • Pro:
      • Mudah untuk dilakukan.
      • Benar-benar otomatis.
      • Biarkan Anda menginstal Vim sebagai perangkat lunak lain.
    • Cons:
      • Anda pada dasarnya memberikan hak akses root kepada orang asing.
      • Metode ini hanya berfungsi di Ubuntu dan distribusi yang diturunkan menggunakan sistem PPA.
  • Bangun Vim dari sumber:
    • Pro:
      • Anda mendapatkan penyesuaian opsi yang Anda aktifkan (gui, dukungan Python / Lua, dll.).
      • Anda mendapatkan versi terbaru dan tidak memerlukan pengelola pihak ketiga untuk mendapatkannya.
      • Selalu bermanfaat untuk mempelajari cara mengompilasi perangkat lunak dari sumber.
      • Ini adalah metode agnostik distribusi.
    • Cons:
      • Tidak otomatis seperti opsi PPA.
      • Dapat menakutkan bagi pengguna baru.

Dalam dua kasus terakhir, berikut adalah prosedur untuk opsi ini:


AKP

Berikut ini adalah tutorial online tentang tipsonubuntu.com (Terima kasih @joeytwiddle yang menyarankannya di komentar).

Pertama buka terminal dan gunakan perintah berikut. Ini akan menambahkan Arsip Paket Pribadi (PPA) yang dikelola oleh joathonf kepada Anda repo dan memberi tahu Ubuntu tempat mencari Vim:

sudo add-apt-repository ppa:jonathonf/vim

Saya akan ulangi di sini bahwa melakukan ini memberikan hak root untuk skrip dalam PPA ini, lakukan hanya jika Anda mempercayainya . Anda mungkin ingin membaca apakah PPA aman untuk ditambahkan ke sistem saya dan "bendera merah" apa yang harus diperhatikan? dan apakah ada jaminan bahwa perangkat lunak dari Launchpad PPA bebas dari virus dan ancaman backdoor? .

Perbarui daftar paket sehingga Ubuntu akan mencari di PPA untuk menemukan file Vim:

sudo apt update

Akhirnya instal vim:

sudo apt install vim

Dan tada! Vim diinstal. Perhatikan bahwa Anda juga dapat melakukannya dari pengelola paket GUI.

Perhatikan bahwa ini bukan satu-satunya PPA yang tersedia dengan versi Vim yang lebih baru, Anda dapat menggunakan mesin pencari favorit Anda untuk menemukan lebih banyak (dan jangan lupa Anda memercayai orang asing dari internet dengan akses root ke sistem Anda).


Membangun dari sumber

Opsi kedua adalah membangun Vim dari sumber. Ini menyiratkan beberapa manipulasi tambahan dan bisa menakutkan bagi pengguna baru, tetapi ini adalah cara terbaik untuk mendapatkan versi terakhir.

Ada beberapa sumber daya online untuk memandu Anda melalui prosedur ini:

Prosedur umum adalah sebagai berikut, Anda mungkin perlu menyesuaikannya agar sesuai dengan kebutuhan Anda, tetapi gagasan utamanya ada di sini:

Pertama, Anda mungkin perlu menginstal beberapa dependensi. Misalnya, gunakan perintah ini (disarankan oleh 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

Perhatikan bahwa Anda mungkin tidak akan membutuhkan semuanya: misalnya jika Anda tidak akan menggunakan Lua, jangan masukkan lua5.1-devke daftar .

Sunting Alih-alih menggunakan apt-get installperintah sebelumnya, Anda dapat menggunakan yang berikut ini. Ini memiliki keuntungan secara otomatis menangani dependensi yang Anda butuhkan:

sudo apt-get build-dep vim

Kemudian dapatkan sumber-sumber di komputer Anda (Anda akan perlu gitmenginstal perintah apt-get install git):

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

Buka direktori ini dan 'tarik' perubahan terakhir:

cd vim
git pull

Jika Anda memiliki kesalahan pada git pullkarena Anda telah membuat perubahan Anda dapat 'menyimpan' modifikasi Anda (yaitu menghapusnya sementara), tarik perubahan dan kemudian kembalikan modifikasi Anda. Jika Anda melakukannya saya akan berasumsi bahwa Anda terbiasa dengan git dan tidak akan memberikan prosedur untuk diikuti (ini dijelaskan dalam doc vim.org).

Anda kemudian dapat membangun Vim seperti halnya Anda membangun perangkat lunak lain dari sumber. File src / INSTALL akan memberi Anda informasi yang Anda perlukan untuk mengkompilasi Vim.

Alur kerja reguler akan dimulai dengan:

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

Hapus --enable-guijika Anda tidak ingin gVim .

Jika Anda tidak memiliki akses root pada mesin yang Anda instal Vim, Anda mungkin ingin menambahkan --prefixopsi yang memungkinkan Anda untuk menggunakan direktori di mana Anda memiliki hak akses. Misalnya, Anda dapat menggunakan:

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

The configureScript dapat mengambil banyak argumen untuk menyempurnakan fitur yang Anda ingin mengaktifkan. Menjalankannya membutuhkan waktu. Saat berjalan, ia mencetak pesan yang memberitahu fitur mana yang sedang diperiksa.

Setelah dikonfigurasi, Anda dapat mengkompilasi program dengan:

make

Perintah opsional ada untuk menjalankan beberapa pemeriksaan diri ( jangan tanya saya apa yang mereka lakukan, saya selalu melewatkannya :-) ):

make check

Akhirnya instal Vim ke /usr/local/(perintah ini membutuhkan hak akses root):

sudo make install

Untuk menghapus file yang sekarang tidak berguna yang dibuat untuk kompilasi Anda kemudian dapat menjalankan:

make clean
make distclean

Dan di sini Anda dengan instalasi Vim baru.

Anda mungkin ingin menghapus Vim apa pun yang telah Anda instal dari repo Ubuntu, tetapi Anda tidak perlu melakukannya. Secara default, Vim akan menginstal ke /usr/local/, daripada /usr/. Pastikan Anda menjalankan versi Vim yang benar (yaitu /usr/local/bin/vim, dan tidak /usr/bin/vim).

statox
sumber
1
Mengenai dependensi, sudo apt-get build-dep vimbahkan lebih mudah digunakan. Kalau tidak, saya akan menambahkan catatan --prefixkarena tidak semua dari kita memiliki hak akses root, yang cukup umum.
Luc Hermitte
@LucHermitte terima kasih atas saran ini. Mengenai apt-get build-dep vimAnda bermaksud menggunakannya pada langkah terakhir instalasi PPA, kan? Sekarang tentang --prefixhal itu memang merupakan catatan penting untuk ditambahkan: apakah --prefix=/usrtempat yang aman untuk memberi saran atau Anda akan merekomendasikan direktori lain (misalnya --prefix=~/bin)?
statox
The build-depperintah dapat digunakan sebagai pengganti sudo apt-get install libncurses5-dev ..... Mengenai --preffix, penggunaannya yang khas adalah --prefix=$HOME:, tetapi belakangan ini saya sedang menggunakan --prefix=$HOME/local/vim. Dengan cara ini, menghapus instalan perangkat lunak semudah rm -rdan menghapus beberapa baris di .profile/.bashrc
Luc Hermitte
@LucHermitte Ok untuk prefix. Karena build-depsaya harus mengatakan bahwa saya tidak begitu terbiasa dengan perintah ini, jadi saya khawatir saya tidak mengerti dengan benar: Dari apa yang saya pahami apt-get build-dep vimakan menginstal dependensi untuk paket vim. Tapi di sini karena kita tidak memiliki paket vim terbaru dalam sumber paket (karena kita membangun dari sumber) bagaimana perintah menginstal dependensi yang benar? Jika saya mencoba membangun Vim8 dari sumber dan daftar paket saya berisi vim7.4, apt-get build-dep vimapakah akan menginstal dependensi vim7.4 bukan? (Saya tidak bisa mengujinya sekarang, maaf)
statox
Ini akan menginstal dependensi yang kita butuhkan untuk mengkompilasi kode sumber vim yang dapat kita peroleh dari github. Dengan cara ini kita tidak perlu melacak semua perpustakaan yang digunakan oleh kode sumber Vim. Selama kode sumber yang kita kompilasi tidak bergantung pada versi pustaka yang tidak dikemas, ini tidak masalah.
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
sumber
5
Selamat datang di situs ini! Mungkin bermanfaat untuk menggambarkan apa ini, apa fungsinya, dan bagaimana menggunakannya. Tidak semua orang yang membaca ini akan terbiasa dengan perintah yang Anda gunakan atau menulis / menggunakan skrip bash, git, dan manajer paket. Saya dapat melihat dari hasil edit Anda bahwa Anda telah melakukan pekerjaan dengan baik di tempat lain!
Kaya
Bagi mereka yang tahu apa yang dilakukannya, ini berfungsi dengan baik, / usr / local / bin / vim dengan cepat siap untuk digunakan. / Usr / bin / vim Anda yang ada ditinggalkan di tempatnya.
rshdev
1

Opsi lain adalah menginstal Homebrew di Linix sebagai manajer paket alternatif dan menggunakannya untuk menginstal vim terbaru dengan:

brew install vim

Fitur Homebrew:

  • Dapat menginstal perangkat lunak ke direktori rumah Anda sehingga tidak memerlukan sudo
  • Instal perangkat lunak yang tidak dikemas oleh distribusi host Anda
  • Instal versi perangkat lunak terbaru ketika distribusi host Anda sudah tua
  • Gunakan manajer paket yang sama untuk mengelola sistem macOS, Linux, dan Windows Anda
David Hatch
sumber
Selamat datang di situs kami David! Saya mengalami kesulitan melihat bagaimana homebrew menyelesaikan masalah ini: Apakah repositori homebrew lebih mutakhir daripada yang apt?
statox
@statox Ya, repositori homebrew umumnya adalah versi terbaru.
David Hatch
Ok, senang tahu :)
statox