ฉันจะรับ Vim เวอร์ชันใหม่บน Ubuntu ได้อย่างไร


34

แพ็คเกจของ Ubuntu นั้นค่อนข้างเก่า แต่สำหรับบางโปรแกรมบนเดสก์ท็อป (เช่น Vim) ฉันค่อนข้างจะมีเวอร์ชั่นล่าสุดเนื่องจากเวอร์ชั่นใหม่กว่านั้นมักจะแก้ไขข้อบกพร่องต่าง ๆ

ฉันจะรับ Vim เวอร์ชั่นล่าสุดที่สมเหตุสมผลบน Ubuntu ได้อย่างไร?


บางทีPPA ของ jonathonfอาจเหมาะกับคุณ แต่จะดีกว่าถ้าคุณใช้ Ubuntu 16.04 เพราะเขาบอกว่า"เมื่อวันที่ 24 ตุลาคมฉันจะเป็นแพ็คเกจสำหรับ 14.04 ถ้าเป็นการอัปเดตที่ง่าย"
joeytwiddle

4
@ Joetwiddle สิ่งที่มี PPAs คือคุณเชื่อใจคนแปลกหน้าจากอินเทอร์เน็ต™ที่มีการเข้าถึงรูทไปยังระบบของคุณซึ่งอาจไม่ใช่ความคิดที่ดีขึ้นอยู่กับข้อกำหนดด้านความปลอดภัยและระดับความหวาดระแวงของคุณ (ดู: PPA ปลอดภัยหรือไม่ เพิ่มในระบบของฉันและอะไรคือ“ ธงสีแดง” ที่ควรระวัง?และมีการรับประกันว่าซอฟต์แวร์จาก Launchpad PPAs ปราศจากไวรัสและภัยคุกคามลับๆหรือไม่? )
Martin Tournoij

คำตอบ:


49

คุณมีสามตัวเลือกที่แตกต่างกัน:

  • รอให้มีการเพิ่มเวอร์ชั่นล่าสุดลงในแพ็คเกจการแจกจ่าย โปรดทราบว่าคุณอาจต้องการเรียนรู้ภาษาใหม่หรือสร้างเรือด้วยมือเปล่าในขณะที่คุณรอ

หากการรอหลายปีไม่ดีสำหรับคุณคุณมีสองทางเลือกดังนี้:

  • ใช้ PPA ที่มีเวอร์ชั่นล่าสุด:
    • ข้อดี:
      • ง่ายต่อการทำ
      • อัตโนมัติทั้งหมด
      • ให้คุณติดตั้ง Vim เป็นซอฟต์แวร์อื่น ๆ
    • จุดด้อย:
      • คุณให้สิทธิ์ผู้ใช้รูทแก่คนแปลกหน้าโดยทั่วไป
      • วิธีนี้ใช้ได้กับ Ubuntu และดิสทริบิวชันที่ได้รับโดยใช้ระบบ PPA เท่านั้น
  • สร้างเสียงเรียกเข้าจากแหล่งที่มา:
    • ข้อดี:
      • คุณได้รับการปรับจูนตัวเลือกต่าง ๆ ที่คุณเปิดใช้งาน (gui, Python / Lua และอื่น ๆ )
      • คุณได้รับรุ่นตกเลือดและไม่ต้องการผู้ดูแลบุคคลที่สามเพื่อรับมัน
      • เป็นประโยชน์เสมอในการเรียนรู้วิธีรวบรวมซอฟต์แวร์จากแหล่งต่าง ๆ
      • นี่คือวิธีการกระจายผู้ไม่เชื่อเรื่องพระเจ้า
    • จุดด้อย:
      • ไม่อัตโนมัติเหมือนตัวเลือก PPA
      • สามารถน่ากลัวสำหรับผู้ใช้ใหม่

ในสองกรณีหลังนี่คือขั้นตอนสำหรับตัวเลือกเหล่านี้:


PPA

นี่คือการสอนออนไลน์บนtipsonubuntu.com (ขอบคุณ @joeytwiddle ที่แนะนำในการแสดงความคิดเห็น)

ก่อนเปิดเทอร์มินัลและใช้คำสั่งต่อไปนี้ สิ่งนี้จะเพิ่ม Personal Packet Archive (PPA) ที่ดูแลโดย joathonf ให้คุณ repos และให้ Ubuntu ทราบตำแหน่งที่จะหา Vim:

sudo add-apt-repository ppa:jonathonf/vim

ฉันจะทำซ้ำที่นี่ว่าการทำเช่นนี้ให้สิทธิ์ root เพื่อสคริปต์ใน PPA นี้จะทำเฉพาะในกรณีที่คุณไว้วางใจได้ คุณอาจต้องการอ่านมีความปลอดภัยของ PPA ที่จะเพิ่มลงในระบบของฉันและ "ธงสีแดง" ที่ต้องระวังคืออะไร และมีการรับประกันใด ๆ ว่าซอฟต์แวร์จาก Launchpad PPAs ปราศจากไวรัสและภัยคุกคามลับๆหรือไม่ .

อัปเดตรายการแพ็กเก็ตดังนั้น Ubuntu จะค้นหา PPA เพื่อค้นหาไฟล์ Vim:

sudo apt update

ในที่สุดติดตั้งเป็นกลุ่ม:

sudo apt install vim

และธาดา! มีการติดตั้งเป็นกลุ่ม โปรดทราบว่าคุณสามารถทำได้จากตัวจัดการแพ็คเกจ GUI

ทราบว่านี้ไม่ได้เป็นเพียง PPA สามารถใช้ได้กับรุ่นใหม่ที่เป็นกลุ่มคุณสามารถใช้เครื่องมือค้นหาของคุณชื่นชอบที่จะพบมากขึ้น (และทำจำไว้ว่าคุณจะไว้วางใจคนแปลกหน้าจากอินเทอร์เน็ตที่มีการเข้าถึงรากไปยังระบบของคุณ)


อาคารจากแหล่งต่าง ๆ

ตัวเลือกที่สองคือการสร้างเป็นกลุ่มจากแหล่งที่มา สิ่งนี้แสดงถึงการจัดการเพิ่มเติมบางอย่างและสามารถสร้างความหวาดกลัวให้กับผู้ใช้รายใหม่ แต่มันเป็นวิธีที่ดีที่สุดในการรับงานสร้างล่าสุด

มีแหล่งข้อมูลออนไลน์มากมายที่จะแนะนำคุณตลอดขั้นตอนนี้:

ขั้นตอนทั่วไปมีดังต่อไปนี้คุณอาจต้องปรับแต่งให้เหมาะกับความต้องการของคุณ แต่แนวคิดหลักอยู่ที่นี่:

ก่อนอื่นคุณอาจต้องติดตั้งการอ้างอิงบางอย่าง ตัวอย่างเช่นใช้คำสั่งนี้ (แนะนำโดย 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

โปรดทราบว่าคุณอาจจะไม่จำเป็นต้องทุกอย่าง: ยกตัวอย่างเช่นถ้าคุณจะไม่ใช้ 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เนื่องจากคุณทำการเปลี่ยนแปลงแล้วคุณสามารถ 'ซ่อน' การเปลี่ยนแปลงของคุณ (เช่นลบออกชั่วคราว) ให้ดึงการเปลี่ยนแปลงแล้วเรียกคืนการปรับเปลี่ยนของคุณ หากคุณทำเช่นนั้นฉันจะสมมติว่าคุณคุ้นเคยกับคอมไพล์และจะไม่ให้ขั้นตอนการติดตาม (เป็นรายละเอียดในเอกสาร vim.org)

จากนั้นคุณสามารถสร้าง Vim ได้เช่นเดียวกับการสร้างซอฟต์แวร์อื่น ๆ จากแหล่งที่มา ไฟล์src / INSTALLควรให้ข้อมูลที่คุณต้องการรวบรวม Vim

เวิร์กโฟลว์ปกติจะเริ่มต้นด้วย:

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

ลบ--enable-guiถ้าคุณไม่ต้องการ gVim

หากคุณไม่มีสิทธิ์การเข้าถึงรูทบนเครื่องที่ติดตั้ง Vim คุณอาจต้องการเพิ่ม--prefixตัวเลือกที่อนุญาตให้คุณใช้ไดเรกทอรีที่คุณมีสิทธิ์การเข้าถึง ตัวอย่างเช่นคุณสามารถใช้:

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

configureสคริปต์สามารถใช้เวลามากของการขัดแย้งในการปรับแต่งคุณสมบัติที่คุณต้องการเปิดใช้งาน ใช้เวลาสักครู่ ในขณะที่ทำงานมันพิมพ์ข้อความที่บอกคุณสมบัติที่กำลังตรวจสอบ

เมื่อมีการกำหนดค่าคุณสามารถรวบรวมโปรแกรมด้วย:

make

มีคำสั่งเพิ่มเติมให้เรียกใช้การตรวจสอบตัวเอง ( อย่าถามฉันว่าพวกเขาทำอะไรฉันจะข้ามพวกเขาไปเสมอ :-) ):

make check

ในที่สุดติดตั้งเป็นกลุ่ม/usr/local/(คำสั่งนี้ต้องใช้สิทธิ์ root):

sudo make install

หากต้องการลบไฟล์ที่ไม่มีประโยชน์ซึ่งสร้างขึ้นสำหรับการคอมไพล์คุณสามารถเรียกใช้:

make clean
make distclean

และที่นี่คุณพร้อมติดตั้ง Vim แบบสด

คุณอาจต้องการลบเสียงเรียกเข้าใด ๆ ที่ติดตั้งจาก repo ของ Ubuntu แต่คุณไม่จำเป็นต้องทำ โดยค่าเริ่มต้นเป็นกลุ่มจะติดตั้งมากกว่า/usr/local/ /usr/เพียงตรวจสอบให้แน่ใจว่าคุณกำลังใช้เวอร์ชัน Vim ที่ถูกต้อง (เช่น/usr/local/bin/vimไม่ใช่/usr/bin/vim)


1
เกี่ยวกับการพึ่งพาsudo apt-get build-dep vimก็ยิ่งง่ายต่อการใช้งาน ไม่เช่นนั้นฉันจะเพิ่มบันทึกย่อ--prefixเนื่องจากเราทุกคนไม่ได้รับสิทธิ์รูทซึ่งเป็นเรื่องปกติ
Luc Hermitte

@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

มันจะติดตั้งการอ้างอิงที่เราต้องการเพื่อรวบรวมซอร์สโค้ดเสียงเรียกเข้าที่เราสามารถหาได้จาก gitHub ด้วยวิธีนี้เราไม่จำเป็นต้องติดตามไลบรารีทั้งหมดที่ใช้โดยซอร์สโค้ด Vim ตราบใดที่ซอร์สโค้ดที่เรากำลังรวบรวมไม่ได้ขึ้นอยู่กับไลบรารี่ที่ไม่มีการทำแพ็กเกจ
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
ยินดีต้อนรับสู่เว็บไซต์! มันอาจเป็นประโยชน์ในการอธิบายว่ามันคืออะไรมันทำอะไรและใช้อย่างไร ไม่ใช่ทุกคนที่อ่านสิ่งนี้จะคุ้นเคยกับคำสั่งที่คุณใช้หรือเขียน / ใช้สคริปต์ทุบตี git และผู้จัดการแพ็คเกจ ฉันเห็นได้จากการแก้ไขของคุณว่าคุณทำได้ดีในการทำที่อื่นแล้ว!
รวย

สำหรับผู้ที่รู้ว่ากำลังทำอะไรมันใช้งานได้ดี / usr / local / bin / vim พร้อมที่จะไปอย่างรวดเร็ว ที่มีอยู่ / usr / bin / vim ของคุณถูกทิ้งไว้ในสถานที่
rshdev

1

อีกตัวเลือกหนึ่งคือการติดตั้งHomebrew บน Linixเป็นตัวจัดการแพ็คเกจสำรองและใช้เพื่อติดตั้ง vim ล่าสุดด้วย:

brew install vim

คุณสมบัติ Homebrew:

  • สามารถติดตั้งซอฟต์แวร์ในโฮมไดเร็กตอรี่ของคุณและไม่จำเป็นต้องใช้ sudo
  • ติดตั้งซอฟต์แวร์ที่ไม่ได้จัดทำแพคเกจโดยการกระจายโฮสต์ของคุณ
  • ติดตั้งซอฟต์แวร์เวอร์ชันล่าสุดเมื่อการแจกจ่ายโฮสต์ของคุณเก่า
  • ใช้ตัวจัดการแพ็คเกจเดียวกันเพื่อจัดการระบบ macOS, Linux และ Windows ของคุณ

ยินดีต้อนรับสู่เว็บไซต์ของเรา David! ฉันมีปัญหาในการดูว่าโฮมบรูว์แก้ปัญหานี้ได้อย่างไร: ที่เก็บโฮมบรูว์เป็นปัจจุบันมากกว่าที่ฉลาดหรือไม่?
statox

@statox ใช่ที่เก็บ homebrew โดยทั่วไปแล้วเป็นเวอร์ชั่นใหม่ล่าสุด
David Hatch

โอเคน่ารู้ :)
statox
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.