Apple pkg Package 파일을 어떻게 제거합니까?


50

반대 의견에도 불구하고 모든 패키지가 하나의 디렉토리에만 깨끗하게 설치되는 것은 아닙니다. 원래 패키지 (또는 설치된 패키지에 대한 정보 저장소)에서 pkg 파일의 설치 프로세스를 되돌릴 수있는 방법이 있습니까?

특히 Intel MacBook에 PowerPC MySQL 5.4.1 패키지를 설치했으며 5.1 x86 설치를 복구해도 여전히 작동하지만 제대로 작동하지 않는다는 것을 완전히 바꾸고 싶습니다.

답변:


83

https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X 는 native를 사용하여 .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있었지만 Lion 기준 맨 페이지에는 언급되어 있지 않습니다. 아마도 너무 위험한 것으로 간주되어 제거되었을 수 있습니다.

파일을 제거한 후에는 다음을 사용하여 영수증을 제거 할 수 있습니다.

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

1
; rmdir대신 사용 하는 것이 좋습니다 rm -r. 또한 올바른 순서로 삭제되도록 디렉토리 이름 목록을 사용 tac하거나 tail -r반전 시킬 수 있습니다.
Sam Mason

18
sudo rm -ir 부분을 실행하지 마십시오. 이 목록에는 부모 디렉토리가 포함되어 있습니다! 따라서 pkg가 / usr /에 무언가를 설치했다면 모든 / usr /을 제거 할 것입니다.
FiloSottile

2
rmdir비어 있지 않은 디렉토리를 삭제 하지 않고 사용할 디렉토리를 삭제하는 명령을 변경 tail -r했으며 더 나은 순서로 나열하는 데 사용 합니다.
brablc

1
아이러니하게도, pgkutil을 사용할 때 uninstaller.pl이 내가 사용할 수있는 것을 발견했습니다. 완전한!
cmroanirgo

pkg이 추적하지 않는 한 가지는 pkg에 의해 생성 된 심볼릭 링크입니다. 위의 지침 (또는 여기의 방법 중 하나)에서 패키지를 정리하면 깨진 심볼릭 링크가 남을 수 있습니다.
James McMahon

19

시스템에 내장 된 제거 프로그램을 사용하여 파일을 제거하는 옵션이 없으므로 제거 프로그램을 직접 만들거나 파일을 수동으로 제거 할 수 있습니다.

설치된 파일을 확인하는 가장 좋은 방법은 .pkg가능 하면 원본을 유지하는 것입니다 . 이것이 가능하지 않은 경우에서 대신 영수증을 사용할 수도 있습니다 /Library/Receipts. 가장 큰 문제는 .mpkg여러 .pkg파일 이 포함 된 파일을 처리 할 때 .pkg해당 폴더의 모든 별도 파일 을 찾아야하므로 날짜별로 정렬하면 어렵지 않습니다.

당신은 일단 .pkg파일 (영수증 또는 전체 설치 파일) 당신은 당신이 그들을 수동으로 제거 할 수 있도록 파일을 하나 제거 프로그램을 만들거나 찾을 수있는 유틸리티를 사용할 수 있습니다 :

언인스톨 러

Absolute Software InstallEase 는 기존 .pkg 파일에서 제거 프로그램을 생성 할 수있는 무료 프로그램입니다. 제거 프로그램 .pkg파일 만들기 (참고 : 실제로 .pkg파일을 만들려면 Apple의 개발자 도구가 설치되어 있어야 합니다)

수동으로

Pacifist 와 같은 프로그램 또는 Suspicious Package 와 같은 QuickLook 플러그인을 사용 하면 설치된 파일과 위치를 볼 수 있습니다. 해당 목록을 사용하여 수동으로 해당 폴더를 탐색하고 파일을 제거 할 수 있습니다. InstallEase를 발견하기 전에이 방법을 개인적으로 셀 수없이 사용했지만 설치가 여러 위치에 분산되어 있지 않은 경우 여전히 더 빠릅니다.


감사합니다. 일반 5.1 mysql 패키지는 영수증을 남겼지 만 베타 5.4 mysql 패키지는 그렇지 않았습니다. 약간 이상합니다.
dlamblin

4
와우, 내가 이것을 알았다면 나는 처음 .pkg부터 설치하지 않았을 것 입니다. yu no 프로그램 및 기능 OS X?
NobleUplift 15시 21 분


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

나는 srcipt를 만들었다

당신은 그것을 시도 할 수 있습니다

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

.gif 데모를 보여줍니다. 소스 코드를 볼 수 있습니다 . brablc의 명령 행을 감싸면 됩니다. 당신은 정보를 검색하기 위해 그것을 실행할 수 있습니다, 당신은 또한 APK를 제거 할 수 있습니다. 대화식입니다.


무엇을합니까?
Pierre.Vriens 2018 년

나는 .gif 데모를 보여, 당신은 소스 코드를 볼 수 있습니다, 그냥 brablc 의 커맨드 라인을 감 쌉니다 . 당신은 정보를 검색하기 위해 그것을 실행할 수 있습니다, 당신은 또한 APK를 제거 할 수 있습니다. 대화식입니다. :)
rToday Lin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.