Heute Morgen habe ich einige Updates installiert, die mich gefragt haben, ob ich Konfigurationsdateien ersetzen möchte:
Configuration file '/etc/apache2/envvars'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** envvars (Y/I/N/O/D/Z) [default=N] ? N
Ich habe meine aktuelle Konfiguration beibehalten, aber danach habe ich mich gefragt:
Gibt es eine Möglichkeit zu sehen, wie die neue Konfigurationsdatei nachträglich ausgesehen hätte?
apache2
heute Morgen durchgeführten Update.Antworten:
Ich habe dies nicht getestet, aber die Logik schreibt vor, dass Sie die Datei überprüfen können, die in dem Paket enthalten ist, das aktualisiert wurde. Ich gehe davon aus, dass das Apache2-Paket für Ihre aktuelle Distribution auf dieser Seite ausgewählt werden kann (Sie können dies bestätigen, indem Sie Ihre dpkg.log überprüfen).
DEB-Dateien sind Archive, die immer die drei Dateien debian-binary, control.tar.gz und data.tar.gz enthalten. Wir können den Befehl dpkg-deb und tar verwenden, um die Dateien aus dem deb-Paket zu extrahieren und anzuzeigen, wie unten gezeigt.
Extrahieren Sie einfach die Dateien aus dem Paket an einen temporären Speicherort. Als Beispiel:
dpkg-deb -x packagename.deb /tmp
Passen Sie den Paketnamen und den Zielspeicherort nach Bedarf an.Nachdem Sie den Inhalt des Pakets extrahiert haben, extrahieren Sie als Nächstes den Inhalt der enthaltenen data.tar.gz-Komponente mit
tar -xvzf data.tar.gz
Suchen Sie die enthaltene envvars-Datei (Sie können sie
find ./ -name envvars
an dem Speicherort verwenden, an dem Sie die Datei data.tar.gz extrahiert haben.Nachdem Sie die Datei gefunden haben, navigieren Sie zu diesem Verzeichnis und verwenden Sie
diff envvars /etc/apache2/envvars
diese Option, um die Unterschiede zwischen Ihrer aktuellen und der vorgeschlagenen Konfigurationsdatei anzuzeigen. Quellen:http://www.thegeekstuff.com/2010/04/view-and-extract-packages/
man dpkg
man dpkg-deb
man diff
quelle
Ich akzeptiere die Antwort von Elder Geek , weil sie funktioniert und am allgemeinsten anwendbar zu sein scheint, ohne zu arbeitsintensiv zu sein. Waltinators Antwort scheint mir, dass es funktionieren würde, aber ich bin misstrauisch, es neu zu installieren.
Ich habe mir jedoch zwei zusätzliche Möglichkeiten ausgedacht, um dieses Problem anzugehen.
Ich habe einen Klon meines Servers, der in einer Virtualbox-VM ausgeführt wird. Ich habe einen Snapshot erstellt, das Update angewendet (die Versionen des Paketverwalters ausgewählt), diese Versionen auf ein freigegebenes Laufwerk kopiert, dann den Snapshot gelöscht und das Update für Reals durchgeführt.
Nachteil: Normalerweise führe ich das Update zuerst in der virtuellen Maschine vor der realen Maschine durch, daher müsste ich wissen, dass ich zuerst den Schnappschuss machen muss. Vielleicht ist dies eine gute Vorgehensweise, bevor Sie ein Apache2-Update anwenden? Ich werde darüber nachdenken müssen.
Dies ist die einfachste Antwort von allen, aber ich weiß nicht, ob sie allgemein anwendbar ist. Ich habe verwendet
aptitude
und aktualisiertapache2
und im/etc/apache2/
Ordner Kopien der Konfigurationsdateien des Paketverwalters gefunden, die ich abgelehnt hatte! Sie wurden benanntapache2.conf.dkpg-dist
undenvvars.dpkg-dist
! Wie cool ist das?Nachteil: Ich weiß nicht, ob dies nur mit
aptitude
und \ oder passiertapache2
, dies ist möglicherweise nicht allgemein anwendbar.quelle
Sie können die Bedingung neu erstellen und anders auswählen.
Kopieren Sie zunächst an einen
/etc/apache2/envvars
sicheren Ort, damit Sie ihn im schlimmsten Fall wiederherstellen können.dpkg -S /etc/apache2/envvars
teilt uns mit, dass dies/etc/apache2/envvars
Teil desapache2
Pakets ist, sodass Sie es über Folgendes neu installieren können:quelle