2014-09-19 58 views
14

Làm cách nào bạn có thể gỡ cài đặt hoàn toàn (xóa các tệp thuộc một gói nhất định) trong Mac OS X? Điều này có thể được thực hiện bằng cách sử dụng một lệnh trong thiết bị đầu cuối?Gỡ cài đặt các gói trong Mac OS X

tôi đã cài đặt một gói pkg trên máy Mac của tôi và tôi tự hỏi như thế nào tôi có thể gỡ bỏ cài đặt toàn bộ gói mà không sử dụng một ứng dụng của bên thứ ba như UninstallPKG?

Tôi đang tự hỏi liệu gỡ bỏ cài đặt dmg file cũng đòi hỏi các ứng dụng của bên thứ ba hoặc là nó có thể gỡ bỏ chúng vào một lệnh trong terminal?

+4

Câu hỏi này dường như không có chủ đề vì nó không phải về lập trình. Hãy thử http://apple.stackexchange.com – Droppy

+1

Cụ thể, đây là câu hỏi tương tự như http://superuser.com/questions/36567/how-do-i-uninstall-any-apple-pkg-package-file. Tôi khuyên bạn nên đóng câu hỏi này vì nó không có chủ đề cho StackOverflow. –

Trả lời

5

Khái niệm về PKG gỡ bỏ là không có trong OS X. Một PKG/MPKG có thể có một số tiền cài đặt và sau khi cài đặt các kịch bản liên quan với điều đó. Những gì được thực hiện trong các kịch bản PKG luôn là tối đa cho người tạo PKG. Là một giáo dân, chúng tôi không thể tiếp tục và gỡ cài đặt PKG.

Nhưng đồng thời có những dòng lệnh có thể làm một kỹ thuật đảo ngược hoàn toàn trên các tập tin PKG. Nó có thể trích xuất các tập lệnh và các thông tin liên quan khác. Các liên kết đưa ra dưới đây sẽ cung cấp cho bạn một số thông tin

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

Có vài gỡ bỏ cài đặt/ứng dụng sạch hơn có sẵn trên OS X. Hầu hết trong số họ thực hiện tìm kiếm trong danh bạ được biết đến (như/Library/Preferences,/Thư viện/Hỗ trợ ứng dụng, vv) với tên ứng dụng/tên pkg hoặc mã định danh gói. Đây là một cách để xóa hoàn toàn.

DMG không tìm trình cài đặt tập tin. Chúng là các tập tin ảnh đĩa. Nó có thể inturn có .apps, pkg, mpkgs, các tập tin khác vv Những gì được cài đặt là các trình cài đặt bên trong DMG. DMG phải được gắn kết để đọc nội dung và bỏ gắn kết khi hoàn tất.

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

Liên kết này cung cấp cho thông tin về làm thế nào để gắn kết một DMG

9

Sử dụng lệnh này trong thiết bị đầu cuối để kiểm tra danh sách các gói và gỡ bỏ cài đặt các file của bạn.

$ pkgutil --pkgs # list all installed packages 

Khi bạn đã gỡ bỏ cài đặt các tập tin, bạn có thể loại bỏ các nhận với:

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

Sau khi kiểm tra bằng mắt thường các danh sách các tập tin mà bạn có thể làm điều gì đó như:

$ 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 cẩn thận bước cuối cùng này. Danh sách sản lượng thư mục bằng cách pkgutil --files có thể bao gồm các thư mục chia sẻ quan trọng như usr, mà bạn không muốn loại bỏ.

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

sao chép từ here

+0

Tôi đã thử lệnh trên để xóa tệp khỏi gói, nhưng nó không hoạt động. 'rm -i' nhắc người dùng xác nhận, nhưng stdin đến từ'/dev/null' nhờ xargs (http://man7.org/linux/man-pages/man1/xargs.1.html), vì vậy bạn không thể xác nhận bất cứ điều gì. Bạn chỉ nhận được một loạt các lời nhắc và không xóa tệp nào. Có ai khác đã thành công không? – LarsH

+0

Làm thế nào để bạn gỡ cài đặt các tệp/cách bạn biết tệp nào trong đó các thư mục có liên quan đến một gói cụ thể? – JedatKinports

4

Tôi đang thay đổi câu trả lời @ Karthikeyan, mà không làm việc cho tôi.

Tại một dòng lệnh, sử dụng sau đây để tìm tên gói mong muốn:

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

nơi {keyword} là một chuỗi bạn mong đợi để nhìn thấy trong tên gói.

Để tìm vị trí gói (thư mục gốc mà tất cả sản phẩm tập tin sẽ được liên quan đến), sử dụng

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

Sử dụng này liệt kê các file cài đặt của gói:

$ pkgutil --files package-name.pkg 

Sau khi kiểm tra trực quan danh sách các tệp mà bạn có thể thực hiện như thế này để xóa chúng:

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

Hãy cẩn thận của bước tiếp theo (cuối cùng), loại bỏ các thư mục. Danh sách các thư mục đầu ra bởi pkgutil --files có thể bao gồm các thư mục được chia sẻ quan trọng như usr, mà bạn không muốn xóa. -p gây ra xargs để nhắc xác nhận, nhưng đừng kích hoạt hạnh phúc. (Bạn nên an toàn với rmdir quá, bởi vì nó sẽ chỉ loại bỏ các thư mục rỗng. Nhưng một số người sẽ cần phải tinh chỉnh dòng lệnh, vì vậy nó là tốt hơn để được rõ ràng!)

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

Khi bạn đã gỡ bỏ cài đặt các tập tin , bạn có thể xóa các bản ghi hệ thống gói:

$ sudo pkgutil --forget package-name.pkg 

Nguồn: pkgutil man pagethis post.

+1

Phần mở rộng '.pkg' là không cần thiết, ít nhất là trên bước pkg-info. –

+0

Có lẽ, nếu bước thông tin nói 'vị trí: Ứng dụng/xxx.app' và bước '--files' cho tôi thấy không có gì bên ngoài' Nội dung/'tôi có thể cảm thấy khá tự tin rằng việc kéo ứng dụng vào thùng rác đã xóa mọi thứ? –

Các vấn đề liên quan