Ich versuche, ein Skript zu schreiben, mit dem ich feststellen kann, ob das Paket vorinstalliert ist oder vom Benutzer installiert wurde.
Und können wir auch herausfinden, dass die folgenden Abhängigkeiten des Pakets „X“ vorliegen?
Antwort1
auf welcher rpm
Ebene Sie es nicht wirklich wissen können. Abhängig vom verwendeten Paketmanager können dort einige Informationen gespeichert sein.
Beachten Sie, dass dies nur funktioniert, wenn der Benutzer die Installationsbefehle mit ausgeführt hat sudo
. Wenn er Root wurde, werden Sie nie erfahren, wer es getan hat.
Lecker
yum history
gibt Ihnen eine Liste der Transaktionen und welcher Benutzer den Befehl gestartet hat.
Nicht bestanden
dnf history
gibt Ihnen eine Liste der Transaktionen, listet aber standardmäßig nicht den Benutzer auf. Sie können jedoch Folgendes ausführen:
dnf history info <ID>
und dann sehen Sie den Benutzer, der den Befehl gestartet hat
zypper
soweit ich weiß, gibt es keine Möglichkeit, das herauszufinden.
Antwort2
Ihre Tags sind unklar, wir wissen nicht, welchen Paketmanager Sie verwenden. Aber da Sie das Tag arch-linux verwendet haben, werde ich für pacman antworten.
Nun, die erste Frage ist schwierig, meines Wissens ist das nicht wirklich möglich und hängt stark von Ihrer Installation ab. Es gibt keine Standard-Linux-Installation, da es viele verschiedene Distributionen, Desktop-Umgebungen, Installationsoptionen usw. gibt. Eine Möglichkeit wäre jedoch, nachzuschlagen, welche Paketgruppen mit Ihrem Setup installiert sind, und die anderen (die wahrscheinlich vom Benutzer installiert werden) mit dem folgenden Befehl abzurufen: comm -23 <(pacman -Qeq | sort) <(pacman -Qgq base | sort)
wobei base eine der Gruppen ist, die Sie mit Sicherheit vorinstalliert haben.
Zum zweiten Teil der Frage: Sie können Informationen über ein Paket erhalten pacman -Si <yourpackage>
, indem Sie verwenden. Wenn Sie die Ausgabe auf die Abhängigkeiten reduzieren möchten, schauen Sie sichdieser Thread
Antwort3
Überprüfen Sie die Pakete, die zum Zeitpunkt der Installation in der betreffenden Distribution enthalten sind, auf der Website der Distribution. Diese sind vorinstalliert; alles andere wurde nachträglich hinzugefügt;;/