Wie überprüfe ich, ob ein Paket auf meinem Server installiert ist?

123

Ich habe kürzlich Ubuntu Server Edition 13.10 (Saucy Salamander) installiert. Aber ich habe ein bisschen Probleme bekommen.

Am Ende der Installation fragt es Sie nach mehreren zusätzlichen Paketen, ob Sie sie wollen oder nicht, wie OpenSSH-Server und Virtual Machine-Host. Hier ist, was ich sehe:

Nun, mein Problem ist, dass ich mich nicht erinnern kann, ob ich das Kontrollkästchen "virtual machine host" aktiviert habe. Wie überprüfe ich, ob mein Server die entsprechenden Pakete hat?

Welche Pakete werden mit dem Host der virtuellen Maschine geliefert?

    
D.Zou 19.02.2014, 22:12
quelle

6 Antworten

170

So listen Sie alle installierten Pakete auf

Hier ist "less" ein einfacher Textleser, mit dem man durch die Liste der Pakete in einem neuen Puffer blättern kann, der sich im vorhandenen Terminalfenster öffnet. Die Liste wird nicht mit anderen Terminalbefehlen und Ausgaben gemischt. Drücken Sie 'q', um zur Terminal-Eingabeaufforderung zurückzukehren. Siehe "Mann weniger" für weitere Informationen.

dpkg -l | less

Um zu überprüfen, ob ein Paket installiert ist oder nicht:

dpkg -l {package_name}
dpkg -l vlc

Um zu überprüfen, ob das Paket installiert ist oder nicht (z. B. vlc ). Falls installiert, starte das Paket:

dpkg -l | grep vlc

Zeigt den Ort an, an dem das Paket installiert ist. Das "-S" (Großbuchstabe S) steht für "Suche"

sudo dpkg -S {package_name}
sudo dpkg -S skype

Um Grep zum Suchen zu verwenden:

dpkg -l | grep {keywords}
dpkg -l | grep pdf
    
Lonston 20.02.2014, 10:12
quelle
23

Verwenden Sie dpkg

Dieser Befehl ist der Debian-Paketmanager.

Sie können alle installierten Pakete mit

auflisten
dpkg -l

Sie können Details zu einem bestimmten Paket mit

anzeigen
dpkg -p packagename

Um zu erfahren, ob es installiert ist, verwenden Sie

dpkg -s packagename | grep Status

Mit

können Sie herausfinden, welches Paket die gewünschte Software enthält
apt-cache search name*  

In Ihrem Fall sollten Sie diesen Befehl verwenden, um den gewünschten Paketnamen zu suchen

apt-cache search virtual machine host 
    
onurbekiroglu 20.02.2014 10:10
quelle
20

apt -qq list PACKAGE kann auch verwendet werden, um zu überprüfen, ob das Paket installiert ist.

Wenn es installiert ist, wird etwas wie (mit [installed] am Ende der Zeile) gedruckt:

$ apt -qq list awscli
awscli/stable,now 1.4.2-1 all [installed]

Wenn nicht installiert, lautet die Ausgabe:

$ apt -qq list awscli
awscli/stable 1.4.2-1 all
    
Viktor Benei 11.09.2016 15:54
quelle
12

Ich habe einen Weg gefunden, mit nur dem Befehl dpkg-query und ohne Pipes nach der Paketinstallation zu suchen.

Ich habe nach einer solchen Lösung gesucht, während ich eine Aufgabe für ansible playbook geschrieben habe.

Sie können also so etwas tun:

/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '<your package name>'

Dies ist nur eine andere Möglichkeit, das Ding zu machen.

    
DenKoren 01.09.2015 21:47
quelle
4

Ich schreibe eine neue Antwort als Tasksel "Aufgabennamen" erscheinen NICHT in dpkg oder apt Abfragen Die anderen Antworten sind unvollständig (oder falsch).

"Ich kann mich nicht erinnern Wenn ich das Kontrollkästchen 'virtual machine host' aktiviert habe."

Überprüfen Sie, ob nach dem erneuten Ausführen von sudo tasksel ein Sternchen mit dem Namen angezeigt wird. (oder ein i , wenn tasksel --list-tasks ausgeführt wird).

Wenn Sie dies nicht sehen, haben Sie wahrscheinlich das Meta-Paket nicht / a> 'installiert.

".. Wie überprüfe ich, ob mein Server die entsprechenden Pakete hat?"

Wenn Sie herausfinden möchten, was unter dem Meta-Paket für den Host für virtuelle Maschinen installiert ist:

tasksel --list-tasks

(in Ihrem Fall ist tasksel --list-tasks | grep virt genug)

Dies gibt die richtige Aufgabe name und eine Angabe, ob sie installiert ist.

In Ihrem Fall lautet der Name dieses Vorgangsassistenten virt-host .

"Welche Pakete werden mit dem Host der virtuellen Maschine geliefert?"

Suchen Sie nach dem letzten Befehl den Task-Tasknamen.
Dies wird für den nächsten Befehl benötigt:

tasksel --task-packages virt-host

Hier finden Sie das einzelne Metapaket von Tasksel (mit angehängtem '^'), aus dem der Name besteht.
In Ihrem Fall ist es virt-host^ .

Sobald Sie den richtigen Meta-Namen gefunden haben, können Sie apt:

verwenden
 apt show virt-host^ | grep "Package:"

(oder apt-cache show ... , wenn apt show nicht funktioniert.)

Dies zeigt alle Pakete an, aus denen das angegebene Meta-Paket besteht.

Dann:

 dpkg -l {each individual pkg name listed above}

Dies sagt Ihnen, ob das einzelne Paket installiert / deinstalliert wurde (vermerkt durch den 2. Buchstaben: 'i' Status bedeutet installiert). Tun Sie dies für alle Pakete, die unter dem Task / Meta-Paket aufgeführt sind.

Dies sollte die ursprünglichen Fragen beantworten.

Seitliche Anmerkung: /usr/share/tasksel/descs/ubuntu-tasks.desc enthält auch Beschreibungen der Metapakete von Tasksel. Wenn Sie grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.desc angeben, wird der richtige APT Meta-Paketname angezeigt. (In Ihrem Fall ist das ubuntu-virt-server ). Sie können auch apt -Befehle mit diesem Metanamen verwenden.

Wenn Sie tasksel Pakete entfernen möchten, kommt dies in die Unkräuter ein bisschen. Bitte konsultiere Pfandrecht oder eine beliebige Anzahl anderer Antworten da draußen.

Bitte beachten Sie, dass "Meta" -Apt-Pakete nicht mit den Namen der Tasksel-Pakete übereinstimmen. Weitere Informationen finden Sie auf der Tasksel Community-Seite .

    
bshea 19.10.2016 17:17
quelle
2

Verwenden Sie tasksel ( sudo apt-get install tasksel , falls Sie es noch nicht haben) und führen Sie tasksel --list-tasks .

aus

tasksel wird eine Liste der Aufgaben ausdrucken, und neben jeder Aufgabe, die installiert wird, wird ein i und neben jeder Aufgabe, die nicht installiert ist, ein u .

Wenn Sie die Aufgabe installieren möchten, verwenden Sie tasksel install <task> . Der Name der Aufgabe, nach der Sie suchen, lautet virt-host .

Die Software-Auswahlelemente heißen "Aufgaben".

    
Blake R 19.02.2014 22:31
quelle