इसमें स्थित फाइलें /var
बहुत ज्यादा सिस्टम-क्रिटिकल हैं। उदाहरण के लिए, /var/mail
या /var/spool/mail
उपयोगकर्ताओं के ईमेल में शामिल हैं; आप अपने पड़ोसी के मेलबॉक्स में आग जलाने की तुलना में इससे अधिक नहीं हटा सकते हैं। यह केवल कुछ उपनिर्देशिकाओं की /var
फ़ाइलें हैं जिनमें ऐसी फ़ाइलें हैं जो कम या अधिक क्षणभंगुर हैं: लॉग इन फ़ाइलों /var/log
, कैश जो आमतौर पर /var/cache
, अस्थायी फ़ाइलों (जिन्हें आप उपयोग में होने के दौरान हटा नहीं सकते हैं!) को फिर से बनाया जा सकता है /var/tmp
।
में डेटा /var/lib
काफी महत्वपूर्ण हो सकता है। उदाहरण के लिए, MySQL को आमतौर पर /var/lib/mysql
डिफ़ॉल्ट रूप से अपने डेटाबेस को संग्रहीत करने के लिए कॉन्फ़िगर किया जाता है: यदि आप इसे मिटा देते हैं, तो आप अपने डेटाबेस को मिटा देते हैं। Dpkg अपने स्वयं के डेटाबेस के तहत भी डालता है /var/lib
; /var/lib/dpkg/status
एक है।
/var/lib/dpkg/status
इसमें स्थापित पैकेजों के बारे में जानकारी है। यदि आपने इसे मिटा दिया है, तो आपको इसे बैकअप से पुनर्स्थापित करना चाहिए। अपने बैकअप को पूरी तरह से करने की तारीख नहीं है, तो के तहत हाल ही में पैकेज जोड़तोड़ की लॉग की जांच /var/log/apt
और में /var/log/dpkg.log
। dpkg
काम करने से पहले आपको उस फ़ाइल को बनाना होगा।
/var/lib/dpkg/available
इंटरनेट से डाउनलोड किए गए डेटा से बनाया गया है। apt-get update
इसका पुनर्निर्माण करना चाहिए।
/var/lib/dpkg/info
डेबियन पैकेज के साथ जहाज रखने वाली फाइलें शामिल हैं। आप संकुल को पुनः स्थापित करके इन फ़ाइलों को पुनर्स्थापित कर सकते हैं। बेशक, आपको उसके लिए स्थापित पैकेजों की एक सूची की आवश्यकता होगी। यदि आपने पुनर्स्थापित किया है /var/lib/dpkg/status
, तो आप वहां से संकुल की सूची निकाल सकते हैं।
apt-get install --reinstall $(</var/lib/dpkg/status sed -n 's/^Package://p')
यदि आप हार गए हैं /var/lib/dpkg/status
, तो आप इसे खाली फ़ाइल बनाकर फिर से बनाने में सक्षम हो सकते हैं, फिर apt-get install --reinstall
पैकेज की सूची पर चल सकते हैं। एक जगह जहां पैकेज की सूची भी बचाई गई है /var/lib/apt/extended_states
, कम से कम यदि आपने कभी पैकेज स्थापित करने के लिए केवल एपीटी का उपयोग किया है (जैसा कि dpkg
सीधे विरोध किया जाता है) - /var/lib/dpkg/status
तो ऊपर दिए गए आदेश के बजाय उस फ़ाइल का उपयोग करें । यदि आपने वह भी हटा दिया है, तो आप संकुल की अनुमानित सूची को फिर से बना सकते हैं $(cd /usr/share/doc && ls)
, क्योंकि अधिकांश संकुल में एक प्रविष्टि बनाते हैं /usr/share/doc
। शायद कुछ अपवाद हैं।
इस प्रणाली पर पैकेज प्रबंधन के बारे में कोई सहायता न माँगें। सिस्टम-क्रिटिकल फ़ाइलों को हटाने से पुनर्प्राप्त करना एक सटीक विज्ञान नहीं है। यदि आप बैकअप से पुनर्स्थापित नहीं कर सकते हैं, तो आपको जल्द से जल्द एक नया, साफ सिस्टम स्थापित करना चाहिए।
/var/lib/dpkg/info
काफी महत्वपूर्ण है, भी। आपने FHS को गलत समझा है, और AFAIK एकमात्र पुनर्प्राप्ति पथ हैं (a) बैकअप से पुनर्स्थापित करें या (b) पुनर्स्थापना करें।