Назад | Перейти на главную страницу

Linux: как восстановить файл конфигурации с помощью apt-get / aptitude?

Время от времени я терял свой файл конфигурации "/etc/mysql/my.cnf" и хочу его восстановить. Файл принадлежит пакету mysql-common который необходим для некоторых жизненно важных функций, поэтому я не могу просто purge && install it: зависимости также будут удалены (или, если я могу временно игнорировать их, они не будут работать).

Есть ли способ восстановить файл конфигурации из пакета без отключенияar-загрузка файла пакета?

dpkg-reconfigure mysql-common не восстанавливал.

dpkg -i --force-confmiss mysql-common.deb воссоздаст любые отсутствующие файлы конфигурации, т.е. /etc/mysql/my.cnf в твоем случае.

Ничего из вышеперечисленного у меня не сработало - возможно, устарело - в любом случае я нашел это решение:

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

В Debian Squeeze - по крайней мере - мы также можем сделать это таким образом, после su - или sudo для Ubuntu -

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

Это позаботится о зависимостях mysql-server и сбросить все недостающие файлы conf лота, включая mysql-common. Будет предложено сохранить или сбросить конфликтующие (оставшиеся) файлы.

К сожалению, есть ошибка в способности, и

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

не будет работать. Поэтому мы должны делать это один за другим с

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

Это будет удалить любой файл конфигурации, оригинальный или измененный, но кастомные файлы будет сохранено с сообщением на экране. Отметим, кстати, что dpkg также признает --force-confnew и --force-confold параметры.

Получить mysql-server Список зависимостей распечатывается на экране:

aptitude --simulate remove mysql-server

Вы можете найти конфигурационные файлы mysql по умолчанию в /usr/share/doc/mysql-server-5.0/examples/ или похожие. Это может быть все, что вам нужно, если у вас не включены какие-то действительно особые / эзотерические конфигурации.

В моем /etc/mysql/ каталог, у меня есть my.cnf.orig файл, который содержит исходное содержимое my.cnf.

Я не уверен где /etc/mysql/my.cnf.orig пришел из - то есть я создал его, или это сделала установка mysql. Я помню, как однажды проверял, что это был точно так же, как my.cnf

Если у вас есть такая вещь, и нет my.cnf вы можете скопировать одно в другое.

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

В любом случае это простой текстовый файл размером 3897 байт, который можно скопировать и вставить из общего файла конфигурации Mysql.

Это будет хорошая идея как только вы восстановите ваш /etc/mysql/my.cnf чтобы сделать копию, чтобы вы могли легко восстановить ее в будущем.

Вам нужно переустановить mysql-common с помощью этой команды:apt-get install --reinstall mysql-common

Похоже, некоторые другие решения не работают если файлы конфигурации пакета управляются с участием ucf.

В этом случае вы можете использовать:

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