ডেবিয়ান প্যাকেজ কীভাবে পাইপিআই থেকে পাইথন মডিউল ইনস্টল করতে পারে


20

এই প্রশ্নের পরিপূর্ণ করার চেষ্টা করে এই এক । আমার কাছে পাইথন অ্যাপ রয়েছে যা পিপিআই থেকে তৃতীয় পক্ষের মডিউল ব্যবহার করে। আমি আমার অ্যাপ্লিকেশনটিকে একটি ডেবিয়ান প্যাকেজে প্যাকেজ করতে চাই, তবে পাইথন নির্ভরতা যেগুলি ডেবিয়ান / উবুন্টু সংগ্রহস্থলে নেই (কীভাবে ডেবিয়ান প্যাকেজ হিসাবে প্যাক করা হয়) পরিচালনা করবেন তা জানেন না know

সমাধান # 1:
পাইপআই থেকে মডিউলগুলি সরাসরি আমার ডিবিয়ান প্যাকেজে তৈরি করুন।

সমাধান # 2:
সমস্ত পিপিআই মডিউলগুলির জন্য ডেবিয়ান প্যাকেজগুলি তৈরি করুন আমার স্টেডিবি ব্যবহার করতে হবে এবং সেগুলি ডিবিয়ান / উবুন্টু সংগ্রহস্থলগুলিতে যুক্ত করুন।

আমার আসলে একটি সমাধান # 3 দরকার কারণ আমি আমার ডিবিয়ান প্যাকেজটি ইনস্টল করার সময় পিআইপিআই নির্ভরতা ইনস্টল করতে চাই, পছন্দনীয়ভাবে কোনও ভার্চুয়ালেনভে!

সমাধান # 3 কী হবে ? আমার কি ডিবিয়ান / প্রিনস্টের রক্ষণাবেক্ষণকারী স্ক্রিপ্টটি টুইট করতে হবে?


আপনি কেন ডেবিয়ান প্যাকেজ তৈরি করতে হবে তা বর্ণনা করতে পারেন? আপনার পাইথন অ্যাপটির অ পাইথন সংস্থান দরকার?
জোনাথন

@ জোনাথন আমি চাই যে ব্যবহারকারীরা উবুন্টু সফটওয়্যার কেন্দ্র থেকে আমার অ্যাপটি ইনস্টল করতে সক্ষম হন। আমি মনে করি এর জন্য আমার একটি * .ডাব দরকার। আমার পাইথন অ্যাপ্লিকেশনটির অ পাইথন সংস্থান দরকার নেই, কেবল তৃতীয় পক্ষের পাইথন মডিউল।
andri_ch

@ জোনাথান দেবিয়ান প্যাকেজগুলি উবুন্টুর মানক ইনস্টলেশন পদ্ধতি। যে কোনও ব্যক্তি সহজেই একটি .debফাইল বিতরণ করতে পারেন , বা একটি ব্যক্তিগত সংগ্রহস্থল সেটআপ করতে পারেন , বা লঞ্চপ্যাডে একটি পিপিএ।
MestreLion

উত্তর:


20

আমি ডেবিয়ান আইআরসি চ্যানেলে কিছু রক্ষণাবেক্ষণকারীদের সাথে কথা বলেছি : //irc.debian.org , ঠিক একই জিনিস জিজ্ঞাসা করেছে, এবং সাধারণ ছিল:

সমাধান # 1:

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

সমাধান # 3:

বাইনারি ( .deb) ইনস্টল করার সময় নন-ডেবিয়ান প্যাকেজগুলি অন-ফ্লাইয়ে ডাউনলোড করা একটি গুরুতর সুরক্ষা ঝুঁকি, অবশ্যই কোনও সংখ্যা নয়। এমনকি আপনি এটিগুলি বের করে নির্ভরতাগুলিও পরীক্ষা করতে পারবেন না deb, কারণ সেগুলি ইনস্টল সময়ে ডাউনলোড এবং ইনস্টল করা আছে। এটি এমন একটি পদ্ধতির যা সম্পূর্ণরূপে সংগ্রহস্থল সিস্টেমকে বাইপাস করে। কোনও সংশ্লিষ্ট ব্যবহারকারী এমন একটি প্যাকেজ নিয়ে খুশি হতে পারবেন না যা পর্দার আড়ালে (এবং হিসাবে rootমনে রাখবেন!) অবিশ্বস্ত উত্স থেকে অতিরিক্ত অবিশ্বস্ত সফ্টওয়্যার ডাউনলোড করে। হ্যাঁ, এর জন্য DEBIAN/postinst(বা preinst) ফিডিং এবং একটি wget(বা, আপনার ক্ষেত্রে,pip install), এবং এটি হ'ল ফ্ল্যাশ, ওরাকল জাভা, বাষ্প এবং অন্যান্যরা গ্রহণ করেছে। তবে এটি মালিকানাধীন, ক্লোজড সোর্স সফ্টওয়্যার, সুতরাং তাদের সুরক্ষা যাইহোক, কোনওটিই নয়।

সমাধান # 1.5:

আপনি এটা উল্লেখ না, কিন্তু আপনি শুধুমাত্র এ নির্ভরতা সংহত পারে বিল্ড সময় , অর্থাৎ উৎস প্যাকেজ ( .orig.tar.gz, .debian.tar.gz, .dsc, ত্রয়ী) PyPi থেকে ডাউনলোড "বাইনারি" প্যাকেজ (তৈরি করা দ্বারা .deb)। এর জন্য নির্দেশাবলী pip installwouldুকে পড়বে debian/rules( debianবাইনারি প্যাকেজের বিপরীতে লোয়ারकेসটি লক্ষ্য করুন ), এবং আপনি ইস্যু করলে debuildবা কার্যকর করা হবে dpkg-buildpackage

এটি # 1 এবং # 3 এর মাঝামাঝি। এটি # 3 এর কয়েকটি সমস্যা হ্রাস করে (তবে সমাধান করে না!): অন্তত আপনি চূড়ান্ত পণ্যটি পরিদর্শন করতে পারেন এবং .debইনস্টলের সময়ে ইন্টারনেট অ্যাক্সেসের প্রয়োজন হবে না। সমস্ত ঝুঁকি এবং বোঝা চূড়ান্ত ব্যবহারকারী থেকে প্যাকেজ রক্ষণাবেক্ষণকারীকে স্থানান্তরিত হয়। তবে, # 1 এর মতো একই সমস্যা রয়েছে কারণ এটি বেশিরভাগ প্যাকেজিং সিস্টেমের অবকাঠামোকে ছাড়িয়ে যায়। সামগ্রিকভাবে, হ্যান্ডলিং নির্ভরতা (সংস্করণ, আপডেট, প্রয়োজনীয়তা, দ্বন্দ্ব) কেন dpkg/ aptপ্রথম স্থানে তৈরি হয়েছিল! :)

সমাধান # 2:

ওয়ান মুক্ত রাইট ওয়ে ™ । আপনি আপনার নির্ভরতার জন্য ডেবিয়ান প্যাকেজ তৈরি করেন, আপনার প্যাকেজে প্রয়োজনীয় হিসাবে তাদের তালিকাভুক্ত করুন এবং সমস্ত .debsউত্স বা উত্স প্যাকেজ পাঠিয়ে দিন ।

সেখান থেকে আপনার কাছে অনেকগুলি বিকল্প রয়েছে:

  • ডেবিয়ানের অন্তর্ভুক্তির জন্য উত্স প্যাকেজগুলি, আপনার সফ্টওয়্যার এবং এর নির্ভরতা উভয়ই জমা দিন । যদি স্বীকৃত হয় তবে সেগুলি উবুন্টুর মতো সমস্ত ডেরাইভেটিভ সহ সমস্ত দেবিয়ান ব্যবহারকারীদের কাছে স্বয়ংক্রিয়ভাবে উপলব্ধ।

  • উত্স প্যাকেজগুলি লঞ্চপ্যাডে আপলোড করুন , সুতরাং এমন কোনও পিপিএ তৈরি করুন যা কোনও উবুন্টু ব্যবহারকারী (এবং লিনাক্স মিন্টের মতো এর ডেরাইভেটিভস) সহজেই যুক্ত এবং ইনস্টল করতে পারে

  • আপনার ওয়েবসাইটে আপনার নিজস্ব ডেবিয়ান সংগ্রহস্থলটি হোস্ট করুন, যে কোনও ডেবিয়ান-ভিত্তিক সিস্টেমের ব্যবহারকারীরা তাদের যোগ করতে পারে /etc/apt/sources.list.dএবং aptডাউনলোড, ইনস্টল এবং আপডেট রাখতে অবকাঠামো ব্যবহার করতে পারে (উপরের মত!)

  • .debসরাসরি ডাউনলোড এবং ইনস্টল করার জন্য ফাইলগুলি হোস্ট করুন । কোনও aptবা স্বয়ংক্রিয় আপডেটগুলি চিন্তার সাথে জড়িত।

হিসাবে কিভাবে (! খুব এবং আপনার পাইথন সফটওয়্যার) আপনার PyPi নির্ভরতা প্যাকেজ, সেখানে সরঞ্জাম ও রেফারেন্স যে প্রক্রিয়া সহজ করতে একটি নম্বর আছে:

এবং অনেক দরকারী তথ্যসূত্র:

সাহায্য দরকার? এগুলি পরীক্ষা করে দেখুন:



2

নেই pypi2debpypi থেকে একটি প্যাকেজ পেতে এবং এটি একটি ডেব প্যাকেজ পরিণত করতে।


0

এগুলি পার্লের সিপিএনের মতো নয়, আপনার যদি সংগ্রহস্থলগুলিতে থাকে তবে আপনি অ্যাপ্ট-গেট দিয়ে ইনস্টল করতে পারেন, যদি আপনি পাইপ দিয়ে ইনস্টল করতে না পারেন তবে পার্থক্যটি সেই / ইউএসআর / লোকাল-তে পাইপ ইনস্টল হওয়া উচিত।

পাইপ দিয়ে ইনস্টল করতে আপনি এটি করতে পারেন:

apt-get install python-pip 
pip install foopackage 

উদাহরণ স্বরূপ:

pip install MultipartPostHandler2

এটি ওপি-র প্রশ্নের উত্তর দেয় না। প্রশ্ন হ'ল কীভাবে একটি ডেবিয়ান প্যাকেজ পাইপাই থেকে পাইথন প্যাকেজ ইনস্টল করতে পারে যাতে পিপাই থেকে 'অ্যাপট-গাই <কাস্টম- প্যাকেজ>' বা 'ডিপি কেজি-আই <কাস্টম- প্যাকেজ>' পাইথন নির্ভরতা টানতে পারে।
সেবকপ্রিম 14

এগুলি পার্লের সিপিএনের মতো নয়, আপনার যদি সংগ্রহস্থলগুলিতে থাকে তবে আপনি অ্যাপ্লিকেশন দিয়ে ইনস্টল করতে পারেন, আপনি যদি পাইপ দিয়ে ইনস্টল করতে না পারেন তবে পার্থক্যটি অবশ্যই / usr / স্থানীয় ইনপুট হওয়া উচিত, তবে সম্ভবত এটি হবে ভাল আমার উত্তর মুছুন।
সর্জিও

আপনার মন্তব্যটি ওপি-র প্রশ্নের উপযুক্ত উত্তর সরবরাহ করে। আপনার নিজের মতামতটি উত্তর দেওয়া উচিত up (উদাহরণস্বরূপ, ম্যাস্ট্রিলিয়নের উত্তর দেখুন)) যেমনটি আপনার উত্তরটি ওপি-র প্রশ্নের উত্তর দেয় না।
সেভিকপ্রিম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.