প্যাকেজ কমান্ড লাইন থেকে একটি মেটা-প্যাকেজ কিনা তা কীভাবে নির্ধারণ করবেন?


14

প্যাকেজটি কমান্ড লাইন থেকে মেটা-প্যাকেজ কিনা তা সম্ভবত নির্ধারণ করতে পারি, সম্ভবত অ্যাপটি-গেট, প্রবণতা বা অ্যাপ-ক্যাশের মাধ্যমে?

আমি চেষ্টা করেছি:

apt-cache show texlive-full
apt-cache showpkg texlive-full

তবে এই প্যাকেজটি আমি কেবল জানার একমাত্র উপায় হ'ল "এন-বর্ণনা" ফিল্ডটি পড়ে।

এটি করার আরও একটি স্বয়ংক্রিয় উপায় আছে কি, তা আমাকে একটি হ্যাঁ / কোনও প্রতিক্রিয়া দেবে না, বা কমপক্ষে একটি ক্ষেত্র যেমন "এন-বিবরণ" এর জন্য নিবেদিত হবে?


1
এই প্রশ্ন এবং উত্তরগুলি বেশ আকর্ষণীয় হওয়ার বিষয়টি বাদ দিয়ে আপনি কেন এটি জানতে চান?
জো

1
আমি অ্যাপটি-গেটের সাথে স্টাফ ইনস্টল করছিলাম এবং লক্ষ্য করেছি যে আমি যদি কোনও মেটাপ্যাকেজ (টেক্সলাইভ-পূর্ণ) ইনস্টল করি তবে এটি আমার পছন্দসই নির্ভরতাগুলি ইনস্টল করে, তবে আমি যদি মেটাপ্যাকেজটি আনইনস্টল করি তবে নির্ভরতা সেখানেই থাকে (অ্যাপ্লিকেশন টেক্সলাইভ ইনস্টল করুন, apt-get purge texlive-full; apt-get autoremove)। তারপরে আমি দেখতে পেলাম যে এটি কেবলমাত্র मेटा প্যাকেজ ব্রেইনস্টর্ম.বুন্টু . com/ idea/ 17785 এর ক্ষেত্রে । অন্যদিকে প্রবণতা একটি মেটাপ্যাকেজ থেকে অপ্রয়োজনীয় নির্ভরতাগুলি সরিয়ে দেয়।
সিরো সান্তিলি 新疆 改造 中心 法轮功 六四 事件

উত্তর:


7

কোনও মেটাপ্যাকেজের কোনও আনুষ্ঠানিক সংজ্ঞা নেই। অনানুষ্ঠানিক সংজ্ঞাটি হ'ল একটি মেটাপ্যাকেজ এমন একটি যা কেবল তার নির্ভরতার জন্য ইনস্টল করার উদ্দেশ্যে এবং তার নিজস্ব কোনও কার্যকর ফাইল নেই।

আপনি কোনও প্যাকেজ হিসাবে কোনও মেটাপ্যাকেজকে সংজ্ঞায়িত করতে পারেন যা কোনও ফাইল নেই। প্যাকেজ ডাটাবেস থেকে এটি নির্ধারণ করার কোনও উপায় নেই। আপনি ফাইল ডাটাবেস ব্যবহার করতে পারেন এবং প্যাকেজটিতে কেবল ডিরেক্টরি রয়েছে তা পরীক্ষা করতে পারেন (এই জাতীয় প্যাকেজটিতে কয়েকটি ডিরেক্টরি রয়েছে)। আসলে, বেশিরভাগ মেটাপ্যাকেজে কয়েকটি ফাইল থাকে /usr/share/doc/<package name>: একটি copyrightফাইল, একটি চেঞ্জলগ, কখনও কখনও আরও কয়েকটি। এখানে একটি আনুমানিকতা রয়েছে যা একটি মেটাপ্যাকেজকে কেবলমাত্র ফাইলগুলিতে /usr/share/doc/<some directory>(যেটির উপ-ডিরেক্টরিতে নয়) এবং শীর্ষস্থানীয় ডিরেক্টরিগুলি অন্তর্ভুক্ত হিসাবে সংজ্ঞায়িত করে :

if ! apt-file -F list $package | grep -qvE '^/(usr(/share(/doc(/[^/]*(/[^/]*)?)?)?)?)?$'; then
  echo "$package looks like a metapackage"
fi

আরেকটি পদ্ধতির সাথে প্যাকেজ ট্যাগ সন্ধান করা debtags। বেশ কয়েকটি ট্যাগ রয়েছে যা সাধারণত মেটাপ্যাকেজে ব্যবহৃত হয়।

debtags tag ls $package | grep -x -e 'role::metapackage' -e 'role::dummy' -e 'special::meta'

আরেকটি পদ্ধতি হ'ল ছোট আকারের প্যাকেজগুলি সন্ধান করা। প্রতিটি ডিরেক্টরি 4 কেবি হিসাবে গণনা করা হয়, সুতরাং একটি প্রান্তিক বাছাই করার সময় সেই অনুযায়ী পরিকল্পনা করুন (আবার, এটি একটি আনুমানিক)।

aptitude -F '%I %p' search "~n^$package\$"

প্রতিবিম্বিত হওয়ার পরে, আমি অবাক হয়েছি আপনি মেটাপ্যাকেজগুলির চেয়ে ভার্চুয়াল প্যাকেজগুলি বোঝাচ্ছেন কি না। ভার্চুয়াল প্যাকেজগুলি আসলে প্যাকেজ নয় তবে Provides:ক্ষেত্রগুলিতে ব্যবহৃত প্যাকেজের নাম । আপনি তাদের সাথে তালিকাভুক্ত করতে পারেন aptitude search '~v'apt-cache showএকটি ডিসপ্লেতে চলছে "প্যাকেজ 'zcav' থেকে সংস্করণগুলি নির্বাচন করা যায় না কারণ এটি নিখুঁতভাবে ভার্চুয়াল। চলমান aptitude showএটি উপলব্ধ প্যাকেজগুলির তালিকা করে। ভার্চুয়াল প্যাকেজগুলি দেখানোর সুবিধাজনক উপায়টি সহ apt-cache: এটি একটি ভার্চুয়াল প্যাকেজটির জন্য একটি ভার্চুয়াল প্যাকেজটির জন্য এক লাইন এবং সম্ভাব্য একাধিক লাইন (প্রতিটি সরবরাহকারীর জন্য একটি) মুদ্রণ করে - আপনি যদি বলতে পারেন যে প্যাকেজটি ভার্চুয়াল কিনা এমনকি যদি কোনও একক সরবরাহকারী থাকে তবে কারণ সরবরাহকারীর নাম আলাদা।

apt-cache -n search "^$package\$"

এই পদ্ধতিগুলির জন্য ধন্যবাদ: আমি debtণপত্র সম্পর্কে জানতাম না! এছাড়াও, আমি কোথাও পড়েছি যে আপনি যখন এপট-গেটের সাথে একটি মেটাপ্যাকেজ ইনস্টল করেন, ঠিক ঠিক এমনই যে আপনি পৃথকভাবে প্রতিটি নির্ভরতা ইনস্টল করে রেখেছেন, অর্থাত্ মূল প্যাকেজটি অপসারণ করার সাথে সাথে তার নির্ভরতা সরিয়ে ফেলবে না, যখন সাধারণ প্যাকেজগুলির জন্য, অপসারণ হবে ইনস্টল করা নির্ভরতা অপসারণ করুন। এটা কি সত্য? যদি তাই হয় তবে কীভাবে পার্থক্যটি বলতে পারবেন? এটিও কাজে লাগানো যেতে পারে ... (এও মনে হয় যে এর মেটা না মেটাতে প্রবণতা যত্নশীল না, সত্য কি?)
সিওরো সান্তিলি

@ সিরোসন্টিলি স্বয়ংক্রিয়ভাবে নির্ভরতা অপসারণের বৈশিষ্ট্যটি মেটাপ্যাকেজের সাথে সম্পর্কিত নয়। এটি হ'ল কারণ যদি আপনি স্পষ্টভাবে কোনও প্যাকেজটির জন্য অনুরোধ না করেন তবে এটি স্বয়ংক্রিয়ভাবে ইনস্টল হিসাবে চিহ্নিত হয়েছে এবং স্বয়ংক্রিয়ভাবে ইনস্টল হিসাবে চিহ্নিত প্যাকেজটি অপসারণ করা হয়েছে যদি এর উপর নির্ভর করে কোনও প্যাকেজ ইনস্টল না থাকে। দেখুন apt-get autoremove, aptitude (un)markauto, Mপ্রবণতা ইন্টারেক্টিভ ইন্টারফেসে কমান্ড।
গিলস 'খারাপ হয়ে যাওয়া বন্ধ করুন'

@ সিরোসন্টিলি প্রতিবিম্বিত হওয়ার পরে, আমি অবাক হয়েছি যে আপনি কী মনে রেখেছিলেন ভার্চুয়াল প্যাকেজগুলি, এবং মেটাপ্যাকেজ নয়? আমার আপডেট হওয়া উত্তরটি দেখুন।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

ভার্চুয়াল প্যাকেজগুলি সম্পর্কে আমি সত্যিই জানতাম না, তবে আমি মনে করি টেক্সট্লাইভ পূর্ণটি ভার্চুয়াল নয় কারণ অ্যাপটি-ক্যাশে টেক্সটলাইভ-পূর্ণ ফলাফল দেখায় results তবুও, আমি করার পরে apt-get install texlive-full, apt-get purge texlive-full; apt-get autoremoveসমস্ত ইনস্টল করা নির্ভরতা সরিয়ে ফেলেনি। আমি কোথাও পড়েছি যে এটি কারণ টেক্সলাইভ পূর্ণ ছিল একটি বিপদ ছিল এবং এটি একটি মেটাপ্যাকেজের স্বাভাবিক আচরণ ছিল, তবে সম্ভবত এটি ভুল ছিল। অন্যদিকে প্রবণতাটি দেখে মনে হচ্ছে স্বয়ংক্রিয়ভাবে ইনস্টল করা নির্ভরতা ঠিক ঠিক আছে।
সিরো সান্তিলি 新疆 改造 中心 法轮功 六四 事件

2

আপনি প্রবেশ করার চেষ্টা করতে পারেন

apt-cache search 'metapackage | meta-package'

যা আপনাকে দীর্ঘ তালিকা দেবে এবং তারপরে grepবিজ্ঞানের সাথে সম্পর্কিত সমস্ত মেটাপ্যাকেজগুলি প্রদর্শন করে বলবে

apt-cache search 'metapackage | meta-package' | grep -i science

এটি একটি দীর্ঘ তালিকা ফিরে আসবে (আমি এটি এখানে ছোট করে রেখেছি )

science-astronomy - Debian Science Astronomy packages
science-astronomy-dev - Debian Science Astronomy-dev packages
science-biology - Debian Science Biology packages
science-chemistry - Debian Science Chemistry packages
science-dataacquisition - Debian Science data acquisition packages
science-dataacquisition-dev - Debian Science data acquisition development packages
science-distributedcomputing - Debian Science Distributed Computing packages
science-electronics - Debian Science Electronics packages
science-electrophysiology - Debian Science packages for Electrophysiology
science-engineering - Debian Science Engineering packages
science-engineering-dev - Debian Science Engineering-dev packages
science-geography - Debian Science Geography packages
science-highenergy-physics - Debian Science High Energy Physics packages

আপনি বিজ্ঞানের জন্য যে কোনও বিকল্প ব্যবহার করতে পারেন, যেমন KDEসমস্ত KDEমেটাপ্যাকেজগুলি সন্ধান করতে।

এটি সম্ভবত আপনি সবচেয়ে ভাল করতে পারেন apt-cacheতবে এটি আপনার সন্ধান করতে চান এমন বেশিরভাগ মেটাপ্যাকেজগুলি দ্রুত খুঁজে পাওয়া উচিত। আপনি যা সন্ধান করছেন ঠিক তার মতো সবকিছু যদি এটি খুঁজে না পায় তবে সবচেয়ে সহজ জিনিসটি হল মেটাপ্যাকেজ বিভাগে সন্ধান করা Synaptic

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