2014-09-19 49 views
14

Mac OS X'te tamamen nasıl kaldırabilirsiniz (belirli bir pakete ait dosyaları)? Bu terminalde bir komut kullanılarak yapılabilir mi?Mac OS X'te paketleri kaldırma

Mac'ime bir .pkg paketi yükledim ve UninstallPKG gibi bir üçüncü taraf uygulamasını kullanmadan tüm paketi nasıl kaldıracağımı merak ediyorum.

.dmg dosyalarının kaldırılmasının üçüncü taraf uygulamalara mı gereksinim duyduğunu mu merak ediyorum veya terminalde bir komut girerek bunları kaldırmak mümkün mü?

+4

Bu soru konu dışı görünmektedir, çünkü programlama ile ilgili değildir. Http://apple.stackexchange.com adresini ziyaret edin – Droppy

+1

Özellikle, bu http://superuser.com/questions/36567/how-do-i-uninstall-any-apple-pkg-package-file ile aynı sorudur. StackOverflow'un konusu olmadığı için bu soruyu kapatmamızı tavsiye ediyorum. –

cevap

5

PKG kaldırması kavramı OS X'de yoktur. Bir PKG/MPKG, bununla ilişkili belirli yükleme ve yükleme sonrası komut dosyalarına sahip olabilir. PKG betiklerinde neler yapıldığının her zaman PKG yaratıcısına bağlı olduğunu. Bir kat görevlisi olarak devam edip PKG'yi kaldıramayız.

Aynı zamanda PKG dosyalarında tam tersine mühendislik yapabilme komut satırları var. Komut dosyaları ve diğer ilgili bilgileri ayıklayabilir. Aşağıda verilen linkler size bilinen dizinlere (gibi/Library/Tercihler/Kütüphane'de arama yapmak http://s.sudre.free.fr/Stuff/Ivanhoe/FLAT.html http://www.mactech.com/articles/mactech/Vol.26/26.02/TheFlatPackage/index.html

kaç kaldırma/temizleyici uygulamalar bunlardan OS X Most geçerli vardır biraz bilgi

verecek/Uygulama Desteği vb. Uygulama adı/pkg adı veya paket tanımlayıcısı ile. Bu tam bir kaldırma işlemini yapmanın bir yoludur.

DMG yükleyici dosyaları değildir. Onlar Disk Image dosyalarıdır. Bu .apps, pkg, mpkgs, diğer dosyaları vb. Dönüştürebilir. Yüklü olan şey, DMG içindeki yükleyicidir. DMG, içeriği okurken okunması ve montajı tamamlandığında un-mount olmalıdır.

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

Bu bağlantı kontrolü için terminalde bir DMG

9

kullanın paketinin listesini bu komutu monte konusunda bilgi verir ve dosyalarınızı kaldırıldı.

$ pkgutil --pkgs # list all installed packages 

dosyaları kaldırdıktan sonra, sizinle makbuz kaldırabilirsiniz:

$ 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: görsel gibi bir şey yapabilirsiniz dosyaların listesini teftiş sonra

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

Bu son adımı dikkatli. pkgutil --files tarafından verilen dizinlerin listesi, kaldırmak istemediğiniz usr gibi önemli paylaşılan dizinler içerebilir.

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

benim için işe yaramadı @ Karthikeyan yanıtını, modifiye ediyorum here

+0

Dosyaları bir paketten kaldırmak için yukarıdaki komutu denedim, ancak çalışmadı. rm -i, kullanıcıyı onay için yönlendirir, ancak stdin xargs (http://man7.org/linux/man-pages/man1/xargs.1.html) sayesinde '/ dev/null' den geliyor. hiçbir şeyi onaylayamazsın. Bir dizi çok sayıda komut alırsınız ve hiçbir dosya kaldırılmaz. Başkası var mıydı? – LarsH

+0

Dosyaları nasıl kaldırırsınız/hangi dizinlerde hangi dosyaların hangi paketlerle ilişkili olduğunu nasıl anlarsınız? – JedatKinports

4

dan kopyalandı. Komut satırında

, istenen paket adını bulmak için aşağıdaki kullanın:

{keyword} Örneğin paket adı görmeyi bekliyoruz bir dizedir
$ pkgutil --pkgs | grep -i {keyword} | less 

.görsel teftiş sonra

$ pkgutil --files package-name.pkg 

:

bu paketin yüklü dosyalarını listelemek için

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

kullanın kullanın, paket konumu (tüm dosya listeleri bağlı olacaktır kök dizin) bulmak için dosyaları kaldırmak için aşağıdaki gibi bir şeyler yapabilirsiniz:

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

Dizinleri kaldıran bir sonraki (son) adımın'a dikkat edin. pkgutil --files tarafından verilen dizinlerin listesi, kaldırmak istemediğiniz usr gibi önemli paylaşılan dizinler içerebilir. -p, onay için istemek üzere xargs neden olur, ancak tetikleyici-mutlu olmayın. (Sadece boş dizinleri kaldıracaktır. Ama bazı insanlar komut satırını değişiklik yapmanıza gerek yok, çünkü çok rmdir ile güvenli olmalı, bu yüzden açık olmak daha iyidir!)

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

dosyaları kaldırdıktan sonra

$ sudo pkgutil --forget package-name.pkg 

Kaynaklar: pkgutil man page ve this post, o paketin sistem kaydını kaldırabilir.

+1

En azından pkg-info adımında '.pkg' eklentisine gerek yoktur. –

+0

Muhtemelen, eğer bilgi adımı '' konum: Uygulamalar/xxx.app' ve '--files' adımı '' dışarıda hiçbir şey göstermiyorsa 'İçerikler /' Uygulamayı sadece sürükleyip çöp kutusuna sürüklemenin kendinden emin olduğunu hissedebiliyorum. –