2014-09-19 10 views
14

Mac OS X에서 어떻게 특정 패키지에 속한 파일을 완전히 제거 할 수 있습니까? 터미널에서 명령을 사용하여이 작업을 수행 할 수 있습니까?Mac OS X에서 패키지 제거

Mac에 .pkg 패키지가 설치되어 있으며 UninstallPKG와 같은 타사 응용 프로그램을 사용하지 않고 전체 패키지를 제거하는 방법이 궁금합니다.

.dmg 파일을 제거하는 데 타사 응용 프로그램이 필요한지 또는 터미널에서 명령을 입력하여 제거 할 수 있는지 궁금합니다.

+4

이 질문은 프로그래밍에 관한 것이 아니기 때문에 주제와 관련이없는 것으로 보입니다. 시도하십시오 http://apple.stackexchange.com – Droppy

+1

특히, 이것은 http://superuser.com/questions/36567/how-do-i-uninstall-any-apple-pkg-package-file와 동일한 질문입니다. StackOverflow에 대한 주제를 다루지 않기 때문에이 질문을 닫는 것이 좋습니다. –

답변

5

OS X에는 PKG 제거의 개념이 없습니다. PKG/MPKG에는 이와 관련된 사전 설치 및 사후 설치 스크립트가 있습니다. PKG 스크립트에서 수행되는 작업은 항상 PKG 작성자에게 달려 있습니다. 평신도로서 PKG를 제거 할 수 없습니다.

동시에 PKG 파일에 대해 완전한 역 엔지니어링을 수행 할 수있는 명령 줄이 있습니다. 스크립트 및 기타 관련 정보를 추출 할 수 있습니다. 아래 링크는 당신에게 알려진 디렉토리 (등/도서관/환경/라이브러리 검색을 할 http://s.sudre.free.fr/Stuff/Ivanhoe/FLAT.html http://www.mactech.com/articles/mactech/Vol.26/26.02/TheFlatPackage/index.html

몇 제거/청소기 애플 리케이션 그들 OS X의 대부분에 사용할 수 있습니다 약간의 정보

을 줄 것이다/응용 프로그램 지원 등)을 app 이름/pkg 이름 또는 번들 식별자와 함께 사용합니다. 이것은 완전한 제거를 수행하는 한 가지 방법입니다.

DMG는 설치 프로그램 파일이 아닙니다. 디스크 이미지 파일입니다. 그것은 inturn 수 있습니다. 응용 프로그램, 패키지, mpkgs, 다른 파일 등. 무엇이 설치되면 DMG 내부의 설치 프로그램입니다. DMG는 내용을 읽으려면 마운트해야하고 완료되면 마운트를 해제해야합니다.

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

이 링크는 확인을 위해 단말기에서 DMG

9

사용을 패키지의 목록이 명령을 장착하는 방법에 대한 정보를 제공하고 파일을 제거.

$ pkgutil --pkgs # list all installed packages 

당신이 파일을 제거하면, 당신이 영수증 제거 할 수 있습니다

$ 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 

하는 수 : 시각적으로 당신이 뭔가를 할 수있는 파일의 목록을 검사 한 후

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

을 마지막 단계를 조심하십시오. pkgutil --files에 의해 출력되는 디렉토리 목록에는 usr과 같은 중요한 공유 디렉토리가 포함될 수 있습니다. 을 제거하지 않으려합니다.

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

내가 나를 위해 작동하지 않았다 @의 karthikeyan의 대답을 수정하고있어 here

+0

위의 명령을 사용하여 패키지에서 파일을 제거했지만 작동하지 않았습니다. 'rm -i'는 사용자에게 확인을 요구하지만, xargs (http://man7.org/linux/man-pages/man1/xargs.1.html) 덕분에 표준 입력은'/ dev/null'에서 나온다. 아무것도 확인할 수 없습니다. 일련의 많은 프롬프트가 표시되고 파일이 제거되지 않습니다. 다른 사람이 성공 했습니까? – LarsH

+0

어떻게 파일을 제거합니까/특정 패키지와 관련된 디렉토리의 파일을 어떻게 알 수 있습니까? – JedatKinports

4

에서 복사. 명령 줄에서

는 원하는 패키지 이름을 찾기 위해 다음을 사용

{키워드} 패키지 이름을 볼 것으로 예상 문자열입니다
$ pkgutil --pkgs | grep -i {keyword} | less 

.시각적으로 검사 한 후

$ pkgutil --files package-name.pkg 

:

이 패키지의 설치된 파일을 나열

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

사용을 사용하여 패키지 위치 (모든 파일 옵션을 기준으로 할 것이다 루트 디렉토리)를 찾으려면 파일 목록에서 다음과 같이 삭제할 수 있습니다.

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

디렉토리를 제거하는 다음 (최종) 단계의을 조심하십시오. pkgutil --files에 의해 출력되는 디렉토리 목록에는 usr과 같은 중요한 공유 디렉토리가 포함될 수 있습니다. 을 제거하지 않으려합니다. -pxargs에 확인을 요청하지만 trigger-happy는 표시되지 않습니다. (그것은 단지 빈 디렉토리를 제거합니다. 그러나 어떤 사람들은 명령 줄을 조정할 필요가 있기 때문에 당신은 너무 rmdir으로 안전합니다, 그래서 명확하게하는 것이 좋습니다!)

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

당신이 파일을 제거하면

$ sudo pkgutil --forget package-name.pkg 

출처 : pkgutil man pagethis post, 해당 패키지의 시스템 레코드를 제거 할 수 있습니다.

+1

최소한 pkg-info 단계에서'.pkg' 확장자는 필요하지 않습니다. –

+0

info 단계에'location : Applications/xxx.app'라고 쓰고'--files' 단계에서'Contents /'밖에 아무것도 보이지 않는다면 앱을 휴지통으로 끌면 모든 것이 제거 된 것 같습니다. –