অ্যাপ্ট কেন এই অতিরিক্ত নির্ভরতা প্রয়োজন মনে করে?


9

আমি কিছু মেশিন সেটআপ নির্দেশাবলীর উপর কাজ করছি, এবং এটির apt-get install A Bচেয়ে আলাদা আচরণ করতে পারে তা জানতে পেরে আমি অবাক হয়েছি apt-get install A && apt-get install B

আমার নির্দিষ্ট উদাহরণ A == openjdk-7-jdkএবং B == ant

সুতরাং, openjdk-7-jdkনির্ভর করে openjdk-7-jre-headless, যা antএর নির্ভরতা সন্তুষ্ট করে java6-runtime-headless। তবে আপনি যদি এগুলি ইনস্টল করেন তবে apt-get install openjdk-7-jdk antএপিটি এটি আবিষ্কার করে এবং ইনস্টল করবে বলে মনে হয় না default-jre-headless। তবে আপনি যদি ইনস্টল করার openjdk-7-jdkআগে ইনস্টল করেন তবে antএর নির্ভরতা সন্তুষ্ট এবং সব ভাল।

এপিটি সাধারণত এই ধরণের জিনিসটি বের করার জন্য যথেষ্ট স্মার্ট, তাই কেন এটি এই ক্ষেত্রে এটি করতে পারে না? এটি কেন এইভাবে কাজ করে সে সম্পর্কে আমি আরও ভালভাবে বুঝতে চাই, যাতে এই ধরণের জিনিসটি ভবিষ্যতে আমাকে আবার ট্রিপ করে না।


আমার এপটি ক্যাশে তাকিয়ে দেখছি যে ওপেনজড্ক---জেডি কে 7 ~ u3-2.1.1 ~ প্রাক1-1বুন্টু 2 ওপেনজেডক -7-জেরের উপর নির্ভর করে, যা ঘুরিয়ে ওপেনজেডকে -7-জে-হেডলেস উপর নির্ভর করে, তাই এই নির্ভরতা পরোক্ষ । পিঁপড়া সরাসরি ডিফল্ট-জে-হেডলেস উপর নির্ভর করে। আমি নির্ভুল ব্যবহার করছি আমি কেবল অনুমান করছি তবে ভালভাবেই পিঁপড়া দিয়ে নির্বিচারে শুরু হতে পারে, বা স্তর 1 নির্ভরতা দিয়ে শুরু করতে পারে এবং তারপর স্তর 2 নির্ভরতাতে যেতে পারে। যাইহোক, আপনি যদি প্যাকেজগুলির চূড়ান্ত কনফিগারেশন সম্পর্কে উদ্বিগ্ন হন (ওপেনডজেক-j-জে-হেডলেস ওভার-ডিফল্ট -..- ..) তাদের নির্দিষ্টভাবে এবং স্বতন্ত্রভাবে নির্দিষ্ট করে দেওয়া সম্ভবত এটি নিয়ন্ত্রণের সেরা উপায় way
জন এস গ্রুবার

আপনি কি এখনও এই প্রশ্নে আগ্রহী?
গুনবার্ট

@ গুন্টবার্ট শিওর, যদিও আমি বিশ্বাস করে নিজেকে পদত্যাগ করেছি যে কোনও কারণ নেই; তার ঠিক উপায় এটা.
leedm777

5
কিভাবে এপিটি সমাধানকারী কাজ, তাকান দেখার জন্য apt-get install -o Debug::pkgProblemResolver=true package1 package2...। এটি আপনাকে কেন এমনভাবে কাজ করছে তা বোঝাতে পারে give
লাসাল

উত্তর:


2

দেখে মনে হচ্ছে যে এখানে কিছু ধরণের "ওজন" সিস্টেম চলছে:

$ aptitude why ant openjdk-7-jdk
p   ant                 Recommends ant-optional       
p   ant-optional        Suggests   libgnumail-java    
p   libgnumail-java     Suggests   libgnumail-java-doc
p   libgnumail-java-doc Recommends default-jdk-doc    
p   default-jdk-doc     Depends    openjdk-7-doc      
p   openjdk-7-doc       Suggests   openjdk-7-jdk

যেহেতু আপনি দেখতে পারেন antউপর নির্ভর করে openjdk-7-jdkকারণে প্রস্তাবনা, প্রস্তাবনা এবং নির্ভরতা একটি জটিল এবং intricated পরিমাণে, যখন যখন ব্যবহার openjdk-6-jdkনির্ভরতা আরো সরাসরি হল:

$ aptitude why ant openjdk-6-jdk
p   ant           Suggests default-jdk | java-compiler | java-sdk
p   openjdk-6-jdk Provides java-sdk

aptitudeনির্ভরতা সমাধানের পদ্ধতি অবশ্যই এর চেয়ে আলাদা হতে পারে apt-get। বিটিডাব্লু, ওপেনজেডকে-7-জেডিকি ইনস্টল না করে পিপীলিকার সিমুলেশন চালাচ্ছে ওপেনজেডকে---জেডিকে টানবে না:

$ sudo apt-get install ant
[sudo] password for braiam: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  ant-optional
Suggested packages:
  default-jdk java-compiler java-sdk ant-gcj ant-doc liboro-java junit
  libregexp-java jython antlr libbcel-java libjdepend-java libgnumail-java
  libcommons-net-java libjsch-java javacc ant-optional-gcj
The following NEW packages will be installed:
  ant ant-optional
0 upgraded, 2 newly installed, 0 to remove and 9 not upgraded.
Need to get 2,234 kB of archives.
After this operation, 3,041 kB of additional disk space will be used.
Do you want to continue [Y/n]? 

আপনি যদি আমার মতো একই পদ্ধতি ব্যবহার করেন তবে আপনি আরও জানতে পারবেন, যেহেতু আমি এখনই দেবিয়ান টেস্টিং ব্যবহার করছি এবং এর মধ্যে ভান্ডারগুলি বদলে যেতে পারত।


0

আফাইক, নির্ভরতা সন্তুষ্ট করার জন্য এটির খেলাপি রয়েছে, সুতরাং প্যাকেজ ইনস্টল করার আগে যদি সেই নির্ভরতা সন্তুষ্ট না হয় তবে এটি নির্ভরতা ইনস্টল করে এবং তারপরে অনুরোধ করা প্যাকেজ ইনস্টল করে।

যদিও এটি কেবল একটি বৃহত বাগ হতে পারে।

যেভাবেই হোক, আশা করি এটি সাহায্য করবে।

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