Apt-cache ve dpkg -l arasındaki ayrım


9

Paketleri almak için apt-cache pkgname kullanıyorum

me@host:~$ apt-cache pkgnames | wc -l
62803

62803 sonuç almak

fakat

me@host:~$ dpkg -l | wc -l
2336

Böylesine büyük bir ayrımı sağlayan sebepler nelerdir. Ben dpkg uygun değil süper olduğunu düşünüyorum.



@Olorin Bu soruyu Açık bırakmak için oy kullandım. Onlar yineler tamam, ama ben çoğaltma yönünün ters ve dpkg-sorgu vs apt-önbellek yerine bu sorunun bir kopyası olarak kapatılmasını istiyorum.
karel

Yanıtlar:


16

aptuzak depoları yönetmek içindir dpkg- yerel olarak kurulmuş paketler için. Alakalılar. aptön uçtur dpkg. Çalıştırdığınızda dosyayı apt-get install packagealır .debve yükler dpkg. Bu nedenle sayılar farklıdır, çünkü çok sayıda paket mevcuttur, ancak sisteminize yerel olarak yalnızca kesir yüklenir.

apt-cachehem yüklü hem de kurulu olmayan paketleri gösterebilir, çünkü aptönbelleği sorgular - uzak depolarda nelerin mevcut olduğunu listeler (bu önbellek yaptığınızda aldığınız şeydir apt-get update). Örneğin,

$ apt-cache policy terminator
terminator:
  Installed: (none)
  Candidate: 1.91-1


$ dpkg -l terminator
dpkg-query: no packages found matching terminator

Yüklü / kaldırılan yerel paketlerin listesini sorgulayabilen başka bir araç olduğunu unutmayın ve bu dpkg-query. Örneğin,

$ dpkg-query -l 'libc6'
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  libc6:amd64          2.27-3          amd64           GNU C Library: Shared libraries
ii  libc6:i386           2.27-3          i386            GNU C Library: Shared libraries

$ dpkg -l libc6
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  libc6:amd64          2.27-3          amd64           GNU C Library: Shared libraries
ii  libc6:i386           2.27-3          i386            GNU C Library: Shared libraries

Gereğince dpkg kılavuzda

dpkg, dpkg-deb (1) ve dpkg-query (1) için bir ön uç olarak da kullanılabilir. Desteklenen eylemlerin listesi daha sonra EYLEMLER bölümünde bulunabilir. Böyle bir eylemle karşılaşılırsa, dpkg sadece verilen parametrelerle dpkg-deb veya dpkg-query çalıştırır, ancak şu anda belirli bir seçenek geçirilmez, bu tür bir seçeneği kullanmak için arka uçların doğrudan çağrılması gerekir.

Gidildiği kadarıyla dpkg-query, bu aracın yüklü paketlerin veritabanını sorgulamaya odaklandığına ve belirli bir formatta ( -fseçenek artı -Weylem) çıktı alabileceğine dikkat edilmelidir . Örneğin,

$ dpkg-query -W -f='PACK:${Package}\nARCH:${Architecture}\nSTAT:${Status}\n---\n' libc6
PACK:libc6
ARCH:amd64
STAT:install ok installed
---
PACK:libc6
ARCH:i386
STAT:install ok installed
---

İlginçtir ki, dpkg veritabanı kaldırılmak üzere seçilen veya bir noktada kaldırılan paketlerin listesini tutar . dpkg-queryayrıca glob desenini argüman olarak alabilir ve yokluğuna bağlı olarak yalnızca kurulu / yapılandırılmış paketleri veya tüm paketleri gösterir.


2

dpkg -l, kurulu paket sürümlerinizi (ii ile başlayan), kaldırılanları (rc) ve diğerlerini (ör. yüklü ancak yapılandırılmamış olarak gösterir, bkz. sayfa).

apt-cache pkgnames, eklenen depolardaki tüm kullanılabilir paket adlarını (ancak aynı paketin sürümlerini değil) gösterir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.