A melhor maneira (obtida do #ubuntu) é fazer isso:
dpkg-reconfigure <package>
Neste caso, isso significa
dpkg-reconfigure samba-common
Eu instalei recentemente o Samba e estraguei o arquivo /etc/samba/smb.conf
. Como obtenho a configuração original de volta?
Editado :
Detectou isso em uma pergunta de falha de servidor . Se o dpkg-reconfigure foo
não funcionar, use isto:
Remova ou renomeie o arquivo de configuração quebrado.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
Solicite substituições de dpkg
.
sudo dpkg -i --force-confmiss /path/to/samba-common.deb
Isso diz ao dpkg
para substituir os arquivos de configuração ausentes pelos arquivos do .deb. Você pode encontrar o pacote original .deb em /var/cache/apt/archives
, ou você pode usar uma nova cópia da mesma versão dos repositórios da sua distribuição.
dpkg -i --force-confnew foo.deb
Isso diz ao dpkg
para sobrescrever os arquivos de configuração existentes com os do .deb. Você pode encontrar o pacote original .deb em /var/cache/apt/archives
, ou você pode usar uma nova cópia da mesma versão dos repositórios da sua distribuição.
Resposta curta: /usr/share/samba/smb.conf
é a versão original do arquivo smb.conf.
Quando se depara com esta situação para qualquer pacote, o que faço é um dos seguintes procedimentos:
Verifique se há arquivos de backup da versão original do seu editor. Eu uso o Emacs, que normalmente deixa arquivos foo~
, e eu configurei a opção de controle de versão numérica para que a versão original seja sempre foo.~1~
. Mas talvez você tenha feito alguma outra maneira, ou usado algum outro editor. Considere verificar a configuração do seu editor para ativar esse recurso, se você ainda não o fez; é um bom hábito de entrar.
Reconfigure o pacote com dpkg-reconfigure PACKAGENAME
. Às vezes isso faz o truque. Na minha experiência, raramente funciona; isso depende de como o pacote está criando seus arquivos de configuração.
Limpar e reinstalar o pacote (com apt-get purge packagename
seguido por apt-get install packagename
). Isso deve sempre funcionar.
Em casos extremos, você deve, após a limpeza, procurar manualmente e excluir os arquivos de configuração antes de reinstalar o pacote, mas isso é raro. No entanto, isso eliminará quaisquer outros dados e / ou arquivos de configuração para o pacote, e isso nem sempre é aceitável.
Faça o download do código-fonte do pacote ( apt-get source foo
) e veja se o arquivo de configuração original existe como um arquivo lá. No entanto, pode ser que o arquivo de configuração não exista de antemão, mas é criado na instalação pelo script de pós-instalação do pacote.
Verifique o script postinst do pacote ( /var/lib/dpkg/info/foo.postinst
) para descobrir onde ele cria o arquivo de configuração e como ele é feito. Em seguida, tente repetir o processo manualmente. Isso é um pouco trabalhoso, nem sempre fácil.
dpkg-reconfigure <package>
não modificará os arquivos conf alterados por padrão.
Provavelmente, a maneira mais fácil de fazer isso, se você ainda tiver o pacote no cache do apt é rodar
dpgk -i --force-confask /var/cache/apt/archives/<package file name>
onde o nome do arquivo do pacote é geralmente algo como <package name>_<version>.deb
(apenas use a conclusão da tabulação). Isso executará o mesmo processo que um apt-upgrade e perguntará o que você deseja fazer sempre que encontrar um arquivo conf alterado. Basta digitar N
em cada prompt. O dpkg irá instalar a versão do pacote do arquivo conf com .dpkg-dist
no final do nome do arquivo. Você pode usar vimdiff
ou alguma outra ferramenta de mesclagem para comparar diferenças e modificar o arquivo conf de leitura.
Você pode extrair o deb e pegar o arquivo original:
ar p packagename.deb data.tar.gz | tar zx
Você pode redownload e extrair o conteúdo do pacote deb
Você pode restaurar o arquivo de configuração smb.conf
original assim:
# cp /usr/share/samba/smb.conf /etc/samba/smb.conf
# dpkg-reconfigure samba-common
Isso é basicamente o que o processo de instalação do pacote original faz (no Debian Squeeze).
Isto irá sobrescrever você atual smb.conf
, então faça um backup primeiro se você não quiser perdê-lo.
$ sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
e
$ sudo dpkg --configure -a
fará o trabalho.