Ich habe kürzlich Samba installiert und die /etc/samba/smb.conf
Datei durcheinander gebracht . Wie bekomme ich die ursprüngliche Konfiguration zurück?
ubuntu
debian
samba
package-management
config-files
Frew Schmidt
quelle
quelle
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
Antworten:
Bearbeitet :
Habe dies auf einer Serverfehlerfrage entdeckt . Wenn das
dpkg-reconfigure foo
nicht funktioniert, verwenden Sie Folgendes:Entfernen Sie die beschädigte Konfigurationsdatei oder benennen Sie sie um.
Ersatz anfordern von
dpkg
.Dies weist
dpkg
an, fehlende Konfigurationsdateien durch solche aus der .deb zu ersetzen. Möglicherweise finden Sie das Originalpaket .deb in/var/cache/apt/archives
, oder Sie können eine neue Kopie derselben Version aus den Repositorys Ihrer Distribution verwenden.Dies weist Siedpkg
an, vorhandene Konfigurationsdateien mit denen aus der .deb-Datei zu überschreiben. Möglicherweise finden Sie das Originalpaket .deb in/var/cache/apt/archives
, oder Sie können eine neue Kopie derselben Version aus den Repositorys Ihrer Distribution verwenden.quelle
dpkg
dann das Überschreiben der Konfigurationsdatei, wenn es sonst um Erlaubnis gebeten hätte . Es macht nicht macht es auf magische Weise unberührte Konfigurationsdateien aus dem Paket neu zu erstellen.--force-confmiss
stattdessen. In diesem speziellen Fall, z. B. Samba,--force-confnew
würde das Überschreiben meiner Meinung nach durchgeführt, aber Sie haben Recht, dass es von den Einzelheiten der Paketkonfigurationsskripte abhängt.Kurze Antwort:
/usr/share/samba/smb.conf
ist die Originalversion der Datei smb.conf.Wenn ich mit dieser Situation für ein Paket konfrontiert bin, mache ich Folgendes:
Suchen Sie in Ihrem Editor nach Sicherungsdateien der Originalversion . Ich verwende Emacs, das normalerweise
foo~
Dateien hinterlässt , und ich habe die Option zur numerischen Versionskontrolle so eingestellt, dass immer die Originalversion verfügbar istfoo.~1~
. Aber vielleicht haben Sie es anders gemacht oder einen anderen Editor verwendet. Überprüfen Sie die Konfiguration Ihres Editors, um diese Funktion zu aktivieren, falls Sie dies noch nicht getan haben. Es ist eine gute Angewohnheit, sich darauf einzulassen.Konfigurieren Sie das Paket mit neu
dpkg-reconfigure PACKAGENAME
. Manchmal reicht das aus. Nach meiner Erfahrung funktioniert es selten; Dies hängt davon ab, wie das Paket seine Konfigurationsdateien erstellt.Löschen Sie das Paket und installieren Sie es erneut (
apt-get purge packagename
gefolgt vonapt-get install packagename
). Das sollte immer funktionieren.In extremen Fällen müssen Sie nach dem Löschen die Konfigurationsdateien manuell suchen und löschen, bevor Sie das Paket neu installieren. Dies ist jedoch selten. Dadurch werden jedoch alle anderen Daten und / oder Konfigurationsdateien für das Paket entfernt, was nicht immer akzeptabel ist.
Laden Sie den Quellcode für das Paket (
apt-get source foo
) herunter und prüfen Sie, ob die ursprüngliche Konfigurationsdatei dort als Datei vorhanden ist. Es kann jedoch sein, dass die Konfigurationsdatei nicht im Voraus vorhanden ist, sondern bei der Installation vom Post-Install-Skript des Pakets erstellt wird.Überprüfen Sie das Postinst-Skript für das Paket (
/var/lib/dpkg/info/foo.postinst
), um herauszufinden, wo und wie die Konfigurationsdatei erstellt wird. Versuchen Sie dann, den Vorgang manuell zu wiederholen. Das ist ein bisschen Arbeit und nicht immer einfach.quelle
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
, meine verworfene Conf-Datei mit dem Original zu überschreiben.dpkg-reconfigure <package>
Geänderte Conf-Dateien werden standardmäßig nicht geändert.Der wahrscheinlich einfachste Weg, dies zu tun, wenn Sie das Paket noch im apt-Cache haben, ist die Ausführung
Dabei lautet der Name der Paketdatei normalerweise ungefähr so
<package name>_<version>.deb
(verwenden Sie einfach die Tab-Vervollständigung). Dies wird den gleichen Prozess wie ein apt-Upgrade durchlaufen und Sie fragen, was Sie tun möchten, wenn eine geänderte conf-Datei gefunden wird. Geben Sie einfachN
an jeder Eingabeaufforderung ein. dpkg installiert die Paketversion der conf-Datei mit.dpkg-dist
am Ende des Dateinamens. Sie können dannvimdiff
oder ein anderes Zusammenführungstool verwenden, um Unterschiede zu vergleichen und die gelesene conf-Datei zu ändern.quelle
Sie können die Deb extrahieren und die Originaldatei abrufen:
quelle
dpkg-source
ist einfacher und die Verwendungapt-get source PACKAGE
ist viel einfacher.packagename.postinst
Skript.Sie können den Inhalt des Deb-Pakets erneut herunterladen und extrahieren
quelle
Der beste Weg (von #ubuntu bekommen) ist dies zu tun:
In diesem Fall bedeutet das
quelle
Sie können die ursprüngliche
smb.conf
Konfigurationsdatei wie folgt wiederherstellen :Dies ist im Grunde das, was der ursprüngliche Paketinstallationsprozess macht (auf Debian Squeeze).
Dadurch werden Sie aktuell überschrieben. Erstellen Sie
smb.conf
daher zuerst ein Backup, wenn Sie es nicht verlieren möchten.quelle
und
wird den Job machen.
quelle