सवाल लिनक्स: apt-get / aptitude का उपयोग कर कॉन्फ़िगरेशन फ़ाइल को पुनर्स्थापित कैसे करें?


मैंने कभी-कभी मेरी कॉन्फ़िगरेशन फ़ाइल "/etc/mysql/my.cnf" खो दी है, और इसे पुनर्स्थापित करना चाहते हैं। फ़ाइल पैकेज से संबंधित है mysql-common जो कुछ महत्वपूर्ण कार्यक्षमता के लिए जरूरी है, इसलिए मैं सिर्फ नहीं कर सकता purge && install यह: निर्भरताओं को भी अनइंस्टॉल किया जाएगा (या यदि मैं उन्हें अस्थायी रूप से अनदेखा कर सकता हूं, तो वे काम नहीं करेंगे)।

बिना किसी पैकेज के कॉन्फ़िगरेशन फ़ाइल को पुनर्स्थापित करने का कोई तरीका हैarपैकेज फ़ाइल को?

dpkg-reconfigure mysql-common इसे बहाल नहीं किया।


37
2017-11-09 05:52


मूल


मैंने हमेशा पैकेज फ़ाइलों को 7zip के साथ निकाला है (7z x /path/to/foo.deb, फिर 7z x data.tar.gz) .... - quack quixote
व्यक्तिगत रूप से, मैं स्थापित करने के ठीक बाद अपने सिस्टम पर एक्टकीपर की तरह कुछ सेट करना चाहता हूं। इस तरह कॉन्फ़िगरेशन फ़ाइलों के सभी परिवर्तन और संस्करण संग्रहीत हो जाते हैं। (serverfault.com/questions/13091/advice-on-storing-etc-in-a-vcs) - Zoredache
और यह, बच्चे, यही कारण है कि हमारे पास है बैकअप... - womble♦
@womble: वास्तव में, स्थिति थोड़ा अलग है: मेरे पास एक कॉन्फ़िगरेशन फ़ाइल है, लेकिन यह मेरे द्वारा संशोधित है। मैं उपयोग नहीं कर रहा था conf.dफ़ोल्डर, और जब पैकेज रखरखाव इसे अद्यतन करता है, अपग्रेड प्रक्रिया वास्तव में "कॉन्फ़िगरेशन फ़ाइल संशोधित" संदेशों को प्रदर्शित करने के इच्छुक हो जाती है :) कारण उल्लेख करना महत्वपूर्ण नहीं है, इसलिए मैंने अपने प्रश्न को सरल बनाने का निर्णय लिया - kolypto


जवाब:


dpkg -i --force-confmiss mysql-common.deb किसी भी लापता विन्यास फाइल, यानी फिर से बनाया जाएगा /etc/mysql/my.cnf आपके मामले में।


39
2017-11-09 07:36



धन्यवाद! उबंटू पर, यह था sudo dpkg --force-confmiss -i /var/cache/apt/archives/mysql-common*.deb - kolypto


डेबियन निचोड़ में - कम से कम -, हम इसे इस तरह से भी कर सकते हैं su - या sudo उबंटू के लिए -

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

10
2018-02-24 14:14





उपरोक्त में से कोई भी मेरे लिए काम नहीं करता - शायद पुराना - वैसे भी, मुझे यह समाधान मिला:

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

8
2018-01-13 18:28



यह उपयोग करने का आदेश है, योग्यता पर विचार डिफ़ॉल्ट नहीं है। सूडो मत भूलना :) - nsn


आप डिफ़ॉल्ट mysql कॉन्फ़िगरेशन फ़ाइलों को पा सकते हैं /usr/share/doc/mysql-server-5.0/examples/ या इसी के समान। यह सब कुछ हो सकता है जब तक कि आपके पास कुछ वास्तव में विशेष / गूढ़ कॉन्फ़िगरेशन सक्षम न हों।


3
2017-11-09 08:49





मेरे में /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

किसी भी मामले में, यह 38 9 7 बाइट्स की एक साधारण पाठ फ़ाइल है और आप एक सामान्य MySQL कॉन्फ़िगरेशन फ़ाइल से कॉपी और पेस्ट कर सकते हैं।

यह एक अच्छा विचार होगा एक बार आप बहाल करते हैं तुंहारे /etc/mysql/my.cnf एक प्रतिलिपि बनाने के लिए ताकि आप इसे भविष्य में आसानी से बहाल कर सकें।


0
2017-11-09 06:03



मैं आमतौर पर उन्हें कॉपी करके मूल-स्थापित कॉन्फ़िगरेशन फ़ाइलों का बैकअप बना देता हूं /path/to/foo.conf.orig ... यदि ये स्वचालित रूप से इंस्टॉल हो जाते हैं, तो वे बनाए जाते हैं जब apt-get एक नया संस्करण स्थापित कर रहा है और पता लगाता है कि आपने मूल कॉन्फ़िगरेशन फ़ाइल को बदल दिया है। - quack quixote
हम्म, जितना अधिक मैं इसके बारे में सोचता हूं, उतना ही लगता है मैं बनाया था /etc/mysql/my.cnf.orig एक बैकअप के रूप में जो एक नई स्थापना द्वारा ओवरराइट नहीं किया जाएगा। लेकिन, इसे कहीं पूरी तरह अलग रखना एक अच्छा विचार है। - pavium
मैं सामान्य होने की कोशिश कर रहा था; my.cnf के लिए मैं इसे कॉपी करूंगा /etc/mysql/my.cnf.orig। फिर, स्वाभाविक रूप से, एक टैरबॉल बैकअप बनाओ /etc। :) - quack quixote


आपको इस आदेश के साथ mysql-common को पुनर्स्थापित करने की आवश्यकता है:apt-get install --reinstall mysql-common


0
2017-11-02 02:58



क्या वह वास्तव में अनुपलब्ध कॉन्फ़िगरेशन फ़ाइलों को पुनर्स्थापित करता है? - poolie
नहीं, यह काम नहीं करता है। - chrishiestand


ऐसा लगता है कि कुछ अन्य समाधान काम नहीं करेंगे यदि पैकेज की कॉन्फ़िगरेशन फ़ाइलें प्रबंधित की जाती हैं साथ में ucf

इस मामले में आप इसका उपयोग कर सकते हैं:

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

0
2018-02-23 18:00