web-dev-qa-db-fra.com

Linux: comment restaurer un fichier de configuration en utilisant apt-get / aptitude?

J'ai occasionnellement perdu mon fichier de configuration "/etc/mysql/my.cnf" et je souhaite le restaurer. Le fichier appartient au package mysql-common qui est nécessaire pour certaines fonctionnalités vitales, donc je ne peux pas simplement purge && install it: les dépendances seraient également désinstallées (ou si je peux les ignorer temporairement, elles ne fonctionneront pas).

Existe-t-il un moyen de restaurer le fichier de configuration à partir d'un package sans dés -ar- le fichier de package?

dpkg-reconfigure mysql-common ne l'a pas restauré.

37
kolypto

dpkg -i --force-confmiss mysql-common.deb recréera tous les fichiers de configuration manquants, c'est-à-dire /etc/mysql/my.cnf dans ton cas.

39
TRS-80

Dans Debian Squeeze - au moins -, nous pouvons aussi le faire de cette façon, après su - ou Sudo pour Ubuntu -

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

Cela prendra en charge les dépendances de mysql-server et réinitialiser tous les fichiers de conf manquants du lot, y compris mysql-common. Les fichiers en conflit (restants) seront invités à être conservés ou réinitialisés.

Malheureusement, il y a n bogue dans aptitude , et

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

ne fonctionnera pas . Nous devons donc le faire un par un avec

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

Cela supprimera tout fichier de configuration , original ou modifié, mais les fichiers personnalisés sera conservé, avec un message à l'écran. Notez d'ailleurs que dpkg reconnaît également --force-confnew et --force-confold options.

Obtenir mysql-server liste des dépendances imprimée à l'écran:

aptitude --simulate remove mysql-server
10
Jean Montané

Rien de ce qui précède n'a fonctionné pour moi - peut-être obsolète - de toute façon, j'ai trouvé cette solution:

apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall mysql-common
9
Dave Hilditch

Vous pouvez trouver les fichiers de configuration mysql par défaut dans /usr/share/doc/mysql-server-5.0/examples/ ou similaire. C'est peut-être tout ce dont vous avez besoin, sauf si certaines configurations vraiment spéciales/ésotériques sont activées.

3
sybreon

Il semble que certaines des autres solutions ne fonctionneront pas si les fichiers de configuration du paquet sont gérés avec ucf.

Dans ce cas, vous pouvez utiliser:

UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname]
0

Dans mon /etc/mysql/ répertoire, j'ai un my.cnf.orig fichier contenant le contenu d'origine de my.cnf.

Je ne sais pas où /etc/mysql/my.cnf.orig vient de - c'est-à-dire, si I l'a créé, ou si l'installation de mysql l'a fait. Je me souviens avoir vérifié à un moment donné que était exactement le même que my.cnf

Si vous avez une telle chose, et nonmy.cnf vous pouvez copier l'un sur l'autre.

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

Dans tous les cas, il s'agit d'un simple fichier texte de 3897 octets et vous pouvez copier et coller à partir d'un fichier de configuration Mysql générique.

Ce sera une bonne idée une fois que vous aurez restauré votre /etc/mysql/my.cnf pour effectuer une copie afin de pouvoir la restaurer facilement à l'avenir.

0
pavium

Vous devez réinstaller mysql-common avec cette commande: apt-get install --reinstall mysql-common

0
Nikolay Chuprina