मैं उबंटू पर विम का एक नया संस्करण कैसे प्राप्त कर सकता हूं?


34

उबंटू के पैकेज बहुत पुराने हो सकते हैं, लेकिन कुछ डेस्कटॉप कार्यक्रमों (जैसे विम) के लिए मेरे पास नवीनतम संस्करण होंगे, क्योंकि नए संस्करण अक्सर अपने बग को ठीक करते हैं।

मैं उबंटू पर एक हालिया विम संस्करण कैसे प्राप्त कर सकता हूं?


शायद jonathonf का PPA आपके लिए काम कर सकता है। लेकिन बेहतर है अगर आप उबंटू 16.04 का उपयोग कर रहे हैं, क्योंकि वह कहता है "24 अक्टूबर तक, मैं केवल 14.04 के लिए पैकेजिंग करूंगा यदि यह एक आसान अपडेट है।"
joeytwiddle

4
@joeytwiddle पीपीए के साथ हालांकि यह है कि आप इंटरनेट ™ से एक यादृच्छिक अजनबी पर भरोसा कर रहे हैं जो आपके सिस्टम के रूट एक्सेस के साथ है, जो शायद आपकी सुरक्षा आवश्यकताओं और व्यामोह के स्तर के आधार पर एक महान विचार नहीं है (देखें: क्या एएमपीए सुरक्षित हैं मेरे सिस्टम में जोड़ें और बाहर देखने के लिए कुछ "लाल झंडे" क्या हैं? ( क्या कोई गारंटी है कि लॉन्चपैड पीपीए से सॉफ़्टवेयर वायरस और पिछले दरवाजे के खतरों से मुक्त है? )।
मार्टिन टूरनोइज

जवाबों:


49

आपके पास तीन अलग-अलग विकल्प हैं:

  • वितरण संस्करणों में नए संस्करणों के लिए प्रतीक्षा करें। ध्यान दें कि आप एक नई भाषा सीखना चाहते हैं या प्रतीक्षा करते समय अपने नंगे हाथों से एक जहाज का निर्माण कर सकते हैं।

यदि कई वर्षों तक प्रतीक्षा करना आपके लिए अच्छा नहीं है तो आपके पास निम्नलिखित दो विकल्प हैं:

  • नवीनतम संस्करण वाले PPA का उपयोग करें:
    • पेशेवरों:
      • करने में आसान।
      • पूरी तरह से स्वचालित।
      • आप किसी अन्य सॉफ्टवेयर के रूप में विम को स्थापित करें।
    • विपक्ष:
      • आप मूल रूप से एक पूर्ण अजनबी के लिए रूट विशेषाधिकार प्रदान करते हैं।
      • यह विधि केवल उबंटू और व्युत्पन्न वितरण पर पीपीए प्रणाली का उपयोग करके काम करती है।
  • स्रोतों से विम बनाएँ:
    • पेशेवरों:
      • आपके द्वारा सक्षम किए गए विकल्पों की एक अच्छी ट्यूनिंग मिलती है (गुई, पायथन / लुआ सपोर्ट, आदि)।
      • आपको रक्तस्राव बढ़त संस्करण मिलता है और इसे प्राप्त करने के लिए किसी तीसरे पक्ष के अनुरक्षक की आवश्यकता नहीं होती है।
      • किसी स्रोत से सॉफ़्टवेयर संकलित करना सीखना हमेशा उपयोगी होता है।
      • यह एक वितरण अज्ञेय विधि है।
    • विपक्ष:
      • पीपीए विकल्प के रूप में स्वचालित नहीं।
      • एक नए उपयोगकर्ता के लिए भयावह हो सकता है।

दो बाद के मामलों में, इन विकल्पों के लिए एक प्रक्रिया यहां दी गई है:


पीपीए

यहाँ tipsonubuntu.com पर एक ऑनलाइन ट्यूटोरियल है (धन्यवाद @joeytwiddle जिन्होंने इसे टिप्पणियों में सुझाया है)।

पहले एक टर्मिनल खोलें और निम्नलिखित कमांड का उपयोग करें। यह joathonf द्वारा बनाए गए पर्सनल पैकेट आर्काइव (PPA) को आपके साथ जोड़ देगा और उबंटू को बताएगा कि विम के लिए कहां देखना है:

sudo add-apt-repository ppa:jonathonf/vim

मैं यहां दोहराता हूं कि ऐसा करने से इस पीपीए में स्क्रिप्ट को रूट विशेषाधिकार दिए जाते हैं, इसे केवल तभी करें जब आप इस पर भरोसा करते हैं । आप पढ़ना चाहते हैं PPA मेरे सिस्टम में जोड़ने के लिए सुरक्षित हैं और बाहर देखने के लिए कुछ "लाल झंडे" क्या हैं? और क्या कोई गारंटी है कि लॉन्चपैड पीपीए से सॉफ्टवेयर वायरस और पिछले दरवाजे के खतरों से मुक्त है?

पैकेट सूची को अपडेट करें ताकि उबंटू पीपीए में विम फ़ाइलों को खोजने के लिए देखेगा:

sudo apt update

अंत में विम स्थापित करें:

sudo apt install vim

और टाडा! विम स्थापित है। ध्यान दें कि आप GUI पैकेज मैनेजर से भी कर सकते हैं।

ध्यान दें कि यह केवल पीपीए नए विम संस्करणों के साथ उपलब्ध नहीं है, आप और अधिक को खोजने के लिए अपने पसंदीदा खोज इंजन का उपयोग कर सकते हैं (और कर याद आप अपने सिस्टम के लिए रूट का उपयोग के साथ इंटरनेट से कुछ अजनबी पर भरोसा कर रहे हैं)।


स्रोतों से भवन

एक दूसरा विकल्प स्रोतों से विम का निर्माण करना है। यह कुछ अतिरिक्त हेरफेर का अर्थ है और एक नए उपयोगकर्ता के लिए भयावह हो सकता है, लेकिन यह अंतिम निर्माण प्राप्त करने का सबसे अच्छा तरीका है।

इस प्रक्रिया के माध्यम से आपका मार्गदर्शन करने के लिए कई ऑनलाइन संसाधन हैं:

एक सामान्य प्रक्रिया निम्नलिखित है, आपको अपनी आवश्यकताओं को पूरा करने के लिए इसे मोड़ने की आवश्यकता हो सकती है लेकिन मुख्य विचार यहाँ है:

पहले आपको कुछ निर्भरताएं स्थापित करने की आवश्यकता हो सकती है। उदाहरण के लिए इस कमांड का उपयोग करें (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

ध्यान दें कि शायद आपको हर चीज की आवश्यकता नहीं होगी: उदाहरण के लिए यदि आप लुआ का उपयोग नहीं करेंगे, तो 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 डॉक्टर में विस्तृत है)।

फिर आप विम का निर्माण कर सकते हैं क्योंकि आप स्रोतों से किसी अन्य सॉफ़्टवेयर का निर्माण करेंगे। फ़ाइल src / INSTALL आपको वह जानकारी प्रदान करनी चाहिए जो आपको विम को संकलित करने की आवश्यकता है।

एक नियमित वर्कफ़्लो के साथ शुरू होगा:

./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/(इस कमांड को रूट विशेषाधिकारों की आवश्यकता है):

sudo make install

अब बेकार फ़ाइलों को हटाने के लिए जो संकलन के लिए बनाई गई थीं, जिन्हें आप चला सकते हैं:

make clean
make distclean

और यहां आप एक ताजा विम इंस्टॉल के साथ हैं।

आप शायद उबंटू रेपो से स्थापित किसी भी विम को निकालना चाहेंगे, लेकिन आपको इसकी आवश्यकता नहीं है। डिफ़ॉल्ट रूप से, विम इसके /usr/local/बजाय स्थापित करेगा /usr/। बस सुनिश्चित करें कि आप सही विम संस्करण चला रहे हैं (यानी /usr/local/bin/vim, और नहीं /usr/bin/vim)।


1
निर्भरता के संबंध में, sudo apt-get build-dep vimउपयोग करने के लिए और भी सरल है। अन्यथा, मैंने एक नोट जोड़ा है, --prefixजैसा कि हम सभी के पास रूट विशेषाधिकार नहीं है, जो काफी सामान्य है।
ल्यूक हरमिट

इन सुझावों के लिए @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
ल्यूक हर्मिट्टे

@LucHermitte के लिए ठीक है prefix। क्योंकि build-depमेरा कहना है कि मैं इस कमांड से परिचित नहीं हूं इसलिए मुझे डर है कि मैं ठीक से नहीं समझ पा रहा हूं: जो मैं समझता हूं apt-get build-dep vimवह पैकेज के लिए निर्भरता स्थापित करेगा vim। लेकिन यहाँ के रूप में हम संकुल स्रोतों में नवीनतम विम पैकेज नहीं है (क्योंकि हम स्रोतों से निर्माण कर रहे हैं) कैसे कमांड सही निर्भरता स्थापित करेगा? अगर मैं Vim8 को स्रोतों से बनाने की कोशिश कर रहा हूं और मेरी पैकेज सूची में vim7.4 है, तो apt-get build-dep vimक्या vim7.4 की निर्भरता स्थापित होगी? (मैं अभी परीक्षण नहीं कर सकते, खेद)
statox

यह उन निर्भरताओं को स्थापित करेगा जिनकी आवश्यकता हमें vim स्रोत कोड संकलित करने के लिए है जिसे हम github से प्राप्त कर सकते हैं। इस तरह हमें विम स्रोत कोड द्वारा उपयोग किए जाने वाले सभी पुस्तकालयों को ट्रैक करने की आवश्यकता नहीं है। जब तक हम जो सोर्स कोड संकलित कर रहे हैं, वह किसी लाइब्रेरी के नॉन-पैकेज्ड वर्जन पर निर्भर नहीं करता है, यह पूरी तरह से ठीक है।
ल्यूक हरमिट

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
साइट पर आपका स्वागत है! यह वर्णन करना उपयोगी हो सकता है कि यह क्या है, यह क्या करता है, और इसका उपयोग कैसे करें। हर कोई जो इसे नहीं पढ़ता है, वह आपके द्वारा उपयोग किए जाने वाले आदेशों से परिचित होगा या बैश स्क्रिप्ट, गिट, और पैकेज प्रबंधकों का उपयोग करेगा। मैं आपके संपादन से देख सकता हूँ कि आपने पहले ही कहीं और ऐसा करने का अच्छा काम किया है!
रिच

उन लोगों के लिए जो यह जानते हैं कि यह क्या कर रहा है, यह बहुत अच्छा काम करता है, / usr / स्थानीय / बिन / विम जल्दी से जाने के लिए तैयार है। आपके मौजूदा / usr / bin / vim को जगह में छोड़ दिया गया है।
rshdev

1

एक और विकल्प वैकल्पिक पैकेज मैनेजर के रूप में लाइनिक्स पर होमब्रे को स्थापित करना है और इसके साथ नवीनतम विम स्थापित करने के लिए इसका उपयोग करना है:

brew install vim

Homebrew विशेषताएं:

  • अपने घर निर्देशिका के लिए सॉफ्टवेयर स्थापित कर सकते हैं और इसलिए sudo की आवश्यकता नहीं है
  • अपने मेजबान वितरण द्वारा पैक नहीं किया गया सॉफ़्टवेयर स्थापित करें
  • जब आपका होस्ट वितरण पुराना हो, तो सॉफ़्टवेयर के अद्यतित संस्करण स्थापित करें
  • अपने macOS, Linux और Windows सिस्टम को प्रबंधित करने के लिए उसी पैकेज मैनेजर का उपयोग करें

हमारी साइट पर आपका स्वागत है डेविड! मुझे यह देखने में परेशानी है कि होमब्रेव इस समस्या को कैसे हल करता है: क्या होमब्रॉव रिपॉजिटरी एप्स की तुलना में अधिक अद्यतित हैं?
स्टेटॉक्स

@ स्टैटॉक्स हाँ, होमब्रे रिपॉजिटरी आमतौर पर नवीनतम संस्करण हैं।
डेविड हैच

ठीक है, अच्छा पता करने के लिए :)
statox
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.