Komut satırından bir havuz bölümündeki tüm paketlerin listesini nasıl alabilirim?


13

Synaptic'te paketler bölümlere göre listelenebilir. Örneğin, aşağıdaki resimde "Amatör Radyo (evren)" bölümünün tüm paketleri listelenmiştir.

Komut satırında böyle bir listeyi (edit: paket açıklamasıyla birlikte) nasıl alabilirim?

Ham bir listeye ihtiyacım var; gibi bir terminal uygulaması aptitudeyapmaz.

sinaptik


apt-cache search shells
Panther

@ bodhi.zazen bu iyi bir öneri, ama sadece Bölüm aramıyor
Steven Penny

Yanıtlar:


5

Çıktı nedeniyle yetenek kullanmak istemediğinizi söyleseniz de, istediğinizi almak için değiştirebileceğinizi bilmeniz gerekir:

aptitude -F'|%p|%d|' search '?section(hamradio)'

Hile, -Fçıkış biçimini değiştiren anahtardadır. %ppaket anlamına gelir. Bu ayrıca paketin çeşitli mimarileri (yani amd64 vs i386) olduğunda ve %daçıklamanın çıktısını verir. Arama desenini, örneğin kurulu olmayan paketlerle daha da kişiselleştirebilirsiniz:

aptitude -F'|%p|%d|' search '?section(hamradio) !~i'

burada ~iyüklü demektir ve !bir değil, bu yüzden "değil (!) yüklü (~ i)" olarak okur veya sadece mimariniz için mevcut olanları istiyorsanız:

aptitude -F'|%p|%d|' search '?section(hamradio) ~r native'

~r?architecture()paketin mimarisiyle eşleşen ve nativeyalnızca sistemle aynı mimariye sahip olanları listeleyen varlıktır dpkg --print-architecture.

Dolayısıyla önceki satır daha kısaca şöyle yazılabilir:

aptitude -F'|%p|%d|' search '~s hamradio ~r native'

Çok zarif, özellikle ile -F'|%p|%d|'. Ancak, dizeye :i386bir !-express ekleyerek paketleri listelememek mümkün müdür search?
Serge Stroobandt

1
@GinGordon evet, sadece ~r nativearama terimlerine ekleyin . paketin mimarisiyle eşleşen ve yalnızca sistemle aynı mimariye sahip olanları listeleyen ~rvarlıktır . BTW, listeyi paket açıklamasıyla mı istediniz? ?architecturenativedpkg --print-architecture
Braiam

Harika! Ve evet, soruyu paket açıklamasını içerecek şekilde düzenledim. Lütfen cevabınızı buna göre düzenleyin ve en özlü olmak için en iyi cevap oyumu haklı olarak alacaksınız.
Serge Stroobandt

@GinGordon kontrol edin.
Braiam

1
@GinGordon Eğer aptitude-docpaketi yükler ve /usr/share/doc/aptitude/html/en/index.htmltarayıcınız ile giderseniz file:///usr/share/doc/aptitude/html/en/ch02s04s05.htmltüm kötü avantajları bulacaksınız .
Braiam

11

Dctrl-toolsDctrl araçlarını yükle paketinin kurulu olduğundan emin olun . Apt ve dpkg paket listelerinde arama yapmak için kullanışlı komutlar sağlar. Apt ile yüklenebilen belirli bir bölümdeki tüm paketlerin tam tanımını almak için,

grep-aptavail -F Section hamradio

Bu, hamradiobölümdeki her paket için tam paket meta verilerini gösterecektir . Tek görmek istediğiniz paket isimleri ise,

grep-aptavail -n -F Section -s Package hamradio

Sisteminiz çoklu arşiv için ayarlanmışsa, birden fazla mimari için oluşturulmuşsa aynı paket bu listede birden çok kez görünebilir. Bunu daha da hassaslaştırmak için,

grep-aptavail -n -F Section -s Package hamradio | sort | uniq

veya

grep-aptavail -n -F Section -s Package hamradio | sort -u

paket listesini sıralamak ve aynı ada sahip yinelenen paketleri kaldırmak için.

Synaptic'in GUI'sinde gösterdiği "insan tarafından okunabilir" adından farklı olan bölümün gerçek adını kullanmanız gerekeceğini unutmayın. Örneğin, yukarıdaki aramalar hamradioSynaptic'te gösterilen "Amatör Radyo" dizesi yerine bölüm adını kullanır.

Tüm seçeneklerin ve bazı örneklerin tam açıklaması için grep-aptavail için kılavuz sayfasına bakınız .


3

Tek satırda, rastgele ayırıcı ile daha fazla alan

Aşağıdaki tek satır , bir havuz bölümünün tüm benzersiz paket adlarını, açıklamalarıyla birlikte, her biri tek bir satıra yazdırır . Tüm alanlar bir boru karakteriyle ayrılır, yani bir Markdown boru tablosuna dönüştürülmeye hazırdır . Ortaya çıkan tablo web sitemde bulunabilir.

grep-aptavail -n -s Package,Description -F Section hamradio |paste -sd '||\n' |sed 's:^:|:' |sort -u

2

Belirli bir Bölüme ait paketlerin bir listesini almak için aşağıdaki komutu kullanabilirsiniz:

$ dpkg-query -W -f='${binary:Package} ${Section}\n' | awk '{if ($2 == "shells") {print $1}}'
bash
bash-completion
busybox-initramfs
busybox-static
dash
zsh
zsh-common
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.