ฉันจะรู้ได้อย่างไรว่าแพคเกจเสมือนถูก“ ติดตั้ง” บนระบบ Debian หรือไม่?


16

บางแพ็คเกจมีProvides:ส่วนหัว ยกตัวอย่างเช่นแพคเกจpostfixใน Debian ดังเสียงฮืด ๆ 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ยอมรับคำตอบนี้เพราะเป็นมาตรฐานการใช้งาน ฉันชอบคำอธิบายของ @ umläute
Totor

ใน Debian Jessie ฉันเพียงแค่พยายาม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ในรายการ
Totor

1
@figtrap มันเร็วกว่าแน่นอนแต่มันไม่ทำงาน
Gilles 'SO- หยุดความชั่วร้าย'

10

ปัญหาที่นี่คือว่ามีความแตกต่างเล็กน้อยระหว่างแพคเกจเสมือนและแพคเกจที่ให้บริการโดยแพคเกจอื่น ๆ

ความแตกต่างคือว่าแพคเกจอาจให้จริงแพคเกจเป็นอย่างดีไม่เพียง แต่เป็นเสมือนแพคเกจ

แต่อย่างใดต่อไปนี้จะค้นหาแพ็คเกจทั้งหมดที่ให้แพ็คเกจและจะพิมพ์ทั้งชื่อแพ็คเกจและแพ็คเกจที่ให้ไว้:

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

เพื่อค้นหาว่ามีการติดตั้งแพคเกจใด ๆ บนระบบของคุณที่มีแพ็คเกจที่กำหนด (เช่น mail-transport-agent) ให้ใช้

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

3
หมายเหตุ: คำสั่งgrep-availableและgrep-statusพร้อมใช้งานเมื่อคุณติดตั้งdctrl-tools แพ็กเกจ
Totor

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

คุณจะได้รับทุกแพคเกจเสมือนจากรายชื่อที่มีสิทธิ์ของชื่อแพ็กเกจ VIRTUAL สำหรับการพิจารณาว่ามีการติดตั้งแพคเกจเสมือนจริงหรือไม่และฉันใช้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 สำหรับแพ็คเกจที่เพิ่งลบไป
Gilles 'หยุดความชั่วร้าย'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.