আমি কীভাবে একটি কার্যনির্বাহী প্রোগ্রামের জন্য পিপিএ তৈরি করব?


36

ধরে নেওয়া যাক আমার কাছে সি, সি ++ বা পাইথনে লিখিত একটি কাজের অ্যাপ্লিকেশন রয়েছে। আমি একটি লঞ্চপ্যাড পিপিএ তৈরি করতে চাই যাতে অন্যরা সহজেই এটি কোনও প্যাকেজ থেকে ইনস্টল করতে পারে। শুরু থেকে শেষ পর্যন্ত এটি করার জন্য দয়া করে ধাপে ধাপে নির্দেশ দিন। (বা একই লিঙ্ক সরবরাহ করে;)

  • প্রোগ্রামিং ভাষার বিষয়টি কি গুরুত্বপূর্ণ? (এটি কি বাশ স্ক্রিপ্ট হতে পারে?)
  • আমার বিল্ডে কি আমাকে কিছু যুক্ত করার দরকার আছে?
  • বিল্ড নিজেই কোথায় ইনস্টল করা উচিত?
  • আমি নির্ভরতা কিভাবে সংজ্ঞায়িত করব?
  • আমি কীভাবে নির্ভরতা ব্যবহার করব?
  • আমি কীভাবে একটি .deb তৈরি করব?
  • লঞ্চপ্যাডে আপলোড করার আগে আমার কী করা দরকার?

1
আমি এই প্রশ্নটি জিজ্ঞাসা করছি কারণ আমি মাঝেমধ্যে FLOSS প্রকল্পগুলিকে পিপিএ তৈরি করার পরামর্শ দিই (যাতে আমি সহজেই এগুলি ইনস্টল করতে পারি :) - আমি এগুলি একটি সম্পূর্ণ উত্সের দিকে নির্দেশ করতে সক্ষম হতে বা নিজে নিজে এটি করতে সক্ষম হতে চাই।
ডেভিড.লিব্রেমন 12

উত্তর:


33

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

ভাগ্যক্রমে, এখানে একটি সম্পূর্ণ গাইড রয়েছে http://packaging.ubuntu.com

পুরো প্রক্রিয়াটি বোঝার জন্য আমি আপনাকে কিছুটা সাহায্য করার চেষ্টা করব, তাই আপনি যখন এর সাথে কিছুটা পরিচিত হবেন তখন। প্যাকেজিং গাইডটিতে অতিরিক্ত সহায়তার জন্য সংস্থান রয়েছে।


সবার আগে আপনার বুঝতে হবে যে প্যাকেজ তৈরি করা (একটি .deb ফাইল) পিপিএ তৈরি করা থেকে পৃথক প্রক্রিয়া। পিপিএ তৈরি করা আপনার লঞ্চপ্যাডের প্রোফাইলে যাওয়ার এবং "একটি নতুন পিপিএ তৈরি করুন" লিঙ্কটিতে ক্লিক করার বিষয়। এখানেই শেষ. এটি তৈরি হয়েছে, এটি কাজ করে তবে এটি খালি রয়েছে। একটি প্যাকেজ আপলোড করার জন্য আপনাকে প্রথমে একটি তৈরি করতে হবে। তবে প্রথমে আপনার কিছু ছোটখাটো প্রশ্নের উত্তর দিন।

  • প্রোগ্রামিংয়ের ভাষা মোটেই গুরুত্ব দেয় না । এটি সি ++ অ্যাপ্লিকেশন, ব্যাশ স্ক্রিপ্ট, ব্রেনফাক হ্যালো ওয়ার্ল্ড, একটি একক README ফাইল, বা দুর্দান্ত ফটোগুলির সেট হতে পারে। প্যাকেজগুলিতে কোনও ফাইল থাকতে পারে। ইনস্টলেশন চলাকালীন প্যাকেজটি আপনার ফাইল সিস্টেমের মূল ("/") এ বের হয়ে যায়। এইভাবে তারা বাইনারি ফোল্ডারে কিছু ফাইল রাখতে পারে, জিনোম ডিফল্ট সেটে কিছু ওয়ালপেপার যুক্ত করতে বা ব্যাশ স্ক্রিপ্ট সহ ব্যবহারকারী সরবরাহ করতে পারে।
  • আপনার উত্সটিতে কিছু যুক্ত করা দরকার। এটি অবশ্যই একটি শীর্ষ-স্তরের ডিরেক্টরি হতে হবে "ডিবিয়ান" নামের। প্যাকেজের বিশদ সহ কিছু ফাইল থাকবে - সেগুলি প্যাকেজটি কী প্রকারের ইত্যাদি নির্ধারণ করতে ব্যবহৃত হবে etc.
  • নির্ভরযোগ্যতা এই ফাইলগুলির মধ্যে একটিতে তালিকাভুক্ত করা হয়েছে (অন্যান্য বিবরণের মধ্যে)। এগুলি কোথা থেকে পাবেন? এগুলি কেবল আপনার প্যাকেজ যা আপনার অ্যাপ্লিকেশন ব্যবহার করে। অ্যাপ্লিকেশনটির বিকাশকারী তার প্রোগ্রামটি কী লাইব্রেরি এবং সংস্থান প্রয়োজন তা জানতে পারবেন, সুতরাং সেগুলি তালিকাভুক্ত করার ক্ষেত্রে তার খুব বেশি সমস্যা হওয়া উচিত নয়।
    • প্যাকেজ (পুবিল্ডার) তৈরিতে ব্যবহৃত কিছু সরঞ্জাম স্বয়ংক্রিয়ভাবে নির্ভরতা পূরণ করতে পারে, সম্ভবত আপনার অ্যাপ্লিকেশনটি সংকলনের সময় কী প্রয়োজন তা নির্ধারণ করে।
  • অটোটুলগুলি ব্যবহার করার জন্য এটিও অত্যন্ত প্রস্তাবিত । এটি আপনার যুক্ত করার প্রয়োজন হতে পারে অন্য জিনিস, তবে সম্ভবত প্রায় প্রতিটি সফ্টওয়্যার সেগুলি ইতিমধ্যে ব্যবহার করে। অটোটুলস হ'ল অত্যন্ত সহায়ক প্রোগ্রামগুলির একটি সেট - অটোমেক, অটোকনফ এবং কয়েকটি নাম দেওয়ার জন্য অটোস্ক্যান। আপনি যখন বিখ্যাত। / কনফিগার এবং & মেক অ্যান্ড মেক ইনস্টল সহ কোনও প্রোগ্রাম সংকলন এবং ইনস্টল করেন তারপরে স্বয়ংক্রিয় উত্সগুলি স্বয়ংক্রিয়ভাবে উত্সটি মোকাবেলা করতে, উত্সের সাথে অন্তর্ভুক্ত অন্যান্য সংস্থানগুলি প্রস্তুত করার জন্য এবং উপযুক্ত স্থানে সংকলনের ফলাফলটি বের করতে (আপনার প্রশ্নের উত্তর দেওয়ার জন্য: বিল্ডটি অনেকগুলি পৃথক স্থানে উত্তোলন করবে The বাইনারিগুলি / ইউএসআর / লোকাল / বিনে যাবে, ডক্সগুলিতে / ইউএসআর / লোকাল / শেয়ার / ডকস ইত্যাদি। এছাড়াও, প্যাকেজ থেকে একটি বাইনারি এমনকি বিভিন্ন জায়গায়, বাইনারিগুলি / ইউএসআর / বিনে যেতে হবে। এই জটিল ডিরেক্টরি বিন্যাসের সাথে? অটোটুলগুলি ব্যবহার করুন - এটি এটি স্বয়ংক্রিয়ভাবে যত্ন নেবে এবং এ কারণেই তারা এত দরকারী।

.Deb প্যাকেজ তৈরি করা সত্যিই জটিল প্রক্রিয়া হিসাবে দেখায়, তবে এটি এতটা কঠিন নয়। আমি আপনাকে প্যাকেজ তৈরির আনুষ্ঠানিক উবুন্টু গাইডের পরামর্শ দিচ্ছি: http://packaging.ubuntu.com

এটি বিশাল, তবে আপনি দেখতে পাবেন যে আপনি সম্ভবত সেই পাঠ্যের বেশিরভাগ অংশটি এড়িয়ে যেতে পারেন (আপনি কোন প্যাকেজটি তৈরি করছেন তার উপর নির্ভর করে)। মূলত, প্যাকেজিং প্রক্রিয়া এই অংশগুলি নিয়ে থাকে (সমস্ত গাইডের মধ্যে স্পষ্টভাবে ব্যাখ্যা করা হয়েছে) :

  1. প্যাকেজ তৈরি করতে ব্যবহৃত কিছু সরঞ্জাম সূচনা করুন।
  2. উত্স পান
  3. ./Debian ডিরেক্টরি তৈরি করুন এবং এটি প্রয়োজনীয় ডেটা দিয়ে পূরণ করুন
  4. প্যাকেজটিকে ডেবিড দিয়ে তৈরি করুন [এতে প্যাকেজ সম্পর্কিত ডেটার জন্য দায়ী যে * .dsc, * _সোর্স। বিল্ড, * _সোর্স.কমস, ফাইলগুলির একটি সেট তৈরি করা উচিত এবং এটি কীভাবে মোকাবেলা করতে হবে (আপনারও এতে থাকবে একটি উত্স .tar.gz)]
  5. স্থানীয়ভাবে পুবিল্ডার চালিয়ে সমস্ত কিছু কাজ করে কিনা তা পরীক্ষা করুন (এটি উপরে উল্লিখিত এই সমস্ত ফাইলগুলি নেবে এবং অটোটুলের সাহায্যে উত্সটি স্বয়ংক্রিয়ভাবে তৈরি করে -। প্যাকেজগুলিতে একত্রিত করার চেষ্টা করবে - এজন্যই তারা প্যাকেজিংয়ের জন্য অত্যন্ত গুরুত্বপূর্ণ [ স্পষ্টত কথা বলার - না - আপনি এগুলি ছাড়া বা কিছু বিকল্পের সাথে যেতে পারেন তবে এটি সবচেয়ে সহজ পদ্ধতির এবং অন্যটির জন্য কিছু উন্নত সেটআপের প্রয়োজন হতে পারে, কারণ আপনাকে কীভাবে উত্স তৈরি করতে হবে তা বিল্ডারকে নির্দেশ করতে হবে (./debian/rules ফাইল ব্যবহার করে) ) - তবে তা নতুনদের জন্য নয়] ) - আপনি যদি কেবল একটি .deb প্যাকেজ পেতে চান তবে এটি হয়ে গেছে।

এখন আপনাকে এটি আপনার পিপিএতে আপলোড করতে হবে, যা এই সহায়তা পৃষ্ঠায় ব্যাখ্যা করা হয়েছে: https://help.launchpad.net/ প্যাকেজিং / পিপিএ / আপলোডিং

  1. লঞ্চপ্যাডে এই ফাইলগুলি আপলোড করতে ডুপেট ব্যবহার করুন
  2. লঞ্চপ্যাড তাদের কম্পিউটারগুলিতে পুবিল্ডার চালাবে এবং একটি পরিষ্কার পরিবেশে প্যাকেজ তৈরি করবে
  3. শেষ পর্যন্ত, প্যাকেজগুলি পিপিএতে উপস্থিত হওয়া উচিত।

আপনি দেখতে পাচ্ছেন যে পিপিএ তৈরি করা তত সোজা নয়তবে ভয় পাবেন না , এটিও এতটা কঠিন নয় not তদুপরি, আমি আপনাকে প্রস্তাব দিচ্ছি যে বিকাশকারীদের পিপিএ ব্যবহার করতে উত্সাহিত করবেন না, সম্ভবত তারা আপনার কথায় কান দেবেন না, যেহেতু তাদের কিছু অতিরিক্ত কাজ করার প্রয়োজন হবে (এবং যদি তারা চান তবে তারা এটি ইতিমধ্যে সম্পন্ন করে ফেলেছিল) তবে আপনি উবুন্টু বিকাশকারী এবং পুরো সম্প্রদায়কে সমর্থন করার চেষ্টা করতে এবং তাদের প্রস্তুত প্যাকেজগুলি সরবরাহ করতে চাই :)

আমি আপনাকে প্যাকেজ তৈরির সৌভাগ্য কামনা করছি , আশা করি আপনি আমার উত্তরটি সহায়ক পেয়ে যাবেন :)

আপনার বন্ধু, রাফায়ে সিলেক


আপনি কীভাবে আপনার নিজের অবকাঠামোতে হোস্ট করা একটি নন-লঞ্চপ্যাড পিপিএ তৈরি করতে পারেন? এটি কি উপযুক্ত ডিরেক্টরি কাঠামোর সাথে একটি সাধারণ ওয়েব সার্ভার?
অধ্যাপক মরিয়ার্টি

ব্রেইনফ * সি কে উদাহরণ কি আসলেই প্রয়োজনীয় ছিল?
ক্যামডেন

5
  • আপনি আপনার প্যাকেজ আপলোড করার আগে, আপনাকে এটি .debপ্যাকেজিংয়ের জন্য সেট আপ করতে হবে , উবুন্টু প্যাকেজিংগাইড দেখুন

  • আপনি একবার আপনার সফ্টওয়্যারটির জন্য প্যাকেজ তৈরি করতে পারলে লঞ্চপ্যাডের পিপিএ ডকুমেন্টেশন দেখুন । এটি আপনার প্যাকেজ আপলোড করার জন্য পিপিএ তৈরি থেকে আপনাকে গাইড করবে।

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