উত্তর:
হ্যাঁ, এটি করা খুব সহজ।
শুধু লেখো:
Requires: somepackage >= 0.5.0, somepackage < 0.6.0
আপনার .spec
ফাইলের মধ্যে
সংস্করণ প্রয়োজনীয়তা যুক্ত করা হচ্ছে
যখন কোনও প্যাকেজের সামান্য আরও কঠোর প্রয়োজন হয়, তখন প্যাকেজের কয়েকটি নির্দিষ্ট সংস্করণ প্রয়োজন। নিম্নলিখিত সমস্ত তুলনামূলক অপারেটরগুলির পূর্ববর্তী পছন্দসই সংস্করণ নম্বর যুক্ত করার জন্য যা যা প্রয়োজন তা হ'ল:
নির্দিষ্ট সংস্করণের চেয়ে কম সংস্করণযুক্ত প্যাকেজের প্রয়োজন।
নির্দিষ্ট সংস্করণের চেয়ে কম বা সমান সংস্করণযুক্ত প্যাকেজের প্রয়োজন।
নির্দিষ্ট সংস্করণের সমান সংস্করণ সহ প্যাকেজের প্রয়োজন।
নির্দিষ্ট সংস্করণের সমান বা তার চেয়ে বেশি সংস্করণযুক্ত প্যাকেজের প্রয়োজন।
নির্দিষ্ট সংস্করণের চেয়ে বড় সংস্করণ সহ প্যাকেজের প্রয়োজন।
আমাদের উদাহরণটি দিয়ে চালিয়ে যান, ধরুন যে প্যাকেজ বারের প্রয়োজনীয় সংস্করণটি আসলে কমপক্ষে 2.7 হওয়া দরকার এবং বাজ প্যাকেজটি অবশ্যই সংস্করণ ২.১ হতে হবে - অন্য কোনও সংস্করণ তা করবে না। প্রয়োজনীয় ট্যাগ লাইনের মতো দেখতে এখানে কী প্রয়োজন: প্রয়োজন: বার> = 2.7, বাজ = 2.1
সূত্র: http://rpm.org/user_doc/more_d dependferences.html
উপরে বর্ণিত সিস্টেমটি বেশিরভাগ প্যাকেজগুলির জন্য কাজ করে; তবে, আপনি যে প্যাকেজটির প্রয়োজনীয়তাটি চান তা যদি [ভার্চুয়াল ক্ষমতা] [1] হিসাবে সরবরাহ করা হয় বা অন্যথায় বিভিন্ন নামের প্যাকেজগুলি (যা একে অপরের সাথে বিরোধী হয় না ) দ্বারা সরবরাহ করা হয় (যেমন "সরবরাহ করে:" কীওয়ার্ড ), তবে আপনি দুটি পৃথক প্যাকেজ ইনস্টল করা শেষ হতে পারে, যার প্রতিটি স্বতন্ত্রভাবে আপনার প্রয়োজনীয়তার একটি পূরণ করে। উদাহরণস্বরূপ, যদি আপনার নির্দিষ্ট ফাইলটিতে থাকে:
Requires: postgresql-server >= 8.4, postgresql-server < 9.0
এর ফলে (আপনার যদি এই প্যাকেজগুলি yum- তে উপলব্ধ থাকে) এর ফলাফল হতে পারে:
তবে postgresql84- সার্ভারটি ইনস্টল করবে না , এটি সম্ভবত প্যাকেজটি আপনি ইনস্টল করে থাকতে পারে বলে আশা করেছিলেন।
(এক্ষেত্রে সমাধানটি কেবল postgresql84- সার্ভারের প্রয়োজন হবে; তবে সম্ভবত অন্যান্য উদাহরণ রয়েছে যার সহজ সমাধান নেই))
আপনি যদি প্যাকেজ তৈরি করতে বা কোনও প্যাকেজ ইনস্টল করতে এবং এর নির্ভরতাগুলি "সীমাবদ্ধ" করার চেষ্টা করছেন তবে এটি আমার পক্ষে পরিষ্কার নয়।
প্যাকেজটি পুনর্নির্মাণ ছাড়া দ্বিতীয় মামলা করার কোনও উপায় আমি দেখতে পাচ্ছি না।
আপনি এসআরপিএম পুনরুদ্ধার করতে পারেন এবং স্পেক ফাইলটি সম্পাদনা করতে এবং এন্ট্রি প্রয়োজন (আপনি কিছু প্যাকেজ 0.5.x চান, তাই না?) যুক্ত করতে / পরিবর্তন করতে পারেন:
Requires: somepackage = 0.5.0
এবং তারপরে পুনর্নির্মাণ করুন
rpmbuild -bb -v yourpackage.spec
আপনি যদি এটি কখনও করেন নি, এটি ভয়ঙ্কর দেখা দেয় তবে এটি আপনার সমস্যার সমাধান করে। মনে রাখবেন যে যদি কোনও ডিসট্রোর জন্য সর্বজনীন প্যাকেজ তৈরি করা হয় তবে আপনি এর নির্দেশিকাটি পড়তে চাইতে পারেন কারণ এইভাবে সাধারণত নির্ভরতা নির্ধারণ করার পরামর্শ দেওয়া হয় না।