সংকলন উত্স দ্বারা পাইথন ইনস্টল করা আছে?


18

আমি কম্পাইল দ্বারা উবুন্টু 14.04 তে পাইথন 2.7.9 ইনস্টল উৎস দ্বারা .configre, makeএবং make altinstallmake altinstallকারণ আমি ডিফল্ট পাইথন ২.7..6 ওভাররাইট করতে চাই না। আমার স্ব ইনস্টল করা 2.7.9 এর মধ্যে রয়েছে /usr/local/bin/python2.7এবং অন্যান্য ডিরেক্টরিতে অন্যান্য অনেক ফাইল রয়েছে /usr/local। উত্স ইনস্টলেশন প্যাকেজে README থেকে :

ইউনিক্স এবং ম্যাক সিস্টেমে আপনি একই ইনস্টলেশন উপসর্গটি ব্যবহার করে পাইথনের একাধিক সংস্করণ ইনস্টল করতে চান (কনফিগার স্ক্রিপ্টের পূর্বশক্তি আর্গুমেন্ট) আপনার অবশ্যই যত্নবান হওয়া উচিত যে আপনার প্রাথমিক পাইথন এক্সিকিউটেবলটি অন্য কোনও সংস্করণ ইনস্টল করে ওভাররাইট করা যাবে না।

"মেক ওয়েলইনস্টল" ব্যবহার করে ইনস্টল করা সমস্ত ফাইল এবং ডিরেক্টরিগুলি প্রধান এবং গৌণ সংস্করণ ধারণ করে এবং পাশাপাশি পাশাপাশি বাস করতে পারে। "মেক ইনস্টল" এছাড়াও $ {উপসর্গ bin / বিন / পাইথন তৈরি করে যা $ f উপসর্গ} /bin/pythonX.Y বোঝায়।

আপনি যদি একই উপসর্গটি ব্যবহার করে একাধিক সংস্করণ ইনস্টল করতে চান তবে আপনাকে অবশ্যই সিদ্ধান্ত নিতে হবে কোন সংস্করণ (যদি থাকে) আপনার "প্রাথমিক" সংস্করণ। "মেক ইনস্টল" ব্যবহার করে সেই সংস্করণটি ইনস্টল করুন। "মেক ওয়েলইনস্টল" ব্যবহার করে অন্য সমস্ত সংস্করণ ইনস্টল করুন।

উদাহরণস্বরূপ, আপনি যদি পাইথন 2.5, 2.6 এবং 3.0 ইনস্টল করতে চান 2.6 প্রাথমিক সংস্করণ হিসাবে, আপনি আপনার 2.6 বিল্ড ডিরেক্টরিতে "মেক ইনস্টল" চালিত করবেন এবং অন্যগুলিতে "মেক ইল্টইনস্টল" চালিয়ে যাবেন।

এখন আমি আমার স্ব ইনস্টলিত 2.7.9 আনইনস্টল করতে চাই।

  1. ভাগ্যক্রমে আমার কাছে এখনও সোর্স কোড রয়েছে, তবে দুর্ভাগ্যক্রমে, মেকফাইলে আনইনস্টল অংশ নেই

    $ sudo make uninstall
    make: *** No rule to make target `uninstall'.  Stop.
    
  2. তারপরে আমি অন্য উপায়ে চেষ্টা করেছি: প্রথমে উত্স এবং সংকলন থেকে একটি ডেব তৈরি করুন, ডেবটি ইনস্টল করুন (আশা করি ইনস্টল করা ফাইলগুলি ওভাররাইট করে এর থেকে make altinstall), এবং তারপরে ডেবটি আনইনস্টল করুন।

    কিন্তু যখন আমি দেবের ফাইল তৈরি checkinstall, আমি নই নিশ্চিত যদি এবং কিভাবে আমি ভিন্নভাবে করা উচিত make altinstallথেকে make install। আমি যা চেষ্টা করেছি তা হ'ল:

    $ checkinstall altinstall
    
    ...
    
    Installing with altinstall...
    
    ========================= Installation results ===========================
    /var/tmp/tmp.4ZzIiwqBNL/installscript.sh: 4: /var/tmp/tmp.4ZzIiwqBNL/installscript.sh: altinstall: not found
    
    ...
    

    আমি অবাক হই যে আমি কীভাবে একটি ডেব তৈরি করতে পারি যাতে ডেব ইনস্টল করার ফলে ইনস্টলেশন প্রক্রিয়াটি নকল হবে make altinstall?

  3. বা আমার অজগরটি 2.7.9 আনইনস্টল করার আপনার উপায় কী?

দ্রষ্টব্য: প্রথম লিঙ্কে উৎস প্যাকেজের এছাড়াও আছে setup.py, install-shব্যতীত README


পাইথন এত জায়গায় ইনস্টল করে না। আমি কেবল ফাইলগুলি ম্যানুয়ালি সরিয়ে ফেলতাম।
ফাহিম মিঠা

থ্যাঙ্কস।তখন সেই জায়গাগুলি খুব বেশি কি না?
18

বাইনারি প্যাকেজগুলির মধ্যে একটিতে একবার দেখুন। আমি মনে করি এটি মূলত একই জায়গাগুলি বাদে এর /usr/localপরিবর্তে ব্যবহৃত হয় /usrdpkg -L python2.7এবং dpkg -L python2.7-minimal। এবং আপনার কী দরকার 2.7.9?
ফাহিম মিঠা

শুনেছি এটিতে ডিফল্টরূপে পাইপ রয়েছে। তবে ইনস্টল করার পরে, আমি পাইপ আছে তা খুঁজে পাচ্ছি না।
সমস্ত

আপনি পাইপ ইনস্টল করতে পারেন apt-get install python-pip
ফাহিম মিঠা

উত্তর:


20

নিম্নলিখিত কমান্ডগুলি আপনার make altinstallঅডিড পাইথনটি সরিয়ে ফেলবে :

rm -f /usr/local/bin/python2.7
rm -f /usr/local/bin/pip2.7
rm -f /usr/local/bin/pydoc
rm -rf /usr/local/bin/include/python2.7
rm -f /usr/local/lib/libpython2.7.a
rm -rf /usr/local/lib/python2.7

আপনাকেও করতে হতে পারে

rm -f /usr/local/share/man/python2.7.1
rm -rf /usr/local/lib/pkgconfig
rm -f /usr/local/bin/idle
rm -f /usr/local/bin/easy_install-2.7

যদিও make altinstall"সিস্টেম পাইথন" -র যদি আপনি ইনস্টল করেন তার থেকে আলাদা মেজর minমিনারের সংখ্যাটি আমার ভালভাবে পরিবেশন করেছে, তবে কেবলমাত্র মাইক্রো সংখ্যা (তৃতীয় অবস্থান) পৃথক হলে এটি কার্যকরভাবে কাজ করে না। এই সংখ্যাটি ইনস্টল করা বাইনারি থেকে বাদ দেওয়া হয় এবং আপনি দুটি সংস্করণ পাইথোনএক্স.ওয়াই দিয়ে শেষ করেন। এটি সর্বদা একটি সমস্যা ছিল তবে একবার বিতরণগুলি 2.7.X এর ভিত্তিতে সিস্টেম ইউটিলিটিগুলি সহ শিপিং শুরু করল এই সমস্যাটি আরও গুরুতর হয়েছে কারণ 2.7 টি পাইথন 2 সিরিজের শেষ বলে মনে করা হচ্ছে।

আইএমও এই সমস্যাটি সমাধানের সর্বোত্তম পন্থা হ'ল এটি হওয়া থেকে বিরত রাখা: অন্য কোনও অজগর দ্বারা ব্যবহৃত নয় এমন ডিরেক্টরিতে ইনস্টল করার জন্য পাইথনটি কনফিগার করুন। আমার সিস্টেমে তারা নেমে যায় /opt/python/X.Y.Z

সেখানে ইনস্টল হওয়া যে কোনও পাইথন ব্যবহার [virualenv][1]করতে আপনি একটি নতুন পরিবেশ তৈরি করতে ব্যবহার করেন:

virtualenv --python=/opt/python/2.7.9/bin/python2.7 venv
source venv/bin/activate

বা ব্যবহার [virtualenvwrapper][2]। আমি যে সিরিজের সাথে কাজ করি তার সর্বশেষতম সংস্করণগুলির জন্য আমার কিছু এলিয়াস রয়েছে।

আপনি যদি toxএকাধিক সংস্করণের বিরুদ্ধে পরীক্ষা করার জন্য ব্যবহার করেন (তবে আপনার উচিত) নীচের উপন্যাসটি এটির বিভিন্ন সংস্করণ সন্ধান করতে সহায়তা করবে:

alias tox='PATH=/opt/python/2.7.9/bin:/opt/python/2.6.9/bin:/opt/python/3.4.3/bin:/opt/python/3.3.6/bin:/opt/python/3.5-dev/bin:$PATH tox'

(এই বর্তমানে সর্বশেষ সংস্করণ, আমি থেকে লিঙ্ক বজায় রাখার দ্বারা একটি কিছুটা ভিন্ন সেটআপ ব্যবহার /opt/python/2.7সর্বশেষ করার /opt/python/2.7.9পাশাপাশি অন্যান্য ছোট সংখ্যার জন্য, ডাউনলোড প্রক্রিয়া মধ্যে, এবং, বিল্ডিং এবং একটি নতুন পাইথন সংস্করণ ইনস্টল করার)

এই ইনস্টলগুলি কখনই সরাসরি ব্যবহার করা হয় না। এগুলি সর্বদা virtualenvকেবলমাত্র পরিবেশের ভিত্তি হিসাবে ব্যবহৃত হয় , তাই আমার কোনও যত্ন নেই যে সেগুলি আমার সাধারণ প্যাথে নেই in


2
/Usr/local/lib/python2.7 মুছবেন না! পিপ দ্বারা ইনস্টল করা সমস্ত বৈশ্বিক পাইথন মডিউলগুলি /usr/local/lib/python2.7/dist-packages লাইভ করে। সেই সব মডিউলই ভেঙে যাবে!
অভাগ

2
@abhaga আপনার সাথে ইনস্টল করা উচিত নয় pipএকটি বাইরের virtualenvউপর কোন Linux ইনস্টলেশন
Anthon

ফাইল এবং ডিরেক্টরিগুলি ম্যানুয়ালি মুছে ফেলে আমাদের প্যাকেজগুলি আনইনস্টল করা উচিত নয়। :) এগুলি ভাল অনুশীলন এবং যখন আমাদের সেগুলি ভাঙার দরকার হয় তখন সর্বদা উপলক্ষ থাকে। তবে এটি জেনে রাখা গুরুত্বপূর্ণ যে ডিরেক্টরিটি সরিয়ে ফেলা নিরাপদ নয়।
অভাগ

আমার CentOS7 এ কিছু আলাদা রয়েছে: ১ টি অন্তর্ভুক্ত হওয়া উচিত: /usr/local/incolve/python2.7, বিন ছাড়া; 2. ম্যান ফাইলটি /usr/local/share/man/man1/python2.7.1; ৩. আরেকটি ফাইল: /usr/local/bin/python2.7-config
বিন এস

7

@ অ্যান্থনের rmতালিকা থেকে শুরু করে এবং নতুন ফাইলগুলি অনুসন্ধান করার জন্য @ বিন-এস পরামর্শ প্রয়োগ করে, আমি আমার পাইথন -৩.6..6 (যা উত্স থেকে ইনস্টল করা হয়েছিল make altinstall) সম্পূর্ণরূপে মুছে ফেলার জন্য এই ব্যাশ-লিপিটি নিয়ে এসেছি :

prefix='/usr/local/'
pyver='3.6'

rm -rf \
    ${prefix}bin/python${pyver} \
    ${prefix}bin/pip${pyver} \
    ${prefix}bin/pydoc \
    ${prefix}bin/include/python${pyver} \
    ${prefix}lib/libpython${pyver}.a \
    ${prefix}lib/python${pyver} \
    ${prefix}bin/python${pyver} \
    ${prefix}bin/pip${pyver} \
    ${prefix}bin/include/python${pyver} \
    ${prefix}lib/libpython${pyver}.a \
    ${prefix}lib/python${pyver} \
    ${prefix}lib/pkgconfig/python-${pyver}.pc \
    ${prefix}lib/libpython${pyver}m.a \
    ${prefix}bin/python${pyver}m \
    ${prefix}bin/2to3-${pyver} \
    ${prefix}bin/python${pyver}m-config \
    ${prefix}bin/idle${pyver} \
    ${prefix}bin/pydoc${pyver} \
    ${prefix}bin/pyvenv-${pyver} \
    ${prefix}share/man/man1/python${pyver}.1 \
    ${prefix}include/python${pyver}m
    ${prefix}bin/pydoc ## WARN: skip if other pythons in local exist.

যত্ন সহ এটি ব্যবহার করুন (উদাহরণস্বরূপ -Iপ্রতিটি কিল যাচাই করতে rm cmd এ বিকল্প যুক্ত করুন )।


খুব সুন্দর. আমি পাইথন 3 টাইপ করি এবং ট্যাবটি হিট করিলে পাইথন 3. এক্স প্রদর্শিত হয় না
প্রমিথিউস

1

সাধারণত সমস্ত ফাইল প্রায় এক মিনিটের মধ্যে ইনস্টল করা হয়। আপনি ইনস্টল করা ফাইল প্রায় একই সময়ে পরীক্ষা করতে "সন্ধান করুন" ব্যবহার করতে পারেন, তারপরে ম্যানুয়ালি "আরএম" করুন। এটি সহায়ক আশা করি।

find /usr/local/ -type f -newer <some latest old file>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.