سؤال لماذا `dpkg -l | تظهر الحزمة grep` حزمة بعد تطهيرها


لإلغاء تثبيت حزمة (مثال: tor) مثبتة من مستودع واحد يجب استخدام

sudo apt-get remove tor

أنا فعلت هذا لكن dpkg -l | grep tor أظهرت شيئا ضد الحزمة. التالي أحاول

sudo apt-get purge tor

لكن عندما أتحقق dpkg -l | grep tor أنا أخذت،

reza@reza-N43JM:/$ dpkg -l tor    
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
un  tor            <none>         (no description available)

أعتقد أنه عندما أقوم بإلغاء أي حزمة لا يجب أن أحصل على أي شيء فيها dpkg -l قائمة. هل هذا صحيح؟ أو apt-get remove أو purge يقوم بعمل آخر ولكن لا إلغاء؟


4
2018-03-28 14:53


الأصل




الأجوبة:


لاحظ الأول رسالتان من انتاج dpkg -l tor الذي يقول un

u: Unknown (an unknown state)
n: Not- The package is not currently installed

بعض الأحيان dpkg يحتفظ هذه الإدخالات للمراجع. لإزالة تلك الإدخالات المشكوك فيها ، قم بتشغيل في المحطة الطرفية ،

sudo dpkg --clear-avail

من عند man dpkg

--clear-avail
          Erase  the  existing  information  about   what   packages   are
          available.

4
2018-03-28 15:36



عن طريق sudo dpkg --clear-avail لا يعمل بالنسبة لي. - wsw
لا بالنسبة لي. (Ubuntu 16.04 LTS) - HeinrichStack


يبدو أنsouravc ليس لديها سوى جزء من الحل.

(ملاحظة: أفعل هذا على دبيان ، أعتقد أنه يجب تطبيقه على Ububtu أيضًا.)

تتوفر معلومات / var / lib / dpkg / status و / var / lib / dpkg / available عن الحزم التي تكون متاحة للتثبيت (نوع ما هي apt) ، أو مثبّتة أو تحتوي على ملفات تهيئة متبقية. إذا كانت إحدى هذه الحزم (على سبيل المثال ، bar) Depends: على العبوة foo، لكن foo نفسه غير مدرج بالفعل (وهذا لا ينبغي أن يحدث طالما أنك تستخدم فقط repos debian / Ubuntu الرسمي المستقر) dpkg -l tor سوف أذكر لهم.

grep-status (لا يوجد جذر مطلوب) هو أمر أنيق يمكن أن يساعدك في تحديد الحزمة التي هي الجاني:

$ grep-status foo
Package: bar
Depends: foo
...
$ dpkg -s bar
$ dpkg -L bar
...

الآن يمكنك إلغاء تثبيت أو تطهير الحزمة باستخدام على سبيل المثال:

# dpkg -r bar
# dpkg -P bar

0
2017-08-19 02:23