Linux: apt-get / aptitude kullanarak config dosyası nasıl geri getirilir?


37

Zaman zaman "/etc/mysql/my.cnf" yapılandırma dosyamı kaybettim ve geri yüklemek istiyorum. Dosya mysql-common, bazı hayati işlevler için gerekli olan pakete ait olduğu için sadece yapamıyorum purge && install: bağımlılıklar da kaldırılacak (ya da geçici olarak görmezden gelebilirsem, çalışmayacaklar).

arPaket dosyasını paketten kaldırmadan paketten geri almanın bir yolu var mı ?

dpkg-reconfigure mysql-common geri yüklemedi.


Paket dosyalarını her zaman 7zip ( 7z x /path/to/foo.deb, sonra 7z x data.tar.gz) .... ile çıkarttım ....
quixote

Şahsen, kurduktan hemen sonra sistemime etckeeper gibi bir şey kurmayı seviyorum. Bu şekilde, yapılandırma dosyalarındaki tüm değişiklikler ve sürümler saklanır. ( serverfault.com/questions/13091/advice-on-storing-etc-in-a-vcs )
Zoredache

4
Ve bu, çocuklar, bu yüzden yedeklerimiz var ...
womble

1
@ womble: aslında durum biraz farklı: Bir yapılandırma dosyasına sahibim, fakat benim tarafımdan değiştirildi. conf.dKlasörleri kullanmıyordum ve paket sorumlusu güncellediğinde, yükseltme işlemi gerçekten "config file
modifed

Yanıtlar:


39

dpkg -i --force-confmiss mysql-common.debHerhangi bir eksik yapılandırma dosyasını yeniden oluşturacak, yani /etc/mysql/my.cnfsizin durumunuzda.


7
Teşekkürler! Ubuntu günü, öyleydisudo dpkg --force-confmiss -i /var/cache/apt/archives/mysql-common*.deb
kolypto

10

Debian Squeeze'de - en azından -, bu şekilde de yapabiliriz su- sonra veya sudoUbuntu -

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

Bu mysql-server, dahil olmak üzere, partinin tüm eksik dosyalarının bağımlılıklarını önemser ve sıfırlar mysql-common. Çakışan (kalan) dosyaların tutulması veya sıfırlanması istenir.

Ne yazık ki, yetenek içinde bir hata var ve

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

çalışmayacak . Yani bunu tek tek yapmak zorundayız.

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

Bu , orijinal veya değiştirilmiş olan herhangi bir yapılandırma dosyasını kaldıracak , ancak özel dosyalar ekran üzerinde bir mesajla korunacaktır. Bu arada, bunun dpkgda tanıdığını --force-confnewve --force-confoldseçenek sunduğunu unutmayın .

Almak için mysql-serverekrandaki bağımlılıklar liste print:

aptitude --simulate remove mysql-server

9

Yukarıdakilerin hiçbiri benim için çalıştı - belki modası geçmiş - neyse, bu çözümü buldum:

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

Bu, varsayılan bir özellik olmadığı düşünüldüğünde kullanılacak komuttur.
Sudo'yu

3

Varsayılan mysql config dosyalarını içinde /usr/share/doc/mysql-server-5.0/examples/veya içinde bulabilirsiniz . Bazı özel / ezoterik yapılandırmaları etkinleştirmediyseniz, ihtiyacınız olan tek şey bu olabilir.


0

Dizimde orijinal içeriğini içeren /etc/mysql/bir my.cnf.origdosya var my.cnf.

Nereden /etc/mysql/my.cnf.origgeldiğinden emin değilim - yani, onu ben yarattım ya da mysql kurulumu yaptı. Ben o tek seferde kontrol hatırlıyorum oldu tam olarak aynımy.cnf

Eğer böyle bir şey varsa ve hayır my.cnf , birini diğerine kopyalayabilirsiniz.

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

Her durumda, 3897 baytlık basit bir metin dosyasıdır ve genel bir Mysql yapılandırma dosyasından kopyalayıp yapıştırabilirsiniz.

Bu iyi bir fikir olacaktır , geri yüklemek kez senin /etc/mysql/my.cnfileride kolayca geri yükleyebilirsiniz böylece bir kopyasını yapmak için.


Genellikle orijinal kurulum yapılandırma dosyalarını kopyalayarak yedeklerim /path/to/foo.conf.orig... bunları otomatik olarak yüklüyse, apt-get yeni bir sürüm kurarken oluşturulur ve orijinal yapılandırma dosyasını değiştirdiğinizi algılar.
quix quixote

Hmm, ne kadar fazla, daha görünüyor düşünüyorum ben oluşturulan /etc/mysql/my.cnf.origtaze kurulum tarafından üzerine yazılır olmaz yedek olarak. Ancak, tamamen farklı bir yere koymak iyi bir fikirdir.
Pavium

Genel olmaya çalışıyordum; my.cnf için kopyalayacağım /etc/mysql/my.cnf.orig. Sonra, doğal olarak, bir tarball yedeği yapın /etc. :)
quix quixote

0

Bu komutla mysql-common komutunu yeniden kurmanız gerekir:apt-get install --reinstall mysql-common


Bu aslında eksik yapılandırma dosyalarını geri yükler mi?
poolie

1
Hayır, işe yaramadı.
chrishiestand

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.