কীভাবে দেবিয়ান প্যাকেজিং একটি আপস্ট্রিম উত্স সংরক্ষণাগারটি দিয়ে দুটি প্যাকেজ উত্পন্ন করতে পারে?


14

আমি আমার পিপিএর জন্য কিছু প্যাকেজিং করছি। উজানের উত্সটি একটি .tar.gzসংরক্ষণাগার যা মেকফিল-ভিত্তিক।

যেহেতু এই প্যাকেজটিতে আর্কিটেকচার-স্বতন্ত্র ডেটা উল্লেখযোগ্য পরিমাণে রয়েছে তাই বিল্ড স্ক্রিপ্টগুলি দুটি প্যাকেজ উত্পন্ন করা বুদ্ধিমানের কাজ হবে:

  • প্যাকেজ
  • প্যাকেজ- ডেটা

আমি কীভাবে এটি সেট আপ করতে পারি? আমি controlদুটি প্যাকেজ উত্পন্ন করার জন্য আমার ডেবিয়ান ফাইল সম্পাদনা করেছি , তবে সঠিক প্যাকেজে সঠিক ফাইলগুলি কীভাবে পাবেন সে সম্পর্কে আমার কোনও ধারণা নেই।

যেহেতু ডেটা ফাইলগুলি বর্তমানে মেকফিলের মাধ্যমে সমস্ত ইনস্টল করা আছে, তাই আমি এখানে একরকম হারিয়েছি।

উত্তর:


14

এটি এমন একটি জায়গা যেখানে আমি সবসময় ডকুমেন্টেশনের অভাব পেয়েছি। অন্যান্য প্যাকেজগুলিতে এটি কীভাবে হয় তা দেখেই আমি কীভাবে এটি কাজ করে তা শিখলাম। দেবিয়ান প্যাকেজিংয়ের বেশিরভাগ জিনিসগুলির মতো এটি করার কয়েকটি উপায় রয়েছে। আমি সহজ উপায়টি debian/package.installফাইলগুলি ব্যবহার করাকে খুঁজে পাই । আমি যে প্যাকেজটিতে কাজ করেছি তার একটি উদাহরণ, কল্পনা (বিজেআর শাখা)

প্রথমত, আমাদের প্যাকেজটি তৈরি করতে হবে debian/control। তিনটি স্তজন এখন আছে। উত্স প্যাকেজের জন্য একটি এবং প্রতিটি বাইনারি প্যাকেজের জন্য একটি। নোট করুন যে ফু-ডেটা প্যাকেজটি হওয়া উচিত Architecture: all। এছাড়াও খেয়াল করুন যে কল্পনা নির্ভর করে imagination-common (= ${source:Version})

এর পরে, আমরা একটি debian/imagination.installফাইল তৈরি করি । এটিতে নির্দিষ্ট ফাইল বা পাথ রয়েছে যা আমরা কল্পনা প্যাকেজে শেষ করতে চাই। এই প্যাকেজের জন্য আমরা আর্কিটেকচার নির্ভর সমস্ত ফাইল চাই। ডেস্কটপ ফাইলটি এটির Exec:লাইনে যে বাইনারিটি কল করে এটির সাথে এটি বলা উচিত ।

usr/bin/
usr/lib/
/usr/share/applications/imagination.desktop

আমাদের একটি debian/imagination-common.installফাইল তৈরি করতে হবে। এটিতে আর্কিটেকচারের স্বাধীন ফাইল, চিত্র, অনুবাদ, ডকস এবং মত সমস্ত থাকবে।

/usr/share/doc/
/usr/share/icons/
/usr/share/imagination/
/usr/share/locale/

man dh_install এখানে আসলে কী চলছে তা বর্ণনা করে:

হতে পারে আপনার কাছে একটি বৃহত প্যাকেজ রয়েছে যা একাধিক বাইনারি প্যাকেজ তৈরি করে। এগুলি সমস্ত ডিবিয়ান / টিএমপি-তে ইনস্টল করার জন্য আপনি আপস্ট্রিম মেকফিল ব্যবহার করতে পারেন এবং সেখান থেকে ডিরেক্টরি এবং ফাইলগুলি সঠিক প্যাকেজ বিল্ড ডিরেক্টরিতে অনুলিপি করতে dh_install ব্যবহার করতে পারেন।

"যথাযথ প্যাকেজ বিল্ড ডিরেক্টরিগুলি" বলতে যা বোঝায় তা হ'ল বিল্ড প্রক্রিয়া শেষ হওয়ার পরে, ফলাফলের মধ্যে থাকা সমস্ত কিছুই foo.debপাওয়া যাবে src/debian/foo। যে ফাইলগুলি শেষ foo-data.debহবে সেগুলি পাওয়া যাবে src/debian/foo-data। হিসাবে debian/rulesমূলত শুধু একটি Makefile হয়, তাহলে আপনি একই ফলাফল পেয়ে তাই অন্য কোন উপায়ে কল্পনা করা শুরু করতে পারবেন।


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