سؤال كيفية إعادة تثبيت حزمة باستخدام 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 aptitude. هنا كيف يمكنني إعادة إنتاجه:

  1. تسجيل الدخول عن بعد ssh في آلة ديبيان عبر محطة rxvt cygwin (من إصدار ألماني 64 بت Windows-7).
  2. تكبير النافذة rxvt بحيث يمتد عبر شاشتين (نعم لدي شاشتين)
  3. يركض aptitude update. ملاحظة: عندما أغير حجم محطة rxvt إلى وضعها الطبيعي ، فأنا لا أملك هذه المقاطع 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 أنت غنيمة؟ - Vokuhila-Oliba
رجل grep | grep - "-A" - grawity
ما هذا -- أنت تحلق؟ - Desty
man getopt، انظر تحت PARSING - Tino
-A5 يعرض السطر المتطابق بالإضافة إلى الأسطر الخمسة التالية. -- توقف تحليل الخيارات ، وبالتالي تفسير أي شيء يأتي بعد ذلك كحجج موضعية ، وتجنب الاضطرار إلى الهروب من الشرطة في التعبير -A التي لولاها يمكن تفسيرها كخيار ل grep نفسها. - jjmontes


يمكنك إعادة تثبيت حزمة مع sudo apt-get install --reinstall packagename. هذا يزيل الحزمة بالكامل (وليس الحزم التي تعتمد عليها) ، ثم يعيد تثبيت الحزمة.

يمكن أن يكون ذلك مناسبًا عندما تحتوي الحزمة على العديد من التبعيات العكسية.


100
2017-07-18 19:45



نشكرك على كونك الجواب الوحيد الصحيح ، الكامل ، غير الظليل. - Cerin
@ سيرين: لن أتطرق إلى الأجوبة الأخرى بشكل مفرط: حتى أن "قراءة صفحة الرجل" أعطت الإجابة في الواقع وكذلك كيفية العثور عليها. - David Spillett
DavidSpillett ، أنا لا أوافق بشدة. عادةً ما تكون صفحات الرجل مكتوبة بشكل سيئ جدًا وتكون غير ودية للمبتدئين. على سبيل المثال ، لا تشير الفقرة على خيار "- تثبيت" إلى أنه يجب عليك استخدامه مع الوسيطة "تثبيت". قد يسأل أحد المبتدئين عن حق "لماذا عليّ أن أخبره لتثبيت وإعادة تثبيته؟" إن الإجابة على شخص ما إلى RTFM هي أسوأ نوع من الإجابات ويؤلمني أن أراه بأكبر عدد من الأصوات ، خاصة عندما تكون الإجابة كاملة ومفيدة بالفعل بالقرب من القاع. - Cerin


يجب أن تكون آمنًا لإزالة aptitude وإعادة تثبيته ، لأن ذلك لن يؤثر على الأدوات المساعدة الأخرى. وبالتالي: 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