उबन्टु 12.04 पर अजगर 2.7.5 में अपग्रेड करना


9

Ubuntu 12.04 python v 2.7.3डिफ़ॉल्ट रूप से आता है । मैं इसे अपग्रेड करना चाहता हूं v 2.7.5। मैंने इस प्रश्न में दिए गए निर्देशों की कोशिश की ,

sudo apt-get install build-essential
sudo apt-get install libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

cd ~/Downloads/
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz

tar -xvf Python-2.7.5.tgz
cd Python-2.7.5

./configure
make
sudo make altinstall

अंतिम कमांड त्रुटि के साथ विफल हो जाती है:

...
Compiling /usr/local/lib/python2.7/xmlrpclib.py ...
Compiling /usr/local/lib/python2.7/zipfile.py ...
make: *** [libinstall] Error 1

मैं इसे अपग्रेड कैसे कर सकता हूं?


3
क्या आप बहुत ही सुनिश्चित हैं कि आपको 2.7.5 पर अपग्रेड करने की आवश्यकता है? सभी बगफिक्स को उबंटू में 2.7.3 पर बैकपोर्ट किया जा रहा है। आप वास्तव में वास्तव में स्रोत से संकलन के साथ आप सभी सिरदर्द को बचाना चाहते हैं। कृपया 2.7.5 स्थापित करने का विशिष्ट कारण प्रदान करें। इस साइट पर टूटे हुए पायथन इंस्टॉलेशन के बारे में प्रश्न दैनिक व्यवसाय हैं और यह देखने के लिए बहुत सामान्य है कि यह स्रोत से इंस्टॉलेशन के कारण हो रहा है। उदाहरण के लिए देखें askubuntu.com/q/323248/88802
gertvdijk

1
मैं गलत तरीके से एक पैकेज का उपयोग कर रहा था, लेकिन सवाल अभी भी खड़ा है और मैं वास्तव में नीचे दिए गए स्पष्टीकरण के साथ नहीं समझता।
गेब्रियल

जब आप दौड़ते हैं तो क्या होता sudo make **install**है sudo make **altinstall**? क्या आपको भी यही त्रुटि मिलती है?
केविन बोवेन

अब मैं वास्तव में आपके समाधान की कोशिश करने से डरता हूं क्योंकि मैंने बहुत बार सुना है कि यह मेरे सिस्टम को तोड़ देगा। मैं आपके उत्तर को स्वीकार करूँगा क्योंकि यह वास्तव में पूर्ण दिखता है। धन्यवाद।
गेब्रियल

2
@ गैब्रिएल मैगगोटब्रेन द्वारा समाधान एक बहुत अच्छा है; यह आपको अपनी पसंद के संस्करण को pyenv में स्थापित करने की अनुमति देता है। आपके सिस्टम के पाइथन पर कोई नुकसान नहीं हुआ है। मुझे यह भविष्य के सवालों के लिए याद होगा। :)
gertvdijk

जवाबों:


13

स्रोत से संस्थापन निश्चित रूप से किया जा सकता है, लेकिन मुझे अपने उबंटू सिस्टम के अजगर पैकेज को कई कारणों से स्रोत से अपग्रेड करने में संकोच होगा:

  1. ऐसा करने से स्रोत से एक सीधा संकलन करके सिस्टम को तोड़ दिया जा सकता है (मैं बिल्कुल निश्चित नहीं हूं कि उबंटू अपने पायथन पैकेज का निर्माण कैसे करता है)।

  2. मुझे चिंता होगी कि आगे जाने वाले रिपॉजिटरी से मॉड्यूल का उपयोग करने के साथ समस्या हो सकती है।

एक पीपीए है जो सक्रिय दिखता है (2.7.x ट्रेन को आखिरी बार इस साल अप्रैल में बनाया गया था), लेकिन पीपीए में अभी 2.7.5 बिल्ड नहीं है। आप अनुरक्षक को पिंग करना चाहते हैं और देख सकते हैं कि भविष्य के निर्माण के लिए उनकी योजनाएं क्या हैं और यदि वे 2.7.5 में से एक को शामिल करने जा रहे हैं। यदि संभव हो, तो मैं इसे स्रोत से स्थापित करने की सलाह दूंगा। किसी भी नए सॉफ्टवेयर के साथ, मैं इसे पहले एक परीक्षण प्रणाली पर बनाने की सिफारिश करूंगा।

एक अन्य विकल्प सैंडबॉक्स का उपयोग करना है ( pyenv) किसी भी नए अप्रयुक्त सॉफ़्टवेयर पैकेज को चलाने के लिए। आपके सिस्टम पर एक सीधी स्थापना आपके मशीन के संचालन पर प्रतिकूल प्रभाव डाल सकती है।

पैकेज पाइनेव आपके मशीन पर स्थापित मुख्य पायथन पैकेज को प्रभावित किए बिना आपके बॉक्स पर एक गैर-सिस्टम पायथन संस्करण को स्थापित करने की अनुमति देगा (फिर से: आपका सिस्टम पायथन के वर्तमान में स्थापित संस्करण पर निर्भर है और इसे अपग्रेड करके आपके सिस्टम को तोड़ सकता है)। पहले, अजगर पैकेज को सिस्टम से अजगर पैकेजों को अलग करने के लिए सिफारिश की गई थी, लेकिन तब से pyenvपैकेज द्वारा पदावनत और छंटनी की गई है ।

pyenvपैकेज निम्नलिखित कार्यक्षमता प्रदान करता है:

  • आपको प्रति उपयोगकर्ता के आधार पर वैश्विक पायथन संस्करण को बदलने की सुविधा देता है।
  • प्रति-प्रोजेक्ट पायथन संस्करणों के लिए समर्थन प्रदान करता है।
  • आपको एक पर्यावरण चर के साथ पायथन संस्करण को ओवरराइड करने की अनुमति देता है।
  • एक समय में पायथन के कई संस्करणों से कमांड खोजें।

स्थापना

  1. Pyenv को ~ / .pyenv में देखें।

    git clone git://github.com/yyuu/pyenv.git .pyenv
  2. Pyenv कमांड-लाइन उपयोगिता तक पहुंच के लिए अपने $ PATH में ~ / .pyenv / bin जोड़ें।

    echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile

    Zsh नोट: ~/.zshenvइसके बजाय अपनी फ़ाइल को संशोधित करें ~/.bash_profile

  3. शिम और ऑटो-कम्पलीट करने में सक्षम करने के लिए अपने शेल में पाइनेव इनिट जोड़ें।

    echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

    Zsh नोट: ~/.zshenvइसके बजाय अपनी फ़ाइल को संशोधित करें ~/.bash_profile

  4. अपने खोल को पुनः आरंभ करें ताकि पथ परिवर्तन प्रभावी हो। अब आप pyenv का उपयोग शुरू कर सकते हैं।

    exec $SHELL
  5. पायथन संस्करणों को ~ / .pyenv / संस्करणों में स्थापित करें। उदाहरण के लिए, पायथन 2.7.5 को स्थापित करने के लिए, स्रोत को डाउनलोड और अनपैक करें, फिर चलाएँ:

    pyenv install 2.7.5

    नोट यदि आपको स्रोत से निर्माण के लिए कॉन्फ़िगरेशन विकल्प पास करने की आवश्यकता है, तो कृपया CONFIGURE_OPTS पर्यावरण चर का उपयोग करें।

  6. शिम बायनेरिज़ का पुनर्निर्माण करें। जब भी आप एक नया पायथन बाइनरी स्थापित करते हैं (उदाहरण के लिए, नया पायथन संस्करण स्थापित करते समय, या बाइनरी प्रदान करने वाले पैकेज को स्थापित करते समय) आपको ऐसा करना चाहिए।

    pyenv rehash

1
pyenvकई कारणों से शानदार है। प्रारंभिक सेटअप के बाद न्यूनतम परेशानी के साथ मेरे प्रयोग में मेरी मदद करता है।
फहद यूसुफ

क्या यह किसी विशिष्ट उपयोगकर्ता के homeफ़ोल्डर से चलाया जाने वाला है ? मैं इसे हर उपयोगकर्ता के लिए कैसे स्थापित कर सकता हूं? मैं स्थापित कर सकते हैं ./pyenvमें /usr/local/binया कि एक बुरा विचार है?
बायोहाज़र्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.