सवाल Apt-get का उपयोग कर पैकेज को पुनर्स्थापित कैसे करें?


ऐसा लगता है कि मेरा aptitude किसी तरह टूटा हुआ है

sudo aptitude update
0% [Working]Segmentation fault

dmesg
[223282.616599] aptitude[30972]: segfault at 67707f ip 7f954dcfae5d sp 7ffff5a5f950 error 4 in libapt-pkg-libc6.7-6.so.4.6.0[7f954dca5000+bd000]

इसलिए मैं पुनः स्थापित करना चाहता हूं aptitude का उपयोग करके apt-get

दुर्भाग्य से ऐसा लगता है apt-get एक पुनर्स्थापित विकल्प नहीं है।

कोई विचार है कि मैं फिर से काम करने के लिए योग्यता कैसे प्राप्त कर सकता हूं?

संपादित करें : यह संभव है कि मुझे योग्यता के segfault के लिए मूल कारण मिला। यहां बताया गया है कि मैं इसे पुन: पेश कैसे कर सकता हूं:

  1. एसजीएच रिमोट लॉग इन सिबविन के आरएक्सवीटी टर्मिनल (विंडोज़ -7 64 बिट जर्मन संस्करण से) के माध्यम से डेबियन मशीन में।
  2. आरएक्सवीटी विंडो को बड़ा करें ताकि यह दो मॉनीटरों में फैला हो (हाँ मेरे पास दो मॉनीटर हैं)
  3. रन aptitude update। नोट: जब मैं सामान्य रूप से आरएक्सवीटी टर्मिनल का आकार बदलता हूं तो मेरे पास इन segfaults नहीं है!

168
2018-01-30 00:20


मूल




जवाब:


$ man apt-get | grep reinsta -A2
       --reinstall
           Re-Install packages that are already installed and at the newest
           version. Configuration Item: APT::Get::ReInstall.

तो, इसे पुनर्स्थापित करने के लिए इसका उपयोग करने के लिए aptitude उपयोग:

sudo apt-get install --reinstall aptitude

290
2018-01-30 01:29



वह क्या है -A5 तुम grepping कर रहे हो? - Vokuhila-Oliba
आदमी grep | grep - "-A" - grawity
वह क्या है -- तुम grepping कर रहे हो? - Desty
man getopt, नीचे देखो PARSING - Tino
-A5 मिलान की रेखा और निम्नलिखित 5 लाइनों को दिखाता है। -- विकल्पों की पार्सिंग रोकता है, इस प्रकार अभिव्यक्ति में डैश से बचने से बचने के लिए स्थितित्मक तर्क के बाद आने वाली किसी भी चीज को समझता है -A जिसे अन्यथा खुद को grep करने के विकल्प के रूप में व्याख्या किया जाएगा। - jjmontes


आप के साथ एक पैकेज को पुनर्स्थापित कर सकते हैं sudo apt-get install --reinstall packagename। यह पूरी तरह से पैकेज को हटा देता है (लेकिन पैकेज पर निर्भर नहीं है), फिर पैकेज को पुनर्स्थापित करता है।

पैकेज में कई रिवर्स निर्भरता होने पर यह सुविधाजनक हो सकता है।


100
2017-07-18 19:45



एकमात्र सही, पूर्ण, गैर-स्नैकी उत्तर होने के लिए धन्यवाद। - Cerin
@ सेरिन: मैं अन्य उत्तरों को अत्यधिक नाराज नहीं कहूंगा: यहां तक ​​कि "मैन पेज को पढ़ना" भी वास्तव में उत्तर देता है और साथ ही इसे कैसे ढूंढ सकता है। - David Spillett
@ डेविडस्पिल्लेट, मैं दृढ़ता से असहमत हूं। मैन पेज आमतौर पर बहुत खराब लिखे जाते हैं और नए लोगों के लिए बहुत ही असभ्य होते हैं। उदाहरण के लिए, "--reinstall" विकल्प पर अनुच्छेद का उल्लेख नहीं है कि आपको इसे "इंस्टॉल" तर्क के साथ उपयोग करना होगा। एक नौसिखिया सही ढंग से पूछ सकता है "मुझे इसे स्थापित करने और पुनर्स्थापित करने के लिए क्यों कहना है?" आरटीएफएम को किसी को बताते हुए एक जवाब सबसे बुरी तरह का जवाब है और इसे मुझे सबसे अधिक वोटों के साथ देखने के लिए दर्द होता है, खासकर जब एक पूर्ण और वास्तव में सहायक उत्तर नीचे के पास होता है। - Cerin


आपको योग्यता को हटाने और पुनर्स्थापित करने के लिए सुरक्षित होना चाहिए, क्योंकि यह अन्य उपयुक्त उपयोगिताओं को प्रभावित नहीं करेगा। इसलिए: apt-get remove aptitude के बाद apt-get install aptitude, या अगर वह अभी भी विफल रहता है apt-get purge aptitude के बाद apt-get install aptitude

उपर्युक्त में से कोई भी करने से पहले, मैं एक पूर्ण फ़ाइल-सिस्टम और खराब-ब्लॉक जांच की अनुशंसा करता हूं, यदि समस्या हो सकती है (समस्या के आधार पर, यदि कोई है, तो आगे की गतिविधि चीजों को और खराब कर सकती है)। साथ ही, सुनिश्चित करें कि आप इसे आगे बढ़ने से पहले हटाने / शुद्ध चरण में हटाए जाने की समीक्षा करेंगे (अगर किसी पैकेज को हटाने के परिणामस्वरूप अतिरिक्त कुछ भी बदला जाता है तो उसे अनुमति मांगनी चाहिए), मेरे विचार को दोबारा जांचने के लिए सुरक्षित है।


12
2018-01-30 00:26



आपका बहुत बहुत धन्यवाद! apt-get remove के बाद apt-get install चाल है! - Vokuhila-Oliba
यह बहुत समय पहले मैंने किया था a full filesystem check या इसी के समान। क्या आप कृपया मुझे एक छोटा संकेत दे सकते हैं कि ऐसा कैसे करें? - Vokuhila-Oliba
fsck -f <block_device> जैसे कि fsck /dev/sda1। फाइल सिस्टम को उस समय केवल अनमाउंट या माउंट किए जाने की आवश्यकता होगी, क्योंकि यह आपकी रूट फाइल सिस्टम होने की संभावना है, आपको एकल-उपयोगकर्ता-मोड में रीबूट करना चाहिए या लाइव सीडी जैसे किसी अन्य चीज़ से बूट करना चाहिए। - David Spillett
आप उपयोग कर सकते हैं tune2fs फाइल सिस्टम को अपनी सेट सीमा से अधिक बार घुमाने के रूप में चिह्नित करने के लिए, जो अगले बूट को चेक करने के लिए मजबूर होना चाहिए। फाइल सिस्टम मानना ​​ext2 / 3/4 है: tune2fs -C 99 <device>, या यदि आपके पास माउंट गिनती आधारित जांच बंद हो गई है, तो इसे एक ही समय में चालू करें tune2fs -c 17 -C 99 <device>। - David Spillett
स्पर्श / forcefsck; रीबूट करें - user23307


कभी-कभी आपको कॉन्फ़िगरेशन फ़ाइलों को भी पुनर्स्थापित करने की आवश्यकता होती है! बस पुनः स्थापित नहीं करें।

sudo apt-get install --reinstall xxxx

एप्लिकेशन को पुनर्स्थापित करें, कॉन्फ़िगरेशन फ़ाइलों को रखता है।

यह सहायक हो सकता है, लेकिन कभी-कभी आपको ताजा शुरू करने की ज़रूरत होती है, इसलिए मैं जो भी उपयोग करता हूं वह यह है:

sudo dpkg -r xxxx //to remove that xxxx package
sudo dpkg -P xxxx //to purge all related files

फिर

sudo apt-get install xxxx

12
2017-08-20 05:39



और यदि आपको केवल कॉन्फ़िगरेशन फ़ाइलों को पुनर्स्थापित करने की आवश्यकता है, तो कुछ मामलों में (यदि वे ucf द्वारा प्रबंधित होते हैं) तो आपको इसका उपयोग करना चाहिए UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname]। - Skippy le Grand Gourou