कई पैकेजों को गलती से अनइंस्टॉल करने के बाद उबंटू सिस्टम टूट गया है


20

मैंने गलती से नाम के jpegसाथ शुरू होने वाले सभी पैकेज हटा दिए हैं :

sudo apt-get remove jpeg*

इसने बहुत सी चीजों को बिखेर दिया, एकता, फ़ायरफ़ॉक्स, फ्लैश प्लेयर आदि को हटा दिया।

मैं किसी तरह डेस्कटॉप और एकता को पुनर्प्राप्त करने में कामयाब रहा, लेकिन फिर बहुत सारी चीजें अभी भी छोटी हैं। उदाहरण के लिए .rpmफ़ाइलें और .tag.gzबस बिल्कुल नहीं खुलेंगी।

मैं जो चाहता हूं वह सब कुछ ठीक करने का एक तरीका है। कुछ ऐसा जो विंडोज़ डिस्क के साथ एक 'मरम्मत स्थापना' के बराबर है।

कोई सुझाव, कोई भी?


1
मैं वास्तव में एक ताजा स्थापित करने की सलाह दूंगा। बस अपने / घर / (अदृश्य फ़ाइलों सहित) का बैकअप लें और इसे नए इंस्टॉलेशन में डालें।
पॉल वोइत्सेक

जवाबों:


35

आप ubuntu-desktopकार्य को स्थापित कर सकते हैं :

sudo apt-get install ubuntu-desktop^

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

उन पैकेजों को स्थापित करने के लिए, आप देख सकते हैं /var/log/apt/history.logऔर ठीक वही देख सकते हैं जो आपने हटाया था।

नोट: स्थापित करने के ubuntu-desktop^ कार्य को स्थापित करने के समान नहीं है ubuntu-desktop पैकेज । पहले APT को आभासी पैकेजों पर निर्भरता को हल करने के लिए कुछ संकेत देगा, बाद वाला APT को पैकेज चुनने की स्वतंत्रता देगा (और बेकार सामान को स्थापित करने की तरह खत्म कर देगा ubiquity)।

समस्या क्यों हुई है? apt-get remove jpeg*से शुरू होने वाले सभी पैकेजों को नहीं हटाया जाएगा jpeg। यह बजाय jpeउनके नाम वाले सभी पैकेजों को हटा देगा । इसका कारण यह है कि apt-get नियमित अभिव्यक्ति के साथ काम करता है, ताकि jpeg * का अर्थ है: सब कुछ शून्य या अधिक g के बाद jpe युक्त ।


1
अच्छा विचार है, मैंने ऐसा नहीं सोचा था। मुझे यह देखने के लिए दिलचस्पी होगी कि क्या यह यहां काम करेगा!
एलिया कगन

@ एलियाकगन: मैंने चुरोट में परीक्षण किया है। jpeg * पैकेज केवल कुछ ग्राफिकल एप्लिकेशन को प्रभावित करते हैं, इसलिए आवश्यक 'अवयव' (यानी इंटरनेट कनेक्टिविटी के लिए NetworkManager, APT, टर्मिनल एमुलेटर इत्यादि) अभी भी ओपी सिस्टम पर हैं।
एंड्रिया कोरबेलिनी

@EliahKagan: बेशक, मैंने (गैर-स्पष्ट) धारणा बनाई है कि ओपी ने कुछ और नहीं हटाया है।
एंड्रिया कोरबेलिनी

2
कृपया किसी कार्य को हटाने के लिए कभी भी उपयोग करने की चेतावनी शामिल करें tasksel- गंदा कार्यस्थल-बग देखें
guntbert

1
@ एटिलियो: मैंने जवाब में अंतर समझाया है। देखें "ध्यान दें: ubuntu-डेस्कटॉप स्थापित करने ^ कार्य नहीं ubuntu-डेस्कटॉप पैकेज को स्थापित करने के रूप में ही है ..."
एंड्रिया Corbellini

8

आपके लिए इस समस्या को ठीक करने का सबसे अच्छा तरीका उबंटू को फिर से स्थापित करना हो सकता है। (आपको पहले अपने दस्तावेज़ों का बैकअप लेना चाहिए, भले ही आप बिना किसी सुधार के फिर से स्थापित करने की योजना बना रहे हों।)

यदि आप सिस्टम को ठीक करने का प्रयास करना चाहते हैं, तो पैकेज प्रबंधक की लॉग फाइलों को देखें कि क्या पैकेज निकाले गए थे, और फिर से इंस्टॉल करें:

  • /var/log/dpkg.log (पूरी जानकारी, लेकिन पढ़ना मुश्किल)
  • /var/log/apt/history.log (संक्षिप्त रूप से आपको हटाए गए प्रत्येक पैकेज या अन्यथा संशोधित रूप में बताएगा - संभवतः आपकी सबसे अच्छी शर्त)
  • /var/log/apt/term.log(यदि आपने apt-getटर्मिनल के साथ पैकेजों को हटा दिया है, तो आपको यह देखना चाहिए कि आपने क्या देखा था, जिसमें पैकेजों को हटाने की सूची भी शामिल है - इसलिए यह सबसे अच्छा तरीका हो सकता है)

जिन पैकेजों के नाम से jpegकाम शुरू होता है, सिर्फ उन्हीं पैकेजों को फिर से इंस्टॉल करना क्योंकि हटाए गए पैकेजों में से कई (लगभग निश्चित रूप से अधिकांश) हटा दिए गए थे क्योंकि वे उन पैकेजों पर निर्भर थे ।

भविष्य में , मैं पैकेज की स्थापना रद्द करने के परिणामों की सावधानीपूर्वक जांच करने की सलाह देता हूं। यदि आप कमांड-लाइन से काम कर रहे हैं, तो आपको हमेशा सूचित किया जाएगा। (जब तक आप -yविकल्प का उपयोग नहीं करते हैं , उस स्थिति में, आमतौर पर नहीं। मैं उस विकल्प का उपयोग करने के खिलाफ सलाह देता हूं जब तक कि आपको नहीं पता कि आप क्या कर रहे हैं, विशेष रूप से निष्कासन के लिए।)

एक पैकेज प्रबंधन ऑपरेशन के परिणामों की जांच करने का एक तरीका apt-get, उन्हें होने वाले जोखिम के बिना, के apt-get -sबजाय चलाने के लिए है sudo apt-get। यह केवल निर्दिष्ट कार्रवाई का अनुकरण करता है, और रिपोर्ट करता है कि परिणाम के रूप में कौन से पैकेज प्रभावित होंगे और कैसे।


1

मैं sudo apt-get purge wine*Ubuntu 15.10 पर चलता हूं , इसलिए केवल टर्मिनल लॉगिन विकल्प बूट पर कोई ग्राफिकल इंटरफ़ेस नहीं है।

जैसा कि एलिया कागन ने सुझाव दिया था कि मैं हिस्ट्री से /var/log/apt/history.log नैनो चलाने के लिए जानकारी का इस्तेमाल किया था। मैंने एक सरल स्क्रिप्ट बनाई, जिसमें sudo apt-get installसभी शुद्ध पैकेज शामिल थे जो मुझे लाइन में मिले:

Purge: evolution:amd64 (3.16.5-1ubuntu3.1), libtotem-plparser18:amd64 (3.10.5-1) ...... etc

लेकिन पहले मैंने सभी के बीच पाठ को हटाने के लिए मैन्युअल रूप से: और, सहित:,

इस कदम पर एक नई स्क्रिप्ट मददगार होगी क्योंकि पैकेज सैकड़ों थे। उसके बाद मैंने स्क्रिप्ट को चलाया और कुछ Unable to locate packages(जो मैंने मैन्युअल रूप से स्थापित की थी) को हटा दिया । स्क्रिप्ट को फिर से चलाएं और इसे दैट करें। सब कुछ ठीक काम कर रहा है ... सौभाग्य से


0

Ubuntu-DesktopUbuntu-Desktop इंस्टॉल करें पैकेज स्थापित करें

sudo apt-get update && sudo apt-get install ubuntu-desktop

यह आपके सिस्टम के लिए आवश्यक पैकेज स्थापित करेगा।


यह मेरे लिए विफल रहता है क्योंकि ubuntu-Desktop की निर्भरताएं स्थापित नहीं हैं।
केविन्नायक

0

मैंने गलती से निकाल दिया libssl1.0.0और मेरी मशीन अपंग हो गई। बहाल करने के लिए, मैंने किया:

  1. जो निकाला गया था उसके लॉग का बैकअप लें cp /var/log/apt/term.log ~/libssl.term.log
  2. Libssl कार्रवाई से असंबंधित लाइनें हटाएं vi ~/libssl.term.log
  3. यदि नेटवर्किंग अनुपलब्ध है (नहीं ping google.com), तो पुनर्प्राप्ति मोड में रीबूट करें और नेटवर्किंग सक्षम करें
  4. हटाए गए पैकेजों को पुनर्स्थापित करें cat ~/libssl.term.log | grep ^Removing | sed -e 's/^Removing //g;s/ (.*$//g;/diversion of/d;/dangling symlinks/d' | xargs sudo apt-get -y install

0

यहां एक छोटी सी स्क्रिप्ट है जहां आप अपने मास अनइंस्टॉल से (अनुपयोगी) पैकेज स्ट्रिंग लिख सकते हैं /var/log/apt/history.log। यह एक स्ट्रिंग को आउटपुट करेगा जिसे आप सभी हटाए गए पैकेजों को आसानी से स्थापित करने के लिए apt-get install कमांड में पेस्ट कॉपी कर सकते हैं।

import re

apt_str = u"INSERT YOUR PACKAGE STRING HERE, BETWEEN THE QUOTES"

match =  re.findall(r'([\w\d\.-]+).+? \(.+?\)', apt_str)
print " ".join(match)

अल्पविराम? क्या आपको उद्धरण से मतलब है?
wjandrea

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