কোনও ডেবিয়ান সিস্টেমে ভার্চুয়াল প্যাকেজটি "ইনস্টলড" রয়েছে কিনা আমি কীভাবে জানতে পারি?


16

কিছু প্যাকেজ, একটি Provides:শিরোনাম আছে। উদাহরণস্বরূপ, postfixডেবিয়ান হুইজির প্যাকেজটি রয়েছে Provides: mail-transport-agent

যে প্যাকেজটি mail-transport-agentশারীরিকভাবে বিদ্যমান নেই তাকে "ভার্চুয়াল" প্যাকেজ হিসাবে বিবেচনা করা হয়।

কোনও ডিবিয়ান ভিত্তিক সিস্টেমে কোনও প্রদত্ত ভার্চুয়াল প্যাকেজ "ইনস্টলড" (বা "সরবরাহিত") থাকলে আমি কীভাবে জানতে পারি? আমি কি প্রতিটি "সরবরাহিত" ভার্চুয়াল প্যাকেজ তালিকাবদ্ধ করতে পারি?

ইঙ্গিত : প্রতিটি বিদ্যমান ভার্চুয়াল প্যাকেজ তালিকাভুক্ত করতে, ইনস্টল করা হয়েছে বা নেই, করুন:aptitude search "~v"


1
এই মুহুর্তে আমার কোনও ডেবিয়ান নেই, তবে ড্রাই ড্রাই-ইনস্টলটি কি কাজটি করবে না?
jthill

উত্তর:


15

সরবরাহকারী প্যাকেজগুলির তালিকা করতে mail-transport-agent:

$ aptitude search '~Pmail-transport-agent'
p   citadel-mta                     - complete and feature-rich groupware server
p   courier-mta                     - Courier mail server - ESMTP daemon        
p   dma                             - lightweight mail transport agent          
p   esmtp-run                       - user configurable relay-only MTA - the reg
p   exim4-daemon-heavy              - Exim MTA (v4) daemon with extended feature
p   exim4-daemon-light              - lightweight Exim MTA (v4) daemon          
p   masqmail                        - mail transport agent for intermittently co
p   msmtp-mta                       - light SMTP client with support for server 
p   nullmailer                      - simple relay-only mail transport agent    
i   postfix                         - High-performance mail transport agent     
p   sendmail-bin                    - powerful, efficient, and scalable Mail Tra
p   ssmtp                           - extremely simple MTA to get mail off the s
p   xmail                           - advanced, fast and reliable ESMTP/POP3 mai

এটি aptitude search '~Pmail-transport-agent ~i'কেবল ইনস্টলড প্যাকেজগুলির তালিকাতে তৈরি করুন (যদি থাকে)।

বর্তমানে ইনস্টল করা প্যাকেজগুলির দ্বারা সরবরাহিত সমস্ত ভার্চুয়াল প্যাকেজগুলির তালিকা করতে:

aptitude search '~Rprovides:~i ~v'

অনুসন্ধান নিদর্শনগুলির ব্যাখ্যার জন্য প্রবণতা ম্যানুয়ালটি দেখুন ।


এই উত্তরটি গ্রহণ করা কারণ এটি স্ট্যান্ডার্ড ব্যবহার করে aptitude। যদিও আমি @ ইউএমএলউইটের ব্যাখ্যাটি পছন্দ করি।
টোটার

ডেবিয়ান জেসি, আমি শুধু চেষ্টা aptitude search '~Pmysql-server ~i'যা দেয় mariadb-server-10.0এবং mariadb-server-core-10.0, কিন্তু আমি কি aptitude search '~Rprovides:~i ~v', আমি দেখতে পাই না mysql-serverতালিকায় ... যাইহোক, আমি দেখতে পাচ্ছ virtual-mysql-client, virtual-mysql-client-core, virtual-mysql-serverএবং virtual-mysql-client-coreতালিকায়।
টোটার

1
@ ফিগট্র্যাপ এটি দ্রুত, নিশ্চিত, তবে এটি কার্যকর হয় না
গিলস

10

এখানে সমস্যা হ'ল ভার্চুয়াল প্যাকেজ এবং অন্যান্য প্যাকেজগুলির সরবরাহিত প্যাকেজগুলির মধ্যে একটি সূক্ষ্ম পার্থক্য রয়েছে ।

পার্থক্য হল যে একটি প্যাকেজ পারে, হয় প্রদান একটি বাস্তব পাশাপাশি না শুধুমাত্র একটি প্যাকেজ, ভার্চুয়াল প্যাকেজ।

যাহাই হউক না কেন, নিম্নলিখিত সমস্ত প্যাকেজ যে জন্য অনুসন্ধান করবে প্রদান একটি প্যাকেজ এবং উভয় প্যাকেজের নাম এবং প্যাকেজ এটি উপলব্ধ করা প্রিন্ট হবে:

grep-available -sPackage  -sProvides -FProvides -e '^.'

আপনার সিস্টেমে কোনও প্যাকেজ ইনস্টল করা আছে যা প্রদত্ত একটি সরবরাহ করে (যেমন মেইল-পরিবহন-এজেন্ট), ব্যবহার করুন

grep-status -sPackage -sProvides -FProvides "mail-transport-agent"

3
দ্রষ্টব্য: কমান্ডগুলি grep-availableএবং প্যাকেজ grep-statusইনস্টল করার পরে উপলব্ধ are dctrl-tools
টোটার

1

apt-cache showpkg <virtual>প্রার্থী প্যাকেজগুলির তালিকা dpkg -l <canddate> <candidate> ...প্রদর্শন করতে এবং তারপরে প্রার্থীদের ইনস্টলেশন স্থিতি প্রদর্শন করে আপনি প্রদত্ত ভার্চুয়াল প্যাকেজের উপস্থিতি সনাক্ত করতে পারেন ।

উদাহরণ স্বরূপ:

$ apt-cache showpkg awk
$ dpkg -l original-awk mawk gawk

এখানে একটি সম্পূর্ণ প্রিন্টআউট:

$ apt-cache showpkg awk
Package: awk
Versions: 

Reverse Depends: 
  base-files,awk
  base-files,awk
Dependencies: 
Provides: 
Reverse Provides: 
mawk:i386 1.3.3-17ubuntu2
gawk:i386 1:4.0.1+dfsg-2.1ubuntu2
original-awk 2012-12-20-1
mawk 1.3.3-17ubuntu2
gawk 1:4.0.1+dfsg-2.1ubuntu2

$ dpkg -l original-awk mawk gawk
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  gawk           1:4.0.1+dfsg amd64        GNU awk, a pattern scanning and p
ii  mawk           1.3.3-17ubun amd64        a pattern scanning and text proce
dpkg-query: no packages found matching original-awk

আমি বিশ্বাস করি dpkgএবং apt-cacheকম স্তর সরঞ্জাম aptitude, grep-availableএবং grep-status। আপনার নির্দিষ্ট প্রয়োজনীয়তার উপর নির্ভর করে নিম্ন স্তরের সরঞ্জামগুলি ব্যবহার করা কোনও উপকার হতে পারে বা নাও হতে পারে।


-1

আপনি ভার্চুয়াল প্যাকেজগুলির সমস্তটি ভার্চুয়াল প্যাকেজ নামগুলির লেখকের তালিকার তালিকা থেকে পেতে পারেন । ভার্চুয়াল প্যাকেজটি ইনস্টল করা আছে কিনা তা নির্ধারণ করার জন্য dpkg -lএবং প্যাকেজটি ইনস্টল করা থাকলে এর 0 প্রস্থান কোড এবং এটি ইনস্টল না থাকলে 1 এর একটি প্রস্থান কোড রয়েছে তা সত্য।

dpkg -l mail-transport-agent &> /dev/null; echo $?

না, এটি কাজ করে না। dpkg -l mail-transport-agentবর্তমানে ইনস্টল থাকা কোনও প্যাকেজ সরবরাহ না করেও 0 ফিরিয়ে দিতে পারে। আমি মনে করি এটি উপস্থিতির উপর ভিত্তি করে /var/dpkg/lib/availableতবে আমি নিশ্চিত নই। আমি চেক dpkg -l fooকরেছিলাম যে আমি যে প্যাকেজটি ইনস্টল করি না তার জন্য 1 প্রদান করে যা আমি কেবল প্যাকেজ করেছিলাম এমন প্যাকেজের জন্য 0 নয়।
গিলস 'অশুভ হওয়া বন্ধ করুন'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.