मैं किसी भी Apple pkg पैकेज फ़ाइल को कैसे अनइंस्टॉल करूं?


50

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

विशेष रूप से मैंने एक Intel मैकबुक पर PowerPC MySQL 5.4.1 पैकेज स्थापित किया है, और मैं इसे साफ साफ उल्टा करना चाहूंगा, 5.1 x86 इंस्टॉल करना जो मैं देख सकता हूं वह अभी भी है, लेकिन अभी ठीक से काम नहीं कर रहा है।

जवाबों:


83

https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X देशी का उपयोग करके .pkg अनइंस्टॉल करने का वर्णन करता है pkgutil

संशोधित अंश

$ pkgutil --pkgs # list all installed packages
$ pkgutil --files the-package-name.pkg # list installed files

फाइलों की सूची का निरीक्षण करने के बाद आप कुछ ऐसा कर सकते हैं:

$ pkgutil --pkg-info the-package-name.pkg # check the location
$ cd / # assuming the package is rooted at /...
$ pkgutil --only-files --files the-package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 sudo rm -f
$ pkgutil --only-dirs --files the-package-name.pkg | tail -r | tr '\n' '\0' | xargs -n 1 -0 sudo rmdir

कहने की जरूरत नहीं है, रूट विशेषाधिकारों वाली फाइलों को हटाते समय अत्यधिक सावधानी बरतनी चाहिए। विशेष रूप से, अवगत रहें कि कुछ पैकेज साझा सिस्टम घटकों को अपडेट कर सकते हैं, इसलिए उन्हें अनइंस्टॉल करना वास्तव में एक आवश्यक घटक को हटाकर आपके सिस्टम को तोड़ सकता है।

छोटे पैकेजों के लिए पैकेज फाइल लिस्टिंग का निरीक्षण करने के बाद फाइलों को मैन्युअल रूप से हटा देना शायद सुरक्षित है।

जाहिर है, एक बार में एक --unlinkविकल्प उपलब्ध था pkgutil, लेकिन सिंह के रूप में इसका उल्लेख मैन पेज में नहीं किया गया है। शायद इसे हटा दिया गया क्योंकि इसे बहुत खतरनाक माना गया था।

एक बार जब आप फ़ाइलों की स्थापना रद्द कर देते हैं, तो आप रसीद को हटा सकते हैं:

$ sudo pkgutil --forget the-package-name.pkg

1
मैं rmdirइसके बजाय का उपयोग करने की सलाह देता हूं rm -r; कोई निर्देशिका नामों की सूची का उपयोग tacया tail -rउल्टा भी कर सकता है, ताकि वे सही क्रम में हटा दिए जाएं
सैम मेसन

18
सूद rm -ir PART को मत छोड़ो। सूची में मूल निर्देशिका शामिल है! इसलिए यदि pkg ने / usr / ... में कुछ स्थापित किया है, तो आप सभी को हटा देंगे / usr /
FiloSottile

2
मैंने निर्देशिकाओं को हटाने के लिए कमांड को बदल दिया है, rmdirजिसका उपयोग करने के लिए (जो खाली-निर्देशिका को नहीं हटाता है) और tail -rउन्हें बेहतर क्रम में सूचीबद्ध करने के लिए उपयोग करता है।
brablc

1
विडंबना यह है कि जब pgkutil का उपयोग करते हुए मैंने एक अनइंस्टॉलर पाया। पीपी टक किया गया जिसे मैं उपयोग कर सकता था। उत्तम!
cmroanirgo

एक बात जो pkgs पर नज़र रखने के लिए नहीं लगती है वह है pkgs द्वारा बनाए गए सिमिलिंक। यह संभव है कि ऊपर दिए गए निर्देशों (या यहां के किसी भी तरीके) से पैकेज की सफाई करने से टूटी हुई सीलिंक पीछे छूट जाएगी।
जेम्स मैकमोहन

19

सिस्टम में निर्मित अनइंस्टालर का उपयोग करके फ़ाइलों को अनइंस्टॉल करने का कोई विकल्प नहीं है ताकि आप या तो खुद को अनइंस्टालर बना सकें या फ़ाइलों को मैन्युअल रूप से हटा सकें।

यह निर्धारित करने का सबसे अच्छा तरीका है कि क्या फ़ाइलें स्थापित की गई हैं, .pkgयदि संभव हो तो मूल की पकड़ प्राप्त करना है। यदि यह संभव नहीं है, तो आप प्राप्त की गई रसीदों का उपयोग भी कर सकते हैं /Library/Receipts। आपका सबसे बड़ा मुद्दा यह है कि जब आप एक .mpkgऐसी .pkgफाइल के साथ काम कर रहे होते हैं जिसमें कई फाइलें होती हैं, तो आपको .pkgउस फ़ोल्डर में सभी अलग-अलग फाइलों को ढूंढना होगा (शुक्र है कि तारीख के अनुसार क्रमबद्ध होने पर यह मुश्किल नहीं है)।

एक बार जब आपके पास .pkgफ़ाइल (रसीद या पूर्ण इंस्टॉल की गई फ़ाइल) हो जाती है, तो आप एक उपयोगिता का उपयोग करके या तो अनइंस्टालर बना सकते हैं या फ़ाइलों को ढूंढ सकते हैं ताकि आप उन्हें मैन्युअल रूप से निकाल सकें:

Uninstaller

निरपेक्ष सॉफ्टवेयर इंस्टाएज एक मुफ्त कार्यक्रम है जो मौजूदा .pkg फाइलों से अनइंस्टॉलर्स बना सकता है। अनइंस्टॉलर .pkgफ़ाइल बनाएं (ध्यान दें: आपको वास्तव में .pkgफ़ाइल बनाने के लिए ऐप्पल के डेवलपर टूल इंस्टॉल करने होंगे )

मैन्युअल

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


धन्यवाद, जबकि नियमित 5.1 mysql संकुल ने एक रसीद छोड़ दी, बीटा 5.4 mysql संकुल ने नहीं किया। वह थोड़ा अजीब है।
dlamblin

4
वाह, अगर मुझे पता था कि मैंने कभी भी .pkgशुरू करने के लिए स्थापित नहीं किया होगा । यू नो प्रोग्राम्स और फीचर्स OS X?
नोबल उत्थान

10

आप अनइंस्टॉलकेकेजी के साथ .pkg पैकेजों की भी स्थापना रद्द कर सकते हैं ( http://www.corecode.at/uninstallpkg/ )

[पूरा खुलासा: हां मैं लेखक हूं]


यह ध्यान देने योग्य यह मुक्त नहीं है, लेकिन एक नि: शुल्क परीक्षण शामिल है लायक है
रॉन ई

1

आप इस साइट से सुझावों की कोशिश कर सकते हैं: http://www.entropy.ch/software/macosx/mysql/remove-old-mysql.html । इसके अलावा, Adobe समर्थन साइट पर इस बारे में एक लेख है; यहाँ लिंक है: http://support.adobe.com/devsup/devsup.nsf/docs/52355.htm

इसके अलावा, जिन ऐप्स के पास आमतौर पर dmg में एक pkg फ़ाइल होती है, उनके पास आमतौर पर एक और pkg भी होता है जो अनइंस्टॉल करने के लिए उपयोग किया जाता है। मुझे यकीन नहीं है कि यह यहाँ सच है, लेकिन मैं आपको मूल dmg फ़ाइल रखने की जानकारी देना चाहता था।


1

मैंने एक खोल छलनी कर दी

आप इसे आज़मा सकते हैं

https://github.com/iamrToday/pkg-remove

यह एक .gif डेमो दिखाता है, आप स्रोत कोड देख सकते हैं, बस brablc की कमांड लाइन को लपेट सकते हैं । आप इसे खोज खोज के लिए चला सकते हैं, आप एपीके को भी हटा सकते हैं। यह संवादात्मक है।


यह क्या करता है?
पियरे.विरेंस

मैं एक .gif डेमो दिखाता हूं, आप सोर्स कोड देख सकते हैं, बस brablc की कमांड लाइन को लपेट सकते हैं । आप इसे खोज खोज के लिए चला सकते हैं, आप एपीके को भी हटा सकते हैं। यह इंटरैक्टिव है। :)
rToday लिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.