কীভাবে এমন মেটা-প্যাকেজ তৈরি করবেন যা স্বয়ংক্রিয়ভাবে অন্যান্য প্যাকেজ ইনস্টল করে?


54

আমি এমন একটি প্যাকেজ তৈরি করতে সক্ষম হতে চাই যাতে এতে কোনও কোড বা প্রোগ্রাম থাকে না, তবে এর পরিবর্তে কম্পিউটারে রিপোজিটরিগুলিতে থাকা অন্যান্য প্যাকেজ ইনস্টল করে দেয়, ubuntu-restricted-extrasপ্যাকেজটি কীভাবে কাজ করে?

উত্তর:


47

এর মতো একটি মেটা-প্যাকেজ তৈরি করা যেতে পারে equivs যা একটি সরঞ্জাম বলে যা কেবল নির্ভরশীলতার তথ্য সহ একটি প্যাকেজ তৈরি করবে।

প্রথমে একটি ডিরেক্টরি তৈরি করুন:

mkdir my-metapackage
cd my-metapackage/

এখন প্রোগ্রামটি চালান:

equivs-control ns-control

এটি নামক একটি ফাইল তৈরি করবে ns-control, আপনার পাঠ্য সম্পাদক দিয়ে এই ফাইলটি খুলুন। আপনি যে কন্ট্রোল ফাইলটি তৈরি করেন তা আপনার প্যাকেজগুলি ইনস্টল করতে চান তার উপর নির্ভর করতে এর Dependsবা Recommendsলাইনগুলি সংশোধন করা উচিত :

Section: misc
Priority: optional
Standards-Version: 3.9.1

Package: my-metapackage
Version: 1.0   
Depends: openssh-server, gedit
Description: This package installes an ssh server and a text editor
 The Long description of this package ends with a newline!

(কেবলমাত্র একটি উদাহরণ, আপনার আরও তথ্য অন্তর্ভুক্ত করা উচিত)

এবং পরিশেষে, প্যাকেজটি চালিয়ে তৈরি করুন

equivs-build ns-control

আপনার প্যাকেজটি অবস্থিত my-metapackage/my-metapackage_1.0_all.deb

আপনি যদি উত্স প্যাকেজও তৈরি করতে চান তবে --fullবিকল্পটি equivs-buildযেমন পাস করা যেতে পারে equivs-build --full ns-control। এটি ডাবিল্ড ব্যবহার করবে এবং .dsc এবং .tar.gz ফাইলও তৈরি করবে।

এমন একটি উত্স

dpkg-source -x my-metapackage_1.0.dsc
cd my-metapackage-1.0
debuild -S

আপনি এনএস-কন্ট্রোলটিতে যে মেইনটেনার সেট করেছেন তা যদি আপনার জিপিজি কী-এর সাথে মেলে তবে এটি আপনার পিপিএতে ডুপ করার জন্য আমার-মেটাপ্যাকেজ_1.0_সোর্স কোড পরিবর্তন ফাইলটি তৈরি করে সাইন করতে হবে should


অনেক ধন্যবাদ. আমি সম্ভবত পরে এটি পরীক্ষা করব, কিন্তু এখনও পর্যন্ত, নির্দেশাবলী কাজ করেছে। :)
টমাস ওয়ার্ড

2
এটি পুরোপুরি কাজ করে!
স্টেফানো প্যালাজো

উত্তরের জন্য ধন্যবাদ, আজমিচ, তবে কেবল কারণগুলির জন্য, আমি এটি উল্লেখ করতে যাচ্ছি যে আপনার যদি ~/.devscriptsফাইল আছে এবং নির্দিষ্টভাবে ডিভাস্ক্রিপ্ট ফাইলগুলিতে ব্যবহার করার জন্য একটি আলাদা জিপিজি কী সংজ্ঞায়িত করা হয় তবে এটি ডিপি কেজি / ডিবিल्ड প্রক্রিয়াটি ওভাররাইড করবে এবং এটি রয়েছে উল্লেখিত নির্দিষ্ট GPG- কি ব্যবহার .devscriptsশুধু আপনার উত্তর শেষ বাক্য একটি উল্লেখযোগ্য পয়েন্ট হিসেবে।।
টমাস ওয়ার্ড

আমি লক্ষ্য করেছি যে প্যাকেজগুলির আওতায় রাখলে Depends:ইনস্টলেশন ভাল হয় এবং যদি কেবল প্যাকেজ থাকে তবে; তারা আমার মেশিনে না থাকলে এটি তাদের ইনস্টল করে না। এগুলি ইনস্টল করতে, আমি Providesপরিবর্তে ব্যবহার করেছি এবং এটি কবজির মতো কাজ করে। আমার কোড দেখুন (সবেমাত্র এটি পরিবর্তন হয়েছে): github.com/palladius/debian-packages/blob/master/…
রিকার্ডো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.