অ্যাপটি-গেট ব্যবহার করে ভার্চুয়ালেনভে প্যাকেজ ইনস্টল করুন


16

এই উত্তর অনুসারে , apt-getপ্যাকেজ সিস্টেম-ব্যাপী ইনস্টল করে (ক্যানোনিকাল থেকে), এবং কেবলমাত্র pipপ্যাকেজগুলিকে একটি ভার্চুয়ালেনভ (পাইপি থেকে) ইনস্টল করতে পারে।

তবে, আমাকে একটি apt-getভার্চুয়ালেনভে একটি প্যাকেজ ইনস্টল করতে হবে যা কেবলমাত্র অ্যাক্সেসযোগ্য , অর্থাত পাইপি দ্বারা হোস্ট করা হয় না।

আমি কেমন করে ঐটি করি?


ভাল প্রশ্ন পাল।
rʒɑdʒɑ

উত্তর:


8

আরেকটি বিকল্প হ'ল ফাইলটি ডাউনলোড করা apt-get download, এটির সাথে এক্সট্রাক্ট করা dpkg -xএবং এক্সট্রাক্ট করা ফাইলগুলি আপনার ভার্চুয়ালনেভে স্থানান্তরিত করা:

উদাহরণ:

apt-get download python-xyz

এই ফলাফলগুলি ধরে নিন:

./python-xyz_1.2.3-3ubuntu5_amd64.deb

তারপরে .deb ফাইলের ডেটা অংশটি বের করতে dpkg ব্যবহার করুন:

dpkg -x python-xyz_1.2.3-3ubuntu5_amd64.deb ./xyz-tmp

সদ্য নির্মিত ./xyz-tmpডিরেক্টরিতে, আপনার কাছে এখন সমস্ত ফাইল রয়েছে যা /আপনি ব্যবহার করলে (রুট) ইনস্টল করা হত apt-get install

ধরুন তারা হলেন:

./xyz-tmp/usr/lib/python2.7/dist-packages/xyz/
./xyz-tmp/usr/lib/python2.7/dist-packages/xyz-1.2.3.egg-info

আপনাকে এখনও সাব-ডিরেক্টরিগুলি (যেমন dist-packagesবনাম site-packages) মানচিত্র তৈরি করতে হবে এবং তারপরে ফাইলগুলি আপনার ভার্চুয়ালেনভে (একটি ভার্চুয়ালেনভ ধরে ধরে /home/user/.virtualenvs/py27) নিয়ে যেতে পারেন:

mv ./xyz-tmp/usr/lib/python2.7/dist-packages/* /home/user/.virtualenvs/py27/lib/python2.7/site-packages/

আমার আগের উত্তরের তুলনায়, এই পদ্ধতির সুবিধা রয়েছে যে কোন ফাইলগুলি ইনস্টল হয়েছে সে সম্পর্কে আপনার গবেষণা করার দরকার নেই, কারণ আপনি এগুলি নিষ্কাশন ডিরেক্টরিতে দেখতে পারেন। এটি এখনও নিষ্কাশিত সংরক্ষণাগার এবং ভার্চুয়ালেনভের মধ্যে ডিরেক্টরিগুলির ম্যাপিং প্রয়োজন।


+1, এই পদ্ধতির আরেকটি উদাহরণ এখানে দেওয়া হয়েছে , যা কেবলমাত্র এপটি-র মাধ্যমে ভার্চুয়ালেনভের মধ্যে অ্যাক্সেসযোগ্য প্যাকেজগুলি ইনস্টল করতে বেশ ভাল কাজ করে - সম্প্রতি পাইথন ৩.7 ব্যবহার করে অনুরূপ কিছু করেছিল।
রিচভেল

0

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

হাইপোথিটিক্যাল উদাহরণ:

sudo apt-get python-xyz

ধরুন এটি আপনার সিস্টেমে পাইথন ২.7 এ "xyz" নামে একটি প্যাকেজ ইনস্টল করে, আপনি এটি পেতে পারেন:

/usr/lib/python2.7/dist-packages/xyz/
/usr/lib/python2.7/dist-packages/xyz-1.2.3.egg-info

"Xyz" প্যাকেজ সম্পর্কিত ফাইলগুলি আপনার ভার্চুয়ালেনভে (একটি ভার্চুয়ালেনভ অনুমান করে /home/user/.virtualenvs/py27) অনুলিপি করুন :

/home/user/.virtualenvs/py27/lib/python2.7/site-packages/xzy/
/home/user/.virtualenvs/py27/lib/python2.7/site-packages/xzy-1.2.3.egg-info

অসুবিধাটি হ'ল (১) কোন নির্দিষ্ট প্যাকেজের অন্তর্ভুক্ত কোন ফাইলগুলি নির্ধারণ করতে এবং (২) সিস্টেম পাইথন এবং ভার্চুয়ালেনভের (যেমন উপরের উদাহরণে dist-packagesবনাম। ) মধ্যে সংশ্লিষ্ট সাব-ডিরেক্টরিগুলি ম্যাপিংয়ের ক্ষেত্রে site-packages

কারও যদি এর সাথে আরও অভিজ্ঞতা থাকে তবে কমেন্ট করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.