রেপো আরও নতুন সংস্করণ আছে যখন নির্দিষ্ট সংস্করণ ইনস্টল?


13

আসুন একটি মেটাপ্যাকেজ যা নীচের প্যাকেজগুলির উপর নির্ভর করে

Depends: A (=2),
 B (=2),
 C (=2)

'=' দ্রষ্টব্য - আমি এই বিশেষ সংস্করণগুলি ইনস্টল করতে চাই, অতি সাম্প্রতিক সংস্করণগুলি নয়।

উপরন্তু:

বি (> = 1) এর উপর নির্ভর করে

সি বি (> = 1) এবং (> = 1) এর উপর নির্ভর করে

যদি সংগ্রহস্থলের A, B, C এর সাম্প্রতিকতম সংস্করণগুলি 2 হয় তবে এটি কাজ করে।

যেহেতু আমি রেপোতে এ এর ​​3 সংস্করণ এবং বি এর 3 সংস্করণ রেখেছি আমার-মেটা-প্যাকেজটি ইনস্টল করুন নিম্নলিখিত তথ্য দিয়ে শেষ করতে অস্বীকার করেছেন:

The following packages have unmet dependencies:
  my-meta-package: Depends: B (= 2) but 3 is to be installed
                   Depends: A (= 2) but 3 is to be installed

আমি যদি ম্যানুয়ালি এ এবং বি এর 2 সংস্করণ ইনস্টল করি তবে মেটাপ্যাকেজটি সঠিকভাবে ইনস্টল হয় যা দৃ strongly়ভাবে পরামর্শ দেয় যে A3 বা B3 এর কোনও গোপন নির্ভরতা নেই। এটি সমস্যার সমাধান নয় কারণ অনেকগুলি মেশিনে স্বয়ংক্রিয়ভাবে মেটাপ্যাকেজ ইনস্টল হয়ে যায়।

প্রশ্ন: আমার-মেটা-প্যাকেজ ইনস্টল সংস্করণ 2,2,2 sudo অ্যাপ্লিকেশন ইনস্টল করতে কি করতে হবে?

তদ্ব্যতীত, এমন কোনও উপায় আছে যা আমি একটি বর্ধিত তথ্য পেতে পারি যা আসলে এ এর ​​3 সংস্করণ 3 এবং বি এর সংস্করণ 3 এর প্রয়োজনীয়তা তৈরি করে?


ওহ, আমি উত্তর দেওয়ার আগে পুরো প্রশ্নটি পড়িনি। আপনি কি কেবলমাত্র মেটাপ্যাকেজটি পুনঃস্থাপন করতে পারেন?
int_ua

2
@ ইন্দুয়া_আমি বুঝতে পারি না মেটাপ্যাকেজটি পুনরায় পরিচালনা করা কী করে।
tymtam

@ বেলাকোয়া - আমি আপনার সাথে আছি, তবে আমাদের একটি দৃ answer় জবাব দরকার যা এর বিপরীততা এবং ভাঙ্গা নির্ভরতা
ইত্যাদী

আপনার মেটাপ্যাকেজের নিয়ন্ত্রণ ফাইলটিতে নির্ভরযোগ্য প্যাকেজের কোনও স্পষ্ট সংস্করণ অন্তর্ভুক্ত নেই, যেমন (a=2), (b=2)?
আনোয়ার

উত্তর:


11

আপনি মেটা-প্যাকেজ ইনস্টল করার সময় আপনাকে ইনস্টল করতে নির্দিষ্ট সংস্করণগুলি নির্বাচন করতে হবে এবং সেগুলি ইনস্টল করতে হবে।

sudo apt-get install meta-package package1=2 package2=2 package3=2

অন্তঃপুরের উত্তর যেমন বলে, আপনি এর সাথে বিপরীত নির্ভরতাগুলি খুঁজে পেতে পারেন:

apt-cache rdepends package

আপনি যদি এই প্যাকেজগুলির যে কোনও সম্পর্কে (আরও উপলব্ধ সংস্করণ, নির্ভরতা এবং আরও অনেক কিছু ) জানতে চান তবে এটি ব্যবহার করুন:

apt-cache show package

আপনি সেগুলি ইনস্টল করা শেষ করার পরে এবং সিস্টেম আপগ্রেড করার সময় সেগুলি সেই সংস্করণগুলিতে রাখতে চান, বেলাকোয়া পরামর্শ অনুসারে আপনাকে অ্যাপ -পিনিং ব্যবহার করতে হবে ।

এপিটি পিনিং

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


আমি বিশ্বাস করি যে এটি সঠিক উত্তর, = এবং তারপরে সংস্করণ সহ প্যাকেজের নাম
রাখুন

1
আমি টাইমেকের সহকর্মী এবং এটি আসলে সমস্যাটি সমাধান করে। এটি খুব খারাপ করার জন্য আমাদের মেটাপ্যাকেজটি রিভার্সিং ইঞ্জিনিয়ারকে করতে হবে। কিছু সৃজনশীল পাইথন ক্রমযুক্ত। উত্তরের জন্য ধন্যবাদ।
ইগর জিভাকা

1
আমি ভাবছি সময় পার হওয়ার পর থেকে এর থেকে আরও ভাল সমাধান যদি হাজির হয়?
ygrek

1

আপনি প্রথমে নির্ভরতা ইনস্টল করার চেষ্টা করতে পারেন

sudo apt-get install package=2 যেখানে 2 সংস্করণ

প্যাকেজগুলির সাথে কী কী প্যাকেজ নির্ভর করে তা আপনি জানতে পারেন

apt-cache rdepends package


1
rd depends সংস্করণ সম্পর্কে বিস্তারিত তথ্য সরবরাহ করে না, তাই না?
টিমটাম

2
নির্ভরতা ইনস্টল করা প্রথমে মেটাপ্যাকেজ থাকার বিষয়টি অস্বীকার করবে। এটি একটি সমাধান, তবে আমি খুঁজছি এমন নয় not
tymtam

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