Лучший способ (полученный от #ubuntu) состоит в том, чтобы сделать это:
dpkg-reconfigure <package>
В этом случае это означает
dpkg-reconfigure samba-common
Отредактированный:
Определенный это по serverfault вопросу. Если dpkg-reconfigure foo
не работает, используют это:
Удалите или переименуйте поврежденный конфигурационный файл.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
Замены запроса от dpkg
.
sudo dpkg -i --force-confmiss /path/to/samba-common.deb
Это говорит dpkg
заменять недостающие конфигурационные файлы теми, которые от .deb. Вы могли бы найти исходный пакет .deb в /var/cache/apt/archives
, или можно использовать новую копию той же версии из репозиториев распределения.
dpkg -i --force-confnew foo.deb
Это говорит dpkg
перезаписывать существующие конфигурационные файлы с теми, которые от .deb. Вы могли бы найти исходный пакет .deb в /var/cache/apt/archives
, или можно использовать новую копию той же версии из репозиториев распределения.
Короткий ответ: /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 сценарий на пакет (/var/lib/dpkg/info/foo.postinst
) узнать, где это создает файл конфигурации и как это делает это. Затем попытайтесь повторить процесс вручную. Это - немного работы, и не всегда легкое.
Можно повторно загрузить и извлечь содержание deb пакета