2011-03-15 4 views
16

내 사용자를위한 서비스로서 Mac OS X에서 내 응용 프로그램의 모든 흔적을 완전히 제거하기위한 제거 스크립트를 제공하고자합니다. 응용 프로그램은 끌기가 아닌 패키지를 사용하여 설치됩니다 응용 프로그램 폴더는 설치시 설치 스크립트를 실행해야하는 데몬 유형 응용 프로그램이므로 실행됩니다.Mac OS X의 패키지 제거 프로그램

제 생각에는 uninstall.sh이라는 파일을 넣고 /Library/Application Support/com.<mycompany>.<myapplication>/에 넣고 응용 프로그램 설명서에서이 파일을 참조하십시오. 목적은 기본적으로 해당 plist를 실행, 언로드 및 삭제하고 응용 프로그램 파일을 제거하는 경우 데몬을 중지하는 것입니다. 합리적인 소리가 나거나 더 나은 방법이 있습니까?

pkgutil --forget을 사용하여 패키지의 흔적을 제거하는 것이 좋은지 궁금합니다. 설치하지 않으면 다음 번에 패키지가 설치 될 때 패키지가 설치되는 대신 업그레이드 된 것으로 표시됩니다. 모범 사례 정보에 대한 추천이나 조언

OS X에서이 작업을 수행하는 표준 방법이 있습니까?

+4

'/ Library/Application Support /'폴더를 살펴보면 폴더 이름에 점을 사용하면 안됩니다. 단순히 해당 폴더에 대한 응용 프로그램의 이름을 사용하십시오. – Asmus

+0

@Asmus : 감사합니다./Library/Application Support//을 사용하도록 변경하겠습니다. – villintehaspam

답변

16

OS X에서 표준화 된 방법이 없습니다. 예, 충격적입니다. Apple은 꾸준히 모든 패키지 설치 관리자에게 경고합니다 (다른 것들 중에서도 설명서는 충분하지 않습니다). 그런 다음 독립 실행 형 응용 프로그램 용 패키지 설치 프로그램을 독점적으로 사용합니다.

예, pkgutil --forget을 포함해야합니다.

고객이 이러한 종류의 스크립트에 익숙하면 고객의 접근 방식에 문제가 없을 것입니다. "double-click-on-it"을 원할 경우 제거 프로그램을 /Applications에 넣어야하지만 할 수 있으면 제거하지 않는 것이 좋습니다.

GUI, 상태 항목 또는 환경 설정 패널이있는 경우 터미널에서 엉망으로 갈 필요없이 "제거"버튼이나 메뉴 항목을 추가하는 것이 좋습니다.

지금까지 Software Delivery Guide를 찾고 있다면 1 년 동안 moved이었습니다. 업데이트하는 동안.

3

비슷한 응용 프로그램이 있는데 같은 문제가 발생했습니다. 내가 취한 접근법은 다른 응용 프로그램이 사용하는 것을 보았습니다. .pkg 설치 프로그램을 단순히 배포하는 대신 .dmg 파일로 마무리하십시오. 제거 스크립트는 .dmg에 .pkg와 함께 포함될 수 있습니다.

제거 스크립트의 이름은 "uninstall.tool"로 바뀝니다. .tool 확장자를 사용하면 명령 줄에서 실행하지 않고 두 번 클릭하여 스크립트를 실행할 수 있습니다.

3

이 문제를 해결 한 방법은 Automator입니다. 응용 프로그램 문서를 만든 다음 대화 및 스크립트 작업을 추가하십시오. 마지막으로 Automator 응용 프로그램 문서를 저장하면 간단한 GUI 응용 프로그램이 실행되어 제거 프로그램이 실행됩니다.

종종 제거 작업은 관리자 권한이 필요합니다 - 내가 할 수있는이 다음 AppleScript로 작용의 실행에 의해 다음과 같이 또 다른 쉘 스크립트를 생성하는 쉘 스크립트 작업을 실행하여 자동화에서이 문제를 해결 :

on run {input, parameters} 
    do shell script "/tmp/uninstaller.sh" with administrator privileges 
    return input 
end run 
6

무능력에를 패키지를 제거 년 동안 저를 도청했다, 그래서 나는 패키지를 제거 할 수있는 도구를 작성했습니다 : 그 쉘 스크립트보다 약간은 BECA 주위에 떠 할

http://www.corecode.at/uninstallpkg/index.html

을 사용하면 설치된 다른 패키지에서 사용되는 파일을 절대로 제거하지 않습니다.

+1

앱이 완벽하게 작동했습니다. 감사합니다. – snacks

+0

Logic Pro X의 사운드 라이브러리에서 패키지를 제거하려고 할 때 PKG 제거 프로그램에서 오류를 표시합니다. 그것은 시스템 무결성 보호 때문에 패키지를 제거 할 수 없다고 말합니다. – rraallvv

+0

@rraallvv : 1.) stackoverflow는 임의의 응용 프로그램에 대한 지원 채널이 아닙니다. 의견을 보내 주시면 직접 연락 주시기 바랍니다. 2.) 10.11 SIP (System Integrity Protection)가 시스템 파일을 수정하지 못하도록 차단합니다. (임시 또는 영구적으로) 시스템 무결성 보호를 비활성화해야합니다. – user1259710

1

약간 낯선 것이지만 전부는 아닙니다. 나는 자작 나무와 통을 설치했습니다. 다음과 함께 .pkg를 제거 할 수있었습니다.

ex. brew cask uninstall --force dockertools

+0

(1) 이것은'dockertoolbox'가 Homebrew와 cask를 통해 설치되었다고 가정합니다. (2)이 질문은'dockertoolbox'뿐만 아니라 일반적인 Mac OS 응용 프로그램을위한 것입니다. 대답의 타당성은 의문의 대상입니다. – rayryeng

+0

놀랍게도 dockertoolbox는 .pkg에서 osx의 설치 프로그램을 통해 설치되었지만 - 양방향 옵션은 dockertoolbox를 제거 할 수있었습니다. – buildmaestro

+0

흥미로운 것은 사실이지만이 질문은 일반적인 OSX 패키지에도 적용됩니다. 귀하의 대답은 특정 패키지에만 해당됩니다. – rayryeng