Я недавно установил Samba, и я испортил /etc/samba/smb.conf
файл. Как вернуть исходную конфигурацию?
ubuntu
debian
samba
package-management
config-files
Фрю Шмидт
источник
источник
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
Ответы:
Отредактировано :
Обнаружил это на вопрос о сбое сервера . Если
dpkg-reconfigure foo
не работает, используйте это:Удалите или переименуйте испорченный файл конфигурации.
Запросить замену у
dpkg
.Это говорит
dpkg
о замене отсутствующих файлов конфигурации файлами из .deb. Вы можете найти оригинальный пакет .deb/var/cache/apt/archives
или использовать свежую копию той же версии из репозиториев вашего дистрибутива.Это говоритdpkg
о необходимости перезаписывать существующие файлы конфигурации файлами из .deb. Вы можете найти оригинальный пакет .deb/var/cache/apt/archives
или использовать свежую копию той же версии из репозиториев вашего дистрибутива.источник
dpkg
перезаписывать файл конфигурации только в том случае, если бы в противном случае он запросил разрешение на это . Это не делает его волшебным образом воссоздавать нетронутые файлы конфигурации из пакета.--force-confmiss
вместо этого. в этом конкретном случае, например, samba, я думаю, что он--force-confnew
будет выполнять перезапись, но вы правы, что это зависит от особенностей скриптов конфигурации пакета.Краткий ответ:
/usr/share/samba/smb.conf
оригинальная версия файла smb.conf.Когда я сталкиваюсь с такой ситуацией для любого пакета, я делаю одно из следующего:
Проверьте наличие файлов резервной копии оригинальной версии в вашем редакторе. Я использую Emacs, который обычно оставляет
foo~
файлы, и я установил параметр числового контроля версий, чтобы исходная версия всегда былаfoo.~1~
. Но, возможно, вы сделали это другим способом или использовали какой-то другой редактор. Рассмотрите возможность проверки конфигурации вашего редактора, чтобы включить эту функцию, если вы этого еще не сделали; это хорошая привычка.Переконфигурируйте пакет с помощью
dpkg-reconfigure PACKAGENAME
. Иногда это делает трюк. По моему опыту это редко работает; это зависит от того, как пакет создает свои файлы конфигурации.Очистите и переустановите пакет (с
apt-get purge packagename
последующимapt-get install packagename
). Это всегда должно работать.В крайних случаях, после очистки вы должны вручную выследить и удалить файлы конфигурации перед переустановкой пакета, но это происходит редко. Однако это исключит любые другие данные и / или файлы конфигурации для пакета, и это не всегда приемлемо.
Загрузите исходный код для пакета (
apt-get source foo
) и посмотрите, существует ли там исходный файл конфигурации в виде файла. Тем не менее, может случиться так, что файл конфигурации не существует заранее, но создается при установке сценарием после установки пакета.Проверьте скрипт postinst для package (
/var/lib/dpkg/info/foo.postinst
), чтобы узнать, где он создает файл конфигурации и как он это делает. Затем попробуйте повторить процесс вручную. Это немного работы, и не всегда легко.источник
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
перезаписать мой испорченный файл conf оригиналом.dpkg-reconfigure <package>
не будет изменять измененные файлы по умолчанию.Вероятно, самый простой способ сделать это, если у вас все еще есть пакет в кэше apt, это запустить
где имя файла пакета обычно что-то вроде
<package name>_<version>.deb
(просто используйте завершение вкладки). Это будет проходить через тот же процесс, что и apt-upgrade, и спросит вас, что вы хотите сделать, когда обнаружит измененный файл conf. Просто введитеN
при каждом запросе. dpkg установит пакетную версию файла conf.dpkg-dist
в конце имени файла. Затем вы можете использоватьvimdiff
другой инструмент слияния для сравнения различий и изменения файла read conf.источник
/var/cache/apt/archives/
хотя ...Вы можете извлечь deb и взять оригинальный файл:
источник
dpkg-source
легче, и используяapt-get source PACKAGE
это гораздо проще.packagename.postinst
скрипте.Лучший способ (полученный из #ubuntu) - сделать это:
В этом случае это означает
источник
Вы можете восстановить исходный
smb.conf
файл конфигурации следующим образом:Это в основном то, что делает оригинальный процесс установки пакета (в Debian Squeeze).
Это перезапишет текущее состояние
smb.conf
, поэтому сначала сделайте резервную копию, если не хотите ее потерять.источник
Вы можете повторно загрузить и извлечь содержимое пакета deb
источник
а также
сделаю работу.
источник