कैसे स्थापित नहीं किया है या dpkg द्वारा बनाई गई डेबियन सिस्टम में फ़ाइलें खोजने के लिए?


20

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


1
यह प्रश्न भी देखें: unix.stackexchange.com/questions/18038/…
ताहा जहाँगीर

जवाबों:


25

cruftपैकेज का उपयोग करें :

cruft किसी भी चीज़ के लिए सिस्टम को देखने का एक कार्यक्रम है जो कि नहीं होना चाहिए, लेकिन है; या किसी भी चीज़ के लिए जो वहाँ होनी चाहिए, लेकिन ऐसा नहीं है।


4

आप कुछ इस तरह की कोशिश कर सकते हैं:

dpkg -L --list-all-package-files | grep "^/usr" > dpkg-files.dat   **(don't know the dpkg option "--list-all-package-files", read mand dpkg)**
find /usr -type f -o -type l > all-usr-files.dat
sort dpkg-files.dat all-usr-files.dat | uniq -c | grep " 1 "

इस तरह आपको वे सभी फाइलें मिलेंगी जो / usr में हैं, लेकिन कोई पैकेज फ़ाइल नहीं है। पहले शॉट के रूप में यह आपकी मदद कर सकता है।


मैं एक बार में एक से अधिक पैकेज को सूचीबद्ध करने के लिए -L प्राप्त करने का कोई तरीका नहीं खोज सकता, लेकिन आप इससे समान प्रभाव प्राप्त कर सकते हैंgrep -h "^/usr" /var/lib/dpkg/info/*.list > dpkg-files.dat
DerfK

कोई --list-all-package-filesविकल्प नहीं है।
करोल

@DerfK: आप -l को एक से अधिक पैकेज की सूची के लिए प्राप्त कर सकते हैं, उदाहरण के लिए:dpkg -L `aptitude search ~i -F "%p"`
करोल

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

@ कैरोल: फाइलों के अन्य स्रोत विविधता और विकल्प हो सकते हैं। आउटपुट वाक्य के रूप में है, लेकिन आप विविधता dpkg-divert --listको रूट के रूप में देख सकते हैं (इन्हें आमतौर पर प्रत्यय दिया जाता है)। अल्टरनेटिव्स थोड़े कठिन हैं, फ़ाइल फॉर्मेट में / var / lib / dpkg / अल्टरनेटिव्स / अजीब है और update-alternativesलिंक के नाम के बारे में सब कुछ बता देता है। find /usr -lname '/etc/alternatives/*'शायद ये पाने का सबसे आसान तरीका है।
डेरफक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.