Debian'daki kullanılabilir (yani kaldırılmış) paketlerin listesini nasıl edinebilirim?


19

Aslında aradığım Debian eşdeğeri:

yum list available

hangi paketlerin mevcut olduğunu göstermek için (şu anda yüklü olmasa da). Bu uzak bir sunucuda olduğu gibi konsoldan çalıştırılabilecek bir şey tercih ederim. Teşekkürler.

Yanıtlar:


7

grep-dctrlve türevleri apt önbellek dosyalarını sorgulamak için harika bir yol sağlar. (Bu araçları ubuntu'ya sudo apt-get install dctrl-tools ile kurabilirsiniz)

Kullanılabilir (ancak zorunlu olarak kurulu olmayan) paketler için kullanabilirsiniz grep-available. Örneğin, mevcut tüm paketleri listelemek için:

grep-available  -s Package .

Düzenle:

aptitude yalnızca başlatarak Yüklenmeyen Paketler listesini gösterebilir.

Aşağıdakileri aptitudekullanarak yüklü olmayan paketlerin bir listesini de alabilirsiniz :

aptitude -F "%p" search "?not(?installed)"

Yeni çok kemerli paketlerle, bu sonuçta listelenen diğer mimariler için paketler alacağınızı unutmayın. Örneğin:

aptitude -F "%p" search "?not(?installed)"  | grep "^bash:"
bash:i386

Ben bashpaketi yükledim, ancak işletim sistemi Hassas Ubuntu amd64'tür sürümü ile yüklenir çünkü, amd64 versiyonu. Bu paketleri diğer mimariler için görmek istemiyorsanız, aşağıdakileri içeren satırları hariç tutabilirsiniz ::

aptitude -F "%p" search "?not(?installed)"  | grep -v ':'

Teşekkürler ama bu sorun benim seçilen depolar için tüm paket listeleri üzerinden trol zorunda kalacaktı. Belki de sorunu görselleştirmenin daha iyi bir yolu şu olabilir: X'in sunucumun işaret ettiği Debian paket depolarındaki tüm paketlerin evrensel kümesi olduğunu ve Y'nin söz konusu sunucuya yüklediğim paket kümesi olduğunu hayal edin; özünde, aradığım şey X - Y. Şimdi, bunu programlı olarak yapabileceğimin farkındayım, ancak aynı sonucu bir Debian sisteminde elde etmek için nispeten basit bir komut olacağını umuyordum.
freakwincy

Düzenlenmiş cevabınızı gördüm. Onun tam olarak ne aradığını! Teşekkürler.
freakwincy

Not: Cevabınızı yükselttim ama henüz yeterince itibar puanı kazanmadım.
freakwincy

Sorun değil. Bu arada SU'ya hoş geldiniz ;-)
ℝaphink

16

apt-cache paket önbelleğini sorgulamak için kullanılır:

apt-cache pkgnames | çeşit
apt-cache search şey
apt-cache search --names okunur şey

teşekkürler ama bunun işe yaramadığından korkuyorum. İlk komut tarafından oluşturulan listeyi daha önce oluşturduğum kurulu paketlerle karşılaştırdım: code"dpkg --get-selection | grep '[[: space:]] install $' | awk '{print $ 1}' > loaded.txt "dosyasını buldum ve yinelemeler bulundu. Sağladığınız diğer iki komut çalışmaz, çünkü belirli bir paketi değil, şu anda yüklü olmayan herhangi bir paketi arıyorum .
freakwincy

2

apt-cacheBu amaçla kullanın :

apt-cache search package

Yana apt-cachesadece sistem üzerinde paket önbellek kullanır, bu önbellek güncel olduğundan emin olun:

apt-get update

apt-fileAramak istediğiniz dosyanın adını biliyorsanız yardımcı programı da kullanabilirsiniz ; ancak bunun sisteme eklenmesi gerekir. Örneğin:

apt-file search somefilename

apt-cacheAşağıdaki yöntemlerden birini kullanma eğilimindeyim :

apt-cache search package | sort | grep item

(Bu, öğenin özeti veya adlarında gerçekte olan şeyleri gösterir .)

apt-cache search thing | sort | less

(Bu şey arar, sonra hoş bir izleme için sıralar less.)


2

Benim bakış açım, varsayılan olarak kurulu komutlarla çalışmak ve belirli bir sebep yoksa ekstra paketlerden kaçınmaktır.

GNU ile Debian'ımda bash bu basit komutlar

apt list
apt list --all-versions

her şeyin bir listesini verir (yüklü ve yüklü değil). Daha sonra grep "kurulu" veya grep -v "kurulu" ile sonuçları sınırlandırabilirim. Ayrıca bir veya daha fazla paket adıyla birleştirilebilir (vahşi işaretler kabul edilir).

Anahtar "-tüm-versiyonlar" her paket sürümü (kararlı, test, kararsız, deneysel) için çıkış ayrı satırlar sağlar.

Basit "apt list" sadece bir (en yüksek öncelikli) versiyon verir.


0

Sorunuzu kesinlikle dikkate alarak (kurulu olmayan paketlerin bir listesini göstermek istiyorsunuz), kullanmayı deneyin

(aşağıdaki yorumlara göre düzenlenmiştir)

# apt-get update
# dpkg -l '*' | egrep --invert-match '^i'

Tam bir sözdiziminden emin değilim, çünkü bunu bir pencere kutusuna yazıyorum ve kontrol etmenin bir yolu yok. Belki de grep'ini değiştirmeye çalış


Bu , kaldırılmamış yüklü paketleri listeler .
inkaphink

@Raphink: Üzgünüm, bunu düzeltmek için gönderiyi düzenledim
PPC

Sorun değil, ancak hala yüklenmemiş paketleri listelemiyorsunuz. 'İi' paketleri hariç tutarak (aslında ifadenizin gerçekten yaptığı şeylerden '^ii'ziyade kullanmanız gerekir '[ii]'), yüklü ancak yapılandırılmamış paketleri (örneğin iFveya iHörneğin) kaçırıyorsunuz .
inkaphink

@PPC: Ne yazık ki, bu sadece dpkg -l yüklü paketleri listelediği için çalışmaz, yani tüm paketler "ii" ile ön plandadır, bu nedenle --invert-match veya -v bayraklarını kullanarak sonuçları grep'e pipetlemek yalnızca bir liste üstbilgisi ayırıcısı olan tire serileri. Yine de teşekkürler.
freakwincy

@ freakwincy: Doğru! Göndermeden önce test etmediğim için üzgünüm (pencerelerde çalışıyor). Manpage'e göre, tüm paketleri listelemek için "dpkg -l '*'" kullanmalısınız.
PPC
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.