Linux:apt-get / aptitudeを使用して設定ファイルを復元する方法は?


37

構成ファイル "/etc/mysql/my.cnf"を時々失ってしまい、復元したいのですが。ファイルはmysql-commonいくつかの重要な機能に必要なパッケージに属しているので、私はそれだけpurge && installではできません:依存関係もアンインストールされます(または一時的に無視できる場合は動作しません)。

arパッケージファイルを展開せずにパッケージから構成ファイルを復元する方法はありますか?

dpkg-reconfigure mysql-common それを復元しませんでした。


私は常にちょうど(7zipをしてパッケージファイルを抽出してきました7z x /path/to/foo.deb、その後、7z x data.tar.gz....)
キホーテいんちき

個人的には、インストール直後にシステムにetckeeperなどをセットアップするのが好きです。これにより、構成ファイルのすべての変更とバージョンが保存されます。(serverfault.com/questions/13091/advice-on-storing-etc-in-a-vcs
Zoredache

4
そして、これは、子供たち、私たちがバックアップを持っている理由です ...
womble

1
@womble:実際には、状況はわずかに異なります。設定ファイルはありますが、変更されています。私が使用していなかったconf.dことは、アップグレードプロセスが実際に表示するので熱心になり、パッケージメンテナの更新をフォルダを、そしてときにメッセージ:)私は私の質問を簡素化することを決めたので理由は、ことを言及することは重要ではない「の設定ファイルを変更し、」
kolypto

回答:


39

dpkg -i --force-confmiss mysql-common.deb不足している構成ファイルを再作成/etc/mysql/my.cnfします。つまり、あなたの場合です。


8
ありがとう!Ubuntuでは、それはだったsudo dpkg --force-confmiss -i /var/cache/apt/archives/mysql-common*.deb
kolypto

10

Debian Squeezeでは—少なくとも—、suまたはsudoUbuntu向けに、この方法で行うこともできます—

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

9

上記のどれも私にとってはうまくいきませんでした-多分時代遅れです-とにかく、私はこの解決策を見つけました:

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

これは使用するコマンドです。aptitudeはデフォルトではないことを考慮してください。sudoを忘れないでください:)
nsn

3

デフォルトのmysql設定ファイルを見つけることができます/usr/share/doc/mysql-server-5.0/examples/。本当に特別な/難解な設定を有効にしていない限り、これで十分です。


0

私の/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あなたが将来的に簡単に復元できるようにコピーを作成します。


通常、元のインストール構成ファイルのバックアップを作成し/path/to/foo.conf.origます...これらが自動的にインストールされる場合、apt-getが新しいバージョンをインストールするときに作成され、元の構成ファイルを変更したことを検出します。
いんちきのキホーテ2009年

うーん、それについて考えれば考えるほど、新しいインストールで上書きされないバックアップとして作成したよう見え/etc/mysql/my.cnf.origます。ただし、まったく別の場所に配置することをお勧めします。
パビウム2009年

私はジェネリックになろうとしていました。my.cnfの場合は、にコピーし/etc/mysql/my.cnf.origます。それから、当然、のtarballバックアップを作成し/etcます。:)
いんちきのキホーテ2009年


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.