Niedawno zainstalowałem Sambę i pomieszałem ten /etc/samba/smb.conf
plik. Jak odzyskać oryginalną konfigurację?
ubuntu
debian
samba
package-management
config-files
Frew Schmidt
źródło
źródło
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
Odpowiedzi:
Edytowane :
Zauważyłem to w pytaniu o awarię serwera . Jeśli
dpkg-reconfigure foo
to nie działa, użyj tego:Usuń uszkodzony plik konfiguracyjny lub zmień jego nazwę.
Poproś o wymianę od
dpkg
.Oznacza
dpkg
to zamianę brakujących plików konfiguracyjnych na pliki z .deb. Możesz znaleźć oryginalny pakiet .deb/var/cache/apt/archives
lub możesz użyć nowej kopii tej samej wersji z repozytoriów twojej dystrybucji.Mówidpkg
to o zastąpieniu istniejących plików konfiguracyjnych plikami z .deb. Możesz znaleźć oryginalny pakiet .deb/var/cache/apt/archives
lub możesz użyć nowej kopii tej samej wersji z repozytoriów twojej dystrybucji.źródło
dpkg
zastąpienie pliku konfiguracyjnego, jeśli w przeciwnym razie poprosiłby o pozwolenie . To nie nie sprawiają, że w magiczny sposób odtworzyć dziewiczych pliki konfiguracyjne z opakowania.--force-confmiss
zamiast tego. w tym konkretnym przypadku, np. samba, myślę,--force-confnew
że wykonałby nadpisanie, ale masz rację, że zależy to od szczegółów skryptu konfiguracji pakietu.Krótka odpowiedź:
/usr/share/samba/smb.conf
to oryginalna wersja pliku smb.conf.W obliczu tej sytuacji w przypadku dowolnego pakietu robię jedną z następujących czynności:
Sprawdź, czy w edytorze znajdują się kopie zapasowe oryginalnej wersji . Używam Emacsa, który zwykle pozostawia
foo~
pliki, i ustawiłem opcję numerycznej kontroli wersji, więc oryginalna wersja jest zawszefoo.~1~
. Ale może zrobiłeś to w inny sposób lub użyłeś innego edytora. Rozważ sprawdzenie konfiguracji edytora, aby włączyć tę funkcję, jeśli jeszcze tego nie zrobiłeś; warto się w to przyzwyczaić.Ponownie skonfiguruj pakiet za pomocą
dpkg-reconfigure PACKAGENAME
. Czasami to załatwia sprawę. Z mojego doświadczenia wynika, że rzadko działa; zależy to od sposobu, w jaki pakiet tworzy pliki konfiguracyjne.Wyczyść i ponownie zainstaluj pakiet (z
apt-get purge packagename
dodanymapt-get install packagename
). To zawsze powinno działać.W skrajnych przypadkach musisz po wyczyszczeniu ręcznie wyszukać i usunąć pliki konfiguracyjne przed ponowną instalacją pakietu, ale jest to rzadkie. Spowoduje to jednak wyeliminowanie wszelkich innych danych i / lub plików konfiguracyjnych pakietu, co nie zawsze jest dopuszczalne.
Pobierz kod źródłowy dla package (
apt-get source foo
) i sprawdź, czy oryginalny plik konfiguracyjny istnieje tam jako plik. Może się jednak zdarzyć, że plik konfiguracyjny nie istnieje wcześniej, ale jest tworzony podczas instalacji przez skrypt poinstalacyjny pakietu.Sprawdź skrypt postinst dla pakietu (
/var/lib/dpkg/info/foo.postinst
), aby dowiedzieć się, gdzie tworzy plik konfiguracyjny i jak to robi. Następnie spróbuj ręcznie powtórzyć proces. To trochę pracy i nie zawsze jest łatwe.źródło
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
zastąpienie mojego pliku skonfiskowanego pliku oryginałem.dpkg-reconfigure <package>
domyślnie nie zmodyfikuje zmienionych plików conf.Prawdopodobnie najłatwiejszym sposobem na zrobienie tego, jeśli nadal masz pakiet w apt cache, jest uruchomienie
gdzie nazwa pliku pakietu jest zwykle podobna
<package name>_<version>.deb
(wystarczy użyć uzupełniania tabulatorami). Zostanie uruchomiony ten sam proces, co apt-upgrade i zapyta cię, co chcesz zrobić, gdy tylko znajdzie zmieniony plik conf. Po prostu wpiszN
za każdym razem. dpkg zainstaluje wersję pakietu pliku conf z.dpkg-dist
na końcu nazwy pliku. Następnie możesz użyćvimdiff
innego narzędzia do scalania, aby porównać różnice i zmodyfikować plik conf.źródło
/var/cache/apt/archives/
...Możesz wyodrębnić deb i pobrać oryginalny plik:
źródło
dpkg-source
jest łatwiejsze, a korzystanieapt-get source PACKAGE
jest znacznie łatwiejsze.packagename.postinst
skrypcie.Najlepszym sposobem (otrzymanym z #ubuntu) jest zrobienie tego:
W tym przypadku to oznacza
źródło
Możesz przywrócić oryginalny
smb.conf
plik konfiguracyjny w następujący sposób:Jest to w zasadzie to, co robi proces instalacji oryginalnego pakietu (w Debian Squeeze).
Spowoduje to zastąpienie bieżącej
smb.conf
, więc najpierw wykonaj kopię zapasową, jeśli nie chcesz jej utracić.źródło
Możesz ponownie pobrać i wyodrębnić zawartość pakietu deb
źródło
i
wykona robotę.
źródło