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.