Bir paketin kurulu olup olmadığını nasıl kontrol edebilirim (süper kullanıcı ayrıcalıkları yok)?


56

Üniversitemizde istediğimiz hemen hemen her ubuntu paketini alabiliyoruz, ancak kendimizden üstün değiliz (paketlerin kurulmasını talep etmemiz gerekiyor).

Bazı kütüphanelerde paketin kurulu olup olmadığını bilmek her zaman kolay değildir. Bunu kontrol etmenin basit bir yolu / komutu var mı?

Yanıtlar:



18

Bunu daima komut satırından kullanırım:

dpkg -l | grep mysql

bu yüzden yukarıdakiler dpkg'dan kurulu tüm paketleri listelemelerini ister ve sonra sadece adında mysql olanları ararım.


3
dpkg -l "*mysql*"ayrıca çıktı içinde açıklayıcı çizgileri de çalışır ve gizlemez.
Philipp Wendler

dpkg -l "*mysql*"(ya da dpkg -l '*mysql*') çıktının her bir paketi terminal penceresinin bir satırına sığacak şekilde özel olarak biçimlendirmesini sağlar (grep yoktur). Ve bu form joker biçimini (ön ekler veya sonekler) ve joker karakterlerin kullanılıp kullanılmayacağını (grep ile karşılaştırıldığında) seçmenize izin verir. Ama grep güzel renk verir ..))
vstepaniuk

7

Bu sefer yetenek kullanarak bir değişken daha:

aptitude show <package>

Sekme tamamlama burada da çalışır.


6

Dselect'i kullanabilirsiniz. Suya salt okunur olmayan erişim sağlar.

Ayrıca, dpkg -s <package name>bir paketle ilgili birçok ayrıntı sağlar. Örneğin"

userme:~$ dpkg-query -s sl
Package: sl
Status: unknown ok not-installed
Priority: optional
Section: games

Bu sadece olarak da mevcuttur dpkg -s. Ve tam tersine, dpkg-query -laynı şekilde dpkg -lveyadpkg --list
belacqua

4

dpkg-query -s <package> 2>/dev/null | grep -q ^"Status: install ok installed"$ Komut dosyalarında kullanabilirsiniz ; çünkü , yüklü <package>değilse 0 , çıkış kodu 0 ise ve sıfırlandıysa 0 değerini döndürür <package>.


4
Dikkatli olun : dpkg -sİadeler 0, paketin tam olarak / doğru bir şekilde kurulduğu anlamına gelmez . dpkg -sAyrıca 0paketin içinde half-configuredya da içinde olması config-filesdurumunda da geri döner (ve sanırım içinde de half-installed, ancak bunu kontrol etmedim). [İnsana sayfasına bakın dpkg( manpages.ubuntu.com/manpages/oneiric/man1/dpkg.1.html ayrıca "eksik" devletler için).
Ateşleyici,

1
@Initor, iyi nokta. Cevabım yanlıştı. Paket bile sökülüp temizlendi. Bu yüzden paketin kurulu olup olmadığını kontrol etmek için çıktıyı incelemelisiniz.
jarno

2
Cevabı değiştirdim. Şimdi dpkg-query çıktısına dayanıyor. Bu çözümün ne kadar taşınabilir olduğunu bilmiyorum; örneğin, metin bazı sistemlerde başka bir dilde gösterilebilir mi?
jarno

2

Basit çözüm:

Şimdi apt listkurulu paketleri listeleyen bir komut var. Ayrıca belirli bir paket için arama yapabilirsiniz.

apt list <package>

Daha man aptfazla bilgi için bkz .


1
Ve apt showdaha fazla ayrıntı için
wjandrea

0

dpkg -s programlı kullanım

Herhangi bir paket kurulmamışsa dpkg -sdurumunun 1çıkmasını seviyorum , bu da otomatikleştirilmesini kolaylaştırıyor:

pkgs='qemu-user pandoc'
if ! dpkg -s $pkgs >/dev/null 2>&1; then
  sudo apt-get install $pkgs
fi

Ayrıca bakınız:

Ubuntu 18.10'da test edilmiştir.


0

Kabuk betiklerinde var olarak belirli bir değer kullanma örneği (örn. test.sh)

#!/bin/sh
PACKAGE="${1}"
INSTALLED=$(dpkg -l | grep ${PACKAGE} >/dev/null && echo "yes" || echo "no")

echo "${PACKAGE} is installed ... ${INSTALLED}"

Çalıştırılabilir yap ve şununla başla:

test.sh openssh-server

Veya senaryolarınızda ne isterseniz yapın


0

Basılı durumu kontrol etmeniz gerekir dpkg -l, örneğin:

$ dpkg -l firefox-esr vim winff
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
+++-====================================-=======================-=======================-=============================================================================
hi  firefox-esr                          52.9.0esr+build2-0ubunt amd64                   Safe and easy web browser from Mozilla
ii  vim                                  2:8.1.1198-0york0~14.04 amd64                   Vi IMproved - enhanced vi editor
rc  winff                                1.5.3-3                 all                     graphical video and audio batch converter using ffmpeg or avconv

İşte hem vimve firefox-esryüklü, bu nedenle yazabilirsiniz:

$ dpkg -l firefox-esr | grep -q ^.i && echo This package is installed. || echo This package is NOT installed.
This package is installed.
$ dpkg -l vim | grep -q ^.i && echo This package is installed. || echo This package is NOT installed.
This package is installed.
$ dpkg -l winff | grep -q ^.i && echo This package is installed. || echo This package is NOT installed.
This package is NOT installed.
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.