Linux: como restaurar o arquivo de configuração usando o apt-get / aptitude?

37

Eu ocasionalmente perdi meu arquivo de configuração "/etc/mysql/my.cnf" e quero restaurá-lo. O arquivo pertence ao pacote mysql-common , que é necessário para algumas funcionalidades vitais, portanto, não posso apenas purge && install it: as dependências também seriam desinstaladas (ou se eu puder ignorá-las temporariamente, elas não estarão funcionando). / p>

Existe uma maneira de restaurar o arquivo de configuração a partir de um pacote sem descompactar o arquivo de pacote?

ar não restaurou.

    
por kolypto 09.11.2009 / 06:52

7 respostas

39

dpkg -i --force-confmiss mysql-common.deb recriará todos os arquivos de configuração ausentes, ou seja, /etc/mysql/my.cnf no seu caso.

    
por 09.11.2009 / 08:36
10

No Debian Squeeze - pelo menos -, também podemos fazer desta forma, depois de su - ou sudo para o Ubuntu -

aptitude install -o Dpkg::Options::=--force-confmiss mysql-server

Isso cuidará das dependências de mysql-server e redefinirá todos os arquivos conf ausentes do lote, incluindo mysql-common . Arquivos conflitantes (restantes) serão solicitados para serem mantidos ou redefinidos.

Infelizmente, existe um erro no aptitude e

aptitude purge -o Dpkg::Options::=--force-all mysql-server

não funcionará . Então temos que fazer um por um com

dpkg --force-all --purge  mysql-common  mysql-server  mysql-client …

Isso removerá qualquer arquivo de configuração , original ou modificado, mas os arquivos personalizados serão preservados, com uma mensagem na tela. Observe, a propósito, que dpkg também reconhece as opções --force-confnew e --force-confold .

Para imprimir a lista de dependências de mysql-server na tela:

aptitude --simulate remove mysql-server
    
por 24.02.2012 / 15:14
8

Nenhum dos itens acima funcionou para mim - talvez desatualizado - de qualquer forma, encontrei esta solução:

apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall mysql-common
    
por 13.01.2015 / 19:28
3

Você pode encontrar os arquivos de configuração padrão do mysql em /usr/share/doc/mysql-server-5.0/examples/ ou similar. Isso pode ser tudo o que você precisa, a menos que você tenha algumas configurações especiais / esotéricas habilitadas.

    
por 09.11.2009 / 09:49
0

No meu diretório /etc/mysql/ , tenho um arquivo my.cnf.orig que contém o conteúdo original de my.cnf .

Não sei de onde veio o /etc/mysql/my.cnf.orig - isto é, se eu o criei ou a instalação do mysql o fez. Lembro-me de ter verificado uma vez que era exatamente igual a my.cnf

Se você tem algo assim, e não my.cnf , você pode copiar um para o outro.

sudo cp /etc/mysql/my.cnf.orig /etc/mysql/my.cnf

Em qualquer caso, é um arquivo de texto simples de 3897 bytes e você pode copiar e colar de um arquivo de configuração Mysql genérico.

Será uma boa ideia depois de restaurar o seu /etc/mysql/my.cnf para fazer uma cópia, para que você possa restaurá-lo facilmente no futuro.

    
por 09.11.2009 / 07:03
0

Você precisa reinstalar o mysql-common com este comando: apt-get install --reinstall mysql-common

    
por 02.11.2011 / 03:58
0

Parece que algumas das outras soluções não funcionarão se os arquivos de configuração do pacote forem gerenciado com ucf .

Nesse caso, você pode usar:

UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname]
    
por 23.02.2015 / 19:00