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


Ich habe vor kurzem Ubuntu Server Edition 13.10 (Saucy Salamander) installiert. Aber ich habe ein kleines Problem bekommen.

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

Enter image description here

Nun, mein Problem ist, dass ich mich nicht erinnern kann, wenn 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 für die virtuelle Maschine geliefert?


126
2018-02-19 21:12


Ursprung




Antworten:


Um alle installierten Pakete aufzulisten

Hier ist "weniger" ein einfacher Textleser, der zum Scrollen durch die Liste von Paketen in einem neuen Puffer dient, 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

Zeigen Sie den Speicherort 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

So verwenden Sie Grep zum Suchen:

dpkg -l | grep {keywords}
dpkg -l | grep pdf

176
2018-02-20 09:12



Was ist der Unterschied zwischen diesem und? dpkg-query -l "Paketname" - heypaleblue
Verlassen Sie sich nicht auf den Exit-Code von dpkg -l packagename, da es möglicherweise mit einem Exit-Code 0 zurückgegeben wird, selbst wenn das Paket nicht vollständig installiert ist - siehe: github.com/bitrise-io/bitrise/issues/433 - Viktor Benei
dpkg -l | cut -d " " -f 3 | grep "^vlc" um alle Paketnamen anzuzeigen, die mit beginnen vlc - anatoly techtonik
Zu Ihrer Information: Dies funktioniert nicht für Meta-Pakete, da sie nicht direkt mit einem dpkg korrelieren. Ihre Antwort beantwortet die Frage jedoch wie gewünscht. - mtalexan


Benutzen 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

Und um zu erfahren, ob es installiert ist, verwenden Sie

dpkg -s packagename | grep Status

Sie können erfahren, 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 

24
2018-02-20 09:10





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):

$ 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

20
2017-09-11 13:54



Sie können einen Stern am Ende des Paketnamens für einen Platzhalter setzen. - Brannon
Sie können auch die Option --installed für diesen Befehl verwenden, um auf tatsächlich installierte Übereinstimmungen zu beschränken. - mtalexan
Was ist das? -qq zum? Es scheint ohne es identisch zu funktionieren, und diese Option ist nicht im Handbuch man apt - Gabriel Staples
@GabrielStaples Es sieht aus wie die apt list Befehl ist noch nicht vollständig dokumentiert. Einige schnelle Tests am 16.04 scheinen darauf hinzuweisen -q ist ein Synonym für --quiet Möglichkeit. Der Erste -q verhindert, dass das Wort "Fertig" gedruckt wird. Die zweite verhindert auch, dass "Listing ..." gedruckt wird. - Anthony Geoghegan


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 ein geeignetes Playbook geschrieben habe.

Also, Sie können so etwas tun:

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

Dies ist nur ein weiterer Weg, um das Ding zu machen.


12
2017-09-01 19:47



Rohre in ansible können mit dem verwendet werden shell Modul. - sjas


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

"Ich kann mich nicht erinnern, ob ich das Kontrollkästchen" Virtual Machine Host "aktiviert habe."

Überprüfen Sie, ob nach dem erneuten Ausführen ein Stern mit dem Namen vorhanden ist sudo tasksel.
(oder ein ' ich 'wenn es läuft tasksel --list-tasks).

Wenn Sie das nicht sehen, dann Sie wahrscheinlich habe nicht das "tasksel" Meta-Paket' Eingerichtet.


"..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 tasksel --list-tasks | grep virt ist genug)

Dies gibt die richtige Aufgabe Name und eine Angabe, ob es installiert ist.

In Ihrem Fall ist dieser Name der Taskleiste virt-host.


"Welche Pakete kommen mit dem Host der virtuellen Maschine?"

Suchen Sie im letzten Befehl den Namen der Task-Task.
Dies wird für den nächsten Befehl benötigt:

tasksel --task-packages virt-host

Dies listet das einzelne Metapaket von Tasksel auf (mit angehängten '^' bezeichnet), aus denen der Name besteht.
In deinem 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  ... ob apt show funktioniert nicht.)

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

Dann:

 dpkg -l {each individual pkg name listed above}

Dies wird Ihnen sagen, 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.

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

Wenn Sie tasksel Pakete entfernen möchten, kommt dies in die Unkräuter ein wenig. Bitte konsultiere https://askubuntu.com/a/88897/169878 oder irgendeine andere Antwort da draußen.

Bitte beachten Sie, dass "Meta" -Apt-Pakete nicht den Namen der Tasksel-Pakete entsprechen. Bitte konsultiere Tasksel Community Seite Für mehr Information.


4
2017-10-19 15:17



Beide Fragen werden richtig beantwortet. Wenn Sie einen Downvote machen, geben Sie einen Grund an oder sagen Sie mir, warum sie das nicht tun. - bshea


Benutze das tasksel (sudo apt-get install tasksel wenn du es noch nicht hast) und renn tasksel --list-tasks.

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

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

Die Softwareauswahlelemente werden "Aufgaben" genannt.


2
2018-02-19 21:31



Danke, dass du mir den Namen der Aufgabe gesagt hast, das war eines meiner Probleme, ich war mir nicht sicher, welches Paket ich suchen sollte. - D.Zou