2014-09-19 30 views
14

Jak można całkowicie odinstalować (usunąć pliki należące do określonego pakietu) w systemie Mac OS X? Czy można to zrobić za pomocą polecenia w terminalu?Odinstalowywanie pakietów w systemie Mac OS X

Mam zainstalowany pakiet .pkg na moim Macu i zastanawiam się, w jaki sposób mogę odinstalować cały pakiet bez korzystania z aplikacji innych firm, takich jak UninstallPKG?

Zastanawiam się, czy odinstalowanie plików .dmg wymaga również aplikacji innych producentów, czy też można je odinstalować, wprowadzając polecenie w terminalu?

+4

To pytanie wydaje się być nietypowe, ponieważ nie dotyczy programowania. Wypróbuj http://apple.stackexchange.com – Droppy

+1

W szczególności jest to to samo pytanie, co http://superuser.com/questions/36567/how-do-i-uninstall-any-apple-pkg-package-file. Zalecam zamknięcie tego pytania, ponieważ nie jest to temat dla StackOverflow. –

Odpowiedz

5

Koncepcja dezinstalacji PKG nie występuje w OS X. PKG/MPKG może mieć określone skrypty przedinstalacyjne i poinstalacyjne związane z tym. To, co robi się w skryptach PKG, jest zawsze do twórcy PKG. Jako laika nie możemy iść dalej i odinstalować PKG.

Ale jednocześnie istnieją linie poleceń, które mogą wykonywać pełną inżynierię odwrotną na plikach PKG. Może wyodrębnić skrypty i inne powiązane informacje. Linki podane poniżej daje pewne informacje

http://s.sudre.free.fr/Stuff/Ivanhoe/FLAT.html http://www.mactech.com/articles/mactech/Vol.26/26.02/TheFlatPackage/index.html

Istnieje kilka Odinstaluj/odkurzaczy dostępnych aplikacji na OS X. Większość z nich zrobić wyszukiwania w znanych katalogów (jak/Library/Preferences/Library,/Application Support etc) z nazwą aplikacji/pkg name lub identyfikatorem pakietu. Jest to jeden ze sposobów na całkowite usunięcie.

DMG nie są plikami instalatora. Są to pliki obrazów dysków. Może mieć pliki .apps, pkg, mpkgs, inne pliki itp. Instalowane są instalatory wewnątrz DMG. DMG musi zostać zamontowany, aby przeczytać zawartość i odłączyć po zakończeniu.

http://osxdaily.com/2011/12/17/mount-a-dmg-from-the-command-line-in-mac-os-x/

Ten link daje informacje o tym, jak zamontować DMG

9

użyć tej komendy w terminalu dla sprawdzenia listy opakowaniu i odinstalowane pliki.

$ pkgutil --pkgs # list all installed packages 

Po odinstalowaniu pliki można usunąć pokwitowanie z:

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

Po wizualnie sprawdzając listę plików, można zrobić coś takiego:

$ 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 -i 

Be uważaj na ten ostatni krok. Lista katalogów wyświetlanych pod numerem pkgutil --files może zawierać ważne katalogi współużytkowane, takie jak usr, których nie chcesz usunąć .

$ pkgutil --only-dirs --files the-package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 sudo rm -ir 

Skopiowane z here

+0

Próbowałem powyższego polecenia, aby usunąć pliki z paczki, ale to nie zadziałało. 'rm -i' monituje użytkownika o potwierdzenie, ale stdin pochodzi z'/dev/null' dzięki xargs (http://man7.org/linux/man-pages/man1/xargs.1.html), więc nie możesz niczego potwierdzić. Otrzymujesz serię wielu monitów i żadne pliki nie zostały usunięte. Czy ktoś jeszcze osiągnął sukces? – LarsH

+0

Jak odinstalować pliki/skąd wiadomo, które pliki są powiązane z konkretnym pakietem? – JedatKinports

4

mam modyfikując odpowiedź @ Karthikeyan, który nie działa dla mnie.

W wierszu polecenia wpisz następujące czynności, aby znaleźć żądaną nazwę pakietu:

$ pkgutil --pkgs | grep -i {keyword} | less 

gdzie {keyword} jest ciągiem można oczekiwać, aby zobaczyć w nazwie pakietu.

Aby znaleźć lokalizację pakietu (katalogu głównego wszystkich ofert plik zostanie tytułu), użyj

$ pkgutil --pkg-info package-name.pkg 

Służy do listy z pakietami zainstalowane pliki:

$ pkgutil --files package-name.pkg 

Po wizualnej inspekcji listę plików, które możesz zrobić w taki sposób, aby je usunąć:

$ cd/# assuming the package location is/
$ pkgutil --only-files --files package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 -p sudo rm 

Należy zachować ostrożność pod następnego (końcowego) kroku, który usuwa katalogi. Lista katalogów wyświetlanych pod numerem pkgutil --files może zawierać ważne katalogi współużytkowane, takie jak usr, których nie chcesz usunąć . -p powoduje, że xargs prosi o potwierdzenie, ale nie sprawi, że poczujesz się szczęśliwy. (Powinny być bezpieczne z rmdir też, bo usunie tylko pustych katalogów. Ale niektórzy ludzie będą musieli dostosować linię poleceń, więc lepiej być jasne!)

$ pkgutil --only-dirs --files package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 -p sudo rmdir 

Po odinstalowaniu pliki można wyjąć płytę systemową z tego pakietu:

$ sudo pkgutil --forget package-name.pkg 

Źródła: pkgutil man page i this post.

+1

Rozszerzenie '.pkg' nie jest potrzebne, przynajmniej w kroku pkg-info. –

+0

Prawdopodobnie, jeśli w kroku informacyjnym jest napisane "location: Applications/xxx.app", a krok '--file' pokazuje mi nic poza' Contents/'mogę być pewny, że samo przeciągnięcie aplikacji do kosza usunęło wszystko? –