Wie zeige ich die Aktionen an, die bei der Installation eines .deb-Pakets ausgeführt werden?

33

Ich möchte in der Lage sein, die Skripte / Trigger anzuzeigen, die mit einem Paket verknüpft sind, das aktualisiert werden soll, damit ich zum Beispiel feststellen kann, ob der Webserver neu gestartet wird. Ich kann keine Aptitude-Option finden, um mir das zu zeigen (oder apt / dpkg). Das Beste, was ich bekommen kann, ist der Inhalt (Dateien). Gibt es eine Kombination von Simulate / Verbose / Contents-Schaltern, die ich verpasst habe und die dies anzeigen wird?

Gibt es außerdem eine Möglichkeit, das Paket zu installieren, ohne dass einige oder alle Skripts ausgeführt werden, wenn ein Paket zu einem Ereignis führt, das wie ein Neustart des Dienstes auftritt, das ich jetzt nicht ausführen möchte?

Sam Brightman
quelle
Warum wurde das abgelehnt? Es scheint mir eine vernünftige Frage zu sein (auch wenn so etwas normalerweise nicht notwendig sein sollte).
sleske
1
Schlägt mich. Keine besonders krassen Kommentare oder Antworten, nur zufällige Abstimmungen. Als ob "normalerweise nicht getan werden sollte" das gleiche ist wie "niemals unter allen Umständen und nicht einmal lehrreich". :(
Sam Brightman

Antworten:

20

Sie können die Steuerdatei und einige andere Informationen mit ausdrucken dpkg -I package.deboder dpkg -e package.debnur die Steuerdateien extrahieren.

Sie können auch einen Probelauf durchführen, um zu sehen, wie sich dpkg verhält --dry-run:

dpkg --dry-run -i package.deb
Mikael S
quelle
Ich muss diese Optionen verpasst haben, danke. -Ich scheine aber nicht viel zu zeigen - sieht nur wie die erste Zeile (Interrobang) aus.
Sam Brightman
2
Hinweis: Die Paketdatei muss lokal verfügbar sein. Laden Sie es zuerst über 'aptitude download <Paketname>' herunter.
Martijn Heemels
3
Die Option -e erstellt ein DEBIANVerzeichnis mit der controlDatei und den verschiedenen Skriptdateien, die ausgeführt werden. postinstist normalerweise sehr interessant, da es ausgeführt wird, nachdem das Paket erfolgreich installiert wurde.
Dwurf
8

Nein, ich kenne keine Möglichkeit, dies mit aptitude zu tun.

Sie können sich die Skripte direkt ansehen. Die Skripte, die während des Upgrades ausgeführt werden, sind im Paket enthalten. Entpacke das Deb mit ar:

ar -x package.deb

Dann schauen Sie in control.tar.gz, es enthält die Skripte.

sleske
quelle
Wäre besser, wenn aptitude -s mit einigen ausführlichen Optionen tatsächlich die Skripte anzeigt, die es für das gesamte Upgrade ausführen würde. Das ist im Wesentlichen das, wonach ich gefragt habe, aber ich denke, Mikaels Antwort ist etwas einfacher.
Sam Brightman
2

Es gibt auch die --debugOption für dpkg, wie insudo dpkg --debug=72200 -i package.deb

Für die ausführliche Ausgabe stehen mehrere Optionen zur Verfügung, die kombiniert werden können.

Sie können alle verfügbaren Optionen sehen , indem Sie: dpkg --debug=help.

pi@kaldi:~ $ dpkg --debug=help
dpkg debugging option, --debug=<octal> or -D<octal>:

 Number  Ref. in source   Description
      1  general          Generally helpful progress information
      2  scripts          Invocation and status of maintainer scripts
     10  eachfile         Output for each file processed
    100  eachfiledetail   Lots of output for each file processed
     20  conff            Output for each configuration file
    200  conffdetail      Lots of output for each configuration file
     40  depcon           Dependencies and conflicts
    400  depcondetail     Lots of dependencies/conflicts output
  10000  triggers         Trigger activation and processing
  20000  triggersdetail   Lots of output regarding triggers
  40000  triggersstupid   Silly amounts of output regarding triggers
   1000  veryverbose      Lots of drivel about eg the dpkg/info directory
   2000  stupidlyverbose  Insane amounts of drivel

Debugging options can be mixed using bitwise-or.
Note that the meanings and values are subject to change.
estibordo
quelle
Das wird die Installation trotzdem machen, nicht wahr?
Sam Brightman
Ja, sind 100% richtig. Dies muss in einer anderen (Entwicklungs-) Instanz erfolgen.
Estibordo
1

Nein, Sie können keinen Teil eines Betreuerskripts ausführen.

Sie können nur sehen, was das Skript tun würde, indem Sie es von Hand untersuchen - wieder kann Ihnen kein "Probelauf" genau sagen, was es tun wird und was nicht, nur "Ich werde das Postinst mit diesen Argumenten ausführen".

Aus diesen Gründen verfügen wir über Staging- und Testumgebungen.

womble
quelle
Ich meinte eine Teilmenge der Skripte, nicht Teil eines einzelnen Skripts. Entschuldigung, wenn das nicht klar war. Ich möchte keine Magie, da ich das Skript und die Argumente kenne, um die Teile, die mir unangenehm sind, von Hand überprüfen oder modifizieren zu können.
Sam Brightman