हटाए गए "dpkg" निर्देशिका को कैसे पुनर्प्राप्त करें?


30

दुर्भाग्य से मैंने ताला हटाते समय dpkg निर्देशिका को हटा दिया है। गलती से मैंने टाइप कर दिया

root@sam:~$ rm -r /var/lib/dpkg

अब जब मैं संकुल को स्थापित / अनइंस्टॉल करने की कोशिश कर रहा हूँ तो यह मुझे निम्न त्रुटि दिखाता है।

E: Could not open lock file /var/lib/dpkg/lock - open (2: No such file or directory)

अब मुझे क्या करना चाहिए?


क्या आपने एक उबंटू लाइव सीडी से सिस्टम में खुद को सुपरयुसर के रूप में कॉपी करने (उन्हें हटाने की कोशिश नहीं) की कोशिश की है ??
डोमिनिक हेस

जवाबों:


60

जड़ + rm+ -r= आपदा

तो आपने क्या निंदा की?

ls -l /var/lib/dpkg/
total 9964
drwxr-xr-x 2 root root    4096 nov 28 11:18 alternatives
-rw-r--r-- 1 root root      11 sep 18 14:08 arch
-rw-r--r-- 1 root root 2573807 nov 28 11:18 available
-rw-r--r-- 1 root root 2561322 nov 28 10:25 available-old
-rw-r--r-- 1 root root       8 abr 24  2013 cmethopt
-rw-r--r-- 1 root root     538 sep 25 17:24 diversions
-rw-r--r-- 1 root root     457 sep 25 17:24 diversions-old
drwxr-xr-x 2 root root  483328 nov 28 11:17 info
-rw-r----- 1 root root       0 nov 28 11:18 lock
drwxr-xr-x 2 root root    4096 mar 22  2013 parts
-rw-r--r-- 1 root root     135 abr 24  2013 statoverride
-rw-r--r-- 1 root root 2269113 nov 28 11:18 status
-rw-r--r-- 1 root root 2268870 nov 28 11:18 status-old
drwxr-xr-x 2 root root    4096 nov 28 11:18 triggers
drwxr-xr-x 2 root root    4096 nov 28 11:18 updates

आपने 5 निर्देशिकाओं, स्थिति फ़ाइल आदि को हटा दिया है, इसलिए, सामान को ठीक करने का प्रयास करें। सबसे पहले, निर्देशिका बनाएँ:

sudo mkdir -p /var/lib/dpkg/{alternatives,info,parts,triggers,updates}

कुछ बैकअप पुनर्प्राप्त करें:

sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status

अब, देखते हैं कि आपका dpkg काम कर रहा है (प्रार्थना शुरू करें):

apt-get download dpkg
sudo dpkg -i dpkg*.deb

यदि सब कुछ "ठीक है" तो अपनी आधार फ़ाइलों की मरम्मत भी करें:

apt-get download base-files
sudo dpkg -i base-files*.deb

अब अपनी पैकेज सूची, आदि को अद्यतन करने का प्रयास करें।:

dpkg --audit
sudo apt-get update
sudo apt-get check

अब, एक गहरी साँस लेते हैं। ओह। ls -l /var/lib/dpkgउपरोक्त सूची से करें और तुलना करें। यदि कुछ -oldफ़ाइल मौजूद नहीं है तो चिंता न करें कि यह कल होगी।


1
प्रतिक्रिया के लिए धन्यवाद। जैसा कि आपने यहां बताया है, मैंने चरणों का पालन किया है, लेकिन sudo dpkg -i dpkg * .deb को निष्पादित करते समय , मुझे dpkg के
संबल

@ साम्ब इम्पॉसिबल। क्या आप अपना प्रश्न संपादित कर सकते हैं और पूरा आउटपुट जोड़ सकते हैं?
ब्रायन

@ संम्बित ls: cannot access /usr/local/var/lib/dpkg/status: No such file or directoryकेवल एक चीज है जो मुझे मिलती है। /usr/localdpkg फ़ाइलों को स्थापित करने के लिए जगह नहीं है।
ब्रिअम

यहाँ एक ही समस्या, Ubuntu /usr/local/इसके बजाय में स्थापित करने की कोशिश कर रहा है /var/lib/dpkg। इसे कैसे इंगित किया जाए /var/lib/dpkg?
बैगास्टर

@bagustris Ubuntu रिपॉजिटरी से पैकेज डाउनलोड करता है।
Braiam

2

वेल dpkg(डेबियन पैकेज मैनेजमेंट सिस्टम) पैकेज डेबियन सॉफ्टवेयर पैकेजों की स्थापना और हटाने के लिए निम्न-स्तरीय बुनियादी ढाँचा प्रदान करता है। इसे हटाना एक अच्छा विचार नहीं था, और आप इसे वापस कर सकते हैं-

फ़ाइल का उपयोग करके डाउनलोड करना wget:

wget https://launchpad.net/ubuntu/+archive/primary/+files/dpkg_1.16.1.2ubuntu7.2.tar.bz2

इसे xxx फोल्डर में निकालें।

cd xxx
./configure
make
sudo make install

आशा है कि यह काम करेगा।


मैं उन चरणों से गुज़रा हूँ और सफलतापूर्वक स्थापित किया है। लेकिन फिर से मुझे वही समस्या हो रही है।
साम्बित

करता है। / कॉन्फ़िगर विफल या सफल था ??
सुकुपा91

पहले से ही पुनरारंभ किया गया है और मुझे अपने प्रश्न में उल्लिखित त्रुटि मिली है। इसके अलावा "उबंटू सॉफ्टवेयर सेंटर", "अपडेट मैनेजर" जैसे इनबिल्ट सॉफ्टवेयर भी काम नहीं कर रहे हैं।
साम्बित

हे, मैंने पहले आदेशों को wget अपडेट किया है, समान प्रक्रिया को wget कमांड के साथ शुरू करने का प्रयास करें
Sukupa91

1
त्रुटि प्राप्त करना, cp: स्टेट नहीं कर सकता `/ var / lib / dpkg / status-old ': ऐसी कोई फ़ाइल या निर्देशिका नहीं । मैं इन समस्या का सामना कर रहा हूं क्योंकि "dpkg" निर्देशिका मेरे सिस्टम में मौजूद नहीं है।
संवत

1

अपने सिस्टम को बैकअप से पुनर्प्राप्त करें। आपने बैकअप सही किया? इस एक (उपयोगकर्ता त्रुटि) और हार्डवेयर विफलता जैसी अप्रत्याशित स्थितियों से निपटने के लिए आपके सिस्टम और डेटा का बैकअप लेना महत्वपूर्ण है। यदि आप बैकअप बनाने में विफल हैं जैसे कि यहां चर्चा की गई है तो आप डेटा रिकवरी का प्रयास कर सकते हैं

भविष्य में मैं सुझाव देता हूं कि आप आपदा से होने वाले डेटा हानि से बचने के लिए नियमित रूप से बैकअप लें । और मुझे संदेह है कि आप भूल जाएंगे कि @Braiam ने कहा " जड़ + rm + -r = आपदा "


-2

बस नीचे दिए गए चरणों का पालन करें, सुनिश्चित करें कि आप फ़ाइलों को पुनर्प्राप्त कर सकते हैं, कम से कम apt-getया dpkgकाम करेंगे।

sudo cp /var/backups/dpkg.status.0  /var/lib/dpkg/

sudo mv /var/backups/dpkg.status.0  /var/backups/status

sudo mkdir /var/lib/dpkg/updates

इस परीक्षण के बाद कि यह काम करेगा या नहीं।

sudo apt-get install {Package-name}

sudo dpkg -i {package_name}

आशा है कि यह काम किया। अगर नीचे टिप्पणी नहीं की है। ध्यान रखें, खेलते समय अत्यधिक सावधानी बरतें sudo + rm -rf

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.