কেউ কি জানেন যে কীভাবে (বা এক পারে) একটি একক প্রয়োজনের বিপরীতে কোনও বিকল্প ফাইল বা একটি নির্দিষ্ট ফাইলে প্রয়োজনীয়তার সেট নির্দিষ্ট করতে পারে?
উদাহরণস্বরূপ, বলুন এখানে দুটি প্যাকেজ উপলব্ধ রয়েছে, সুবিধামত নামকরণ করা হয়েছে foo-barএবং bar-foo। আমার প্যাকেজটির মধ্যে একটির প্রয়োজন তবে উভয়ই নয় এবং কোনটি উপস্থিত তা আমি পাত্তা দিই না। রানটাইম এ আমি যা ব্যবহার করি তা উপলব্ধ।
এত কার্যকরভাবে আমি বলার উপায় চাই:
Requires: foo-bar OR bar-foo
যতদূর আমি বলতে পারি যে এটি সম্ভব নয়, তবে আমি অনুমান করেছি যে এখানে এমন লোক আছেন যারা আমার চেয়ে আরপিএম সম্পর্কে আরও অনেক কিছু জানেন, তাই সম্ভবত এটি করার একটি উপায় রয়েছে।
আপডেট: আমি কেবল প্যাকেজিং নিয়ন্ত্রণ করি bar-fooনা foo-bar, তাই ভার্চুয়াল প্যাকেজ সরবরাহ করার ফলে উভয়ই কাজ করবে না।
আপডেট: আমার আসলে যে জিনিসটি প্রয়োজন তা হ'ল প্রতিটি প্যাকেজের অভ্যন্তরে ভার্চুয়াল প্যাকেজ। বলুন foo-bar provides eagle' andবার- ফু বিগল ag and my package works with either (or both); but other packages require eitherগল orবিগল ফু or-বার orবার-ফু সরবরাহ করে এবং লক্ষ্য সিস্টেমে দুটি বা উভয়ই ইনস্টল থাকতে পারে।
আমি বর্তমানে এমন একটি %preস্ক্রিপ্ট দিয়ে এর সমাধানের দিকে ঝুঁকছি যা এরকম কিছু করে:
rpm -q eagle || rpm -q beagle || echo "need eagle or beagle" && /bin/false
যদিও আমি নিশ্চিত যে এটি কার্যকর হবে, এটি RPM এর নির্ভরশীলতা ট্র্যাকিংয়ের নৃশংস পরিস্থিতিতে বলে মনে হচ্ছে। উদাহরণস্বরূপ আপনি জিজ্ঞাসা করলে whatrequires foo-barবা কখনই আমার প্যাকেজটি দেখতে পাবেন না whatrequires beagle।
আপডেট: দ্বিতীয় ভাবাতে, লোকেরা foo-barযেখানে ইনস্টল করতে হবে তাদের প্রয়োজনীয় বেদনা কমপক্ষে আমার পরিস্থিতির জন্য, আরপিএম নির্ভরতা পরিচালনার অবসন্ন হওয়ার বেদনার চেয়ে কম নয়। সুতরাং যদি না কেউ সঠিকভাবে "এই ওআর" প্রয়োজন হয় (যা আমি মনে করি সাধারণত আরপিএমের মধ্যে থাকা একটি দুর্দান্ত বৈশিষ্ট্য হবে) প্রয়োজন হয় তবে আমি পরিকল্পনা করি কেবলমাত্র foo-bar এবং তারপরে, রানটাইম এ, যদি bar-fooপাওয়া যায় তবে আমি তাদের মধ্যে বেছে নেব আমার যা প্রয়োজন মানদণ্ড অনুসারে সেগুলি।
আপডেট: আর একটি ধারণা, যা আরপিএমকে প্রতারণা করবে কিন্তু জিনিসগুলি সঠিক অবস্থায় পেতে পারে। সম্ভবত আমি %postসরাসরি আরপিএম এর ডাটাবেসটি দিয়ে বেড়াতে পারি। এভাবে %preএকটি থেকে আমাকে রক্ষা করতে পারে অবৈধ ইনস্টল করুন, এবং %postব্যাপকভাবে আরপিএম বলুন যে আমি হয় করতে হবে foo-barবা bar-fooঅথবা উভয়, কি উপর নির্ভর করে সেখানে যখন আমি ইনস্টল করুন।
পরামর্শের জন্য ধন্যবাদ!
Provides: foo-bar, সুতরাং এটি উভয় নির্ভরতা সন্তুষ্ট করে। নতুন আরপিএম সংস্করণগুলির জন্য, বুলিয়ান নির্ভরতাগুলি পরীক্ষা করুন । বিভাগ %preএবং %postবিভাগ থেকে দূরে থাকুন , সিস্টেমকে পরাস্ত করার চেষ্টা করবেন না ।