.pkg 파일을 수동으로 열려면 어떻게합니까?


60

일부 응용 프로그램은 .pkg 파일로 제공되며 바이너리를 / Applications에 복사하는 것만으로도 관리자 암호를 묻습니다.

~ / Applications에 내 응용 프로그램을 갖고 싶어하며 모선이 아닌 것에 대해서는 관리 권한을 부여하고 싶지 않습니다.

.pkg 파일을 수동으로 열고 응용 프로그램을 꺼내는 방법이 있습니까? 개발자 도구에는 PackageMaker가 있지만 그렇게 보이지는 않습니다 (설치 프로그램에 실제로 스크립트 나 다른 부분이 없으며 응용 프로그램 만 있다고 생각하게하는 출력이 생성되었습니다).


2
unpkg를 사용해보십시오 .
lhf

답변:


66

마우스 오른쪽 단추로 클릭하고 패키지 컨텐츠 표시를 클릭 하면 컨텐츠 폴더에 몇 개의 파일이 있습니다. (참고 : Show Package Contents 가 보이지 않으면 Terminal.app을 열고 실행해야합니다. pkgutil --expand mystubbornpackage.pkg path/to/expand)

하나는 BOM 파일 (Bill of Materials)로, 앱을 제거하는 데 사용할 수있는 영수증으로 변환됩니다. 이 파일에는 패키지가 설치하는 모든 위치와 위치가 명시되어 있습니다. 이 파일을 읽으려면 lsbom 명령을 사용하십시오 .

대부분의 패키지 (여기서는 Office 2008을 사용하고 있음)에도 Archive.pax.gz 파일이 있습니다. 여기에는 BOM 파일에 지시 된대로 Installer가 다양한 폴더로 이동하는 모든 항목이 포함됩니다. 대부분의 앱은이 아카이브에 .app가있는 것으로 보이지만 / Applications로 드래그하면 실행해야하는 프레임 워크없이 남겨 둘 수 있습니다. 따라서 필요한 다른 파일과 파일을 작동시키는 데 필요한 위치를 파악해야합니다.

또한 Cmd-L 을 누르면 모든 패키지가 메시지를 기록 할 수 있습니다 (또는 메뉴 에서 설치 프로그램 로그 옵션을 선택하면 생성 된대로 볼 수 있습니다). 최소한 패키지를 신뢰할 수 없다면 더 많은 정보입니다.


3
오른쪽 클릭 메뉴에 "Show Package Contents"가 표시되지 않습니다.
Thilo

3
@Thilo "Show Package Contents"옵션이 없다면 pkg 파일이 플랫 파일로 생성 된 것입니다. 애플은 2 년 전에 플랫 스타일 pkg을 소개했다
username

@username : 어떻게 열 수 있습니까?
Thilo

10
pkgutil그렇게 할 것입니다. 사용하여 확장하면 pkgutil --expand file.pkg path_to_expand디렉토리 스타일 패키지로 변환됩니다.
Mathew Hall

@username, "flat"은 무엇을 의미합니까?
Pacerier

34

Matthew Hall이 말한 것 외에도 설치 프로그램에서 Cmd-I를 눌러 설치 프로그램이 설치할 파일과 위치를 확인할 수 있습니다.


3
+1. 이를 통해 시스템 전체에 응용 프로그램 바이너리가 없는지 빠르게 확인할 수 있습니다.
Thilo

7

설치 관리자 권한을 부여 할만큼 설치 프로그램을 신뢰하지 않으면 / Applications에서 바이너리를 신뢰하는 이유는 무엇입니까?

Pacifist 에서 패키지 파일을 살펴볼 수 있습니다. 이것은 반드시 당신이 "바이너리를 뽑아 내도록"하는 것은 아닙니다.


1
나는 바이너리도 믿지 않는다. 절대 관리자 권한을 부여하고 싶지 않습니다 (어쨌든 필요하지 않음).
Thilo

3
관리자 권한이있는 사용자로부터 앱을 실행하지 않는 한 신뢰가 유지됩니다. 사용자 수준 앱에서도 관리자 수준 프로세스에서 요청을 할 수 있으므로 실제로 신뢰할 수없는 앱을 실행하는 것은 많은 작업입니다.
bmike

@ghoppe, 기본값은 때때로 사용자가 아닌 앱 제작자에게 최적화되어 있기 때문입니다. 예를 들어 기본적으로 제공되는 모든 설치 정크를 설치하는 대신 본질적인 파일 만 가져 오도록 선택할 수 있습니다. 예를 들어 Mysql / Java 등을 다운로드 할 때
Pacerier

4

또는 시도해 볼 수 있습니다.

sudo installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/

또는

installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/

불행히도 작동하지 않았습니다. 여전히 "기본 경로에 설치 /"를 요구 한 다음 관리자 암호를 요청했습니다.
Thilo

1
비슷한 것으로 만든 디스크 이미지에 설치 hdiutil create -size 200m -fs HFS+ -volname Scratch scratch.dmg한 다음 파일을 원하는 위치에 복사 할 수 있습니다. 불행히도 설치 프로그램을 실행하려면 sudo가 필요합니다.
mjs

2
  1. 패키지를 성공적으로 열면 앞에서 언급 한 Archive.pax.gz 파일을 찾으십시오.

  2. 데스크탑에 원하는 이름을 지정하여 빈 폴더를 새로 만듭니다. 나중에 쉽게 입력 할 수 있도록 보통 "xxxx"또는 "zzzz"등으로 이름을 지정합니다.

  3. Archive.pax.gz 파일의 복사본을 바탕 화면의 새 폴더 "xxxx"로 Option- 드래그하십시오.

    파일이 읽기 전용 미디어 안에있는 경우 Option 키없이 "xxxx"폴더로 드래그하여 사본을 만들 수 있습니다.

  4. 이제 Terminal.app을 열고 명령 행에서 새 "xxxx"디렉토리로 이동하여 디렉토리의 내용을 나열하여 Archive.pax.gz 파일이 있는지 확인하십시오.

    cd ~/Desktop/xxxx
    ls -al
    
  5. 이제 두 가지 간단한 명령을 입력해야합니다.

    gunzip -v Archive.pax.gz
    

    Gzip은 "Archive.pax.gz"가 "Archive.pax"로 바뀌 었다고 알려줍니다.) 이제 디렉토리의 내용을 다시 나열하여이를 확인하십시오.

    pax -r -f Archive.pax
    

    (당신은 구분해야 -r-f같이 -rf작동하지 않습니다)

  6. 마지막으로으로 디렉토리 내용을 다시 나열하십시오 ls -al. Archive.pax 파일 외에도 이제 하나 이상의 디렉토리가 포함 된 디렉토리 계층이 표시됩니다.

    해당 디렉토리 계층의 파일은 "xxxx"디렉토리가 루트 디렉토리 "/"인 것처럼 OS X 설치 프로그램이 시스템에서 파일을 설치하는 위치를 보여줍니다.

  7. 그런 다음 원하는 경우 해당 파일을 대상에 수동으로 복사 할 수 있습니다.


3
다시 말해 cd ~/Desktop; cp Package.pkg/Contents/Archive.pax.gz .; gunzip -v Archive.pax.gz; pax -r -f Archive.pax. 해당 세부 수준 에서 모든 것을 설명 할 필요는 없습니다 .
Lri

5
Lri, 나는 어느 정도의 전문 지식을 가진 사용자라도 그것을 따르고 성공할 수 있도록 그 정도의 세부 사항을 주었다. 물론 암호 버전도 같은 결과를 얻을 수 있습니다. 그러나 나중에 명령 줄에 익숙하지 않은이 사용자를 읽고있는 다른 사용자는 절망적으로 사라질 수 있습니다.
stargood

1

pkgutil --expand 다음 오류로 인해 실패했습니다.

Error encountered while creating .. Error 17: File exists

그러나 xar대신 파일을 추출했습니다 .

xar -xvf foo.pkg


1
이것은 나를 위해 작동합니다. 그러나 pkgutil에 존재하지 않는 디렉토리를 대상으로 제공하면 17 오류가 사라집니다.
Michael

1

패키지 파일을 검사하는 가장 좋은 도구는 의심스러운 패키지 입니다. 또한 패키지에서 파일을 복사 할 수도 있습니다.

앱에서 필요한 모든 정보를 제공 할뿐만 아니라 패키지 파일을 선택하고 스페이스 바를 누르면 가장 중요한 정보가있는 창이 열립니다.


0

Unarchiver는 이 작업을 수행 할 수 있습니다; pkgutil --expand끌어서 놓기를 사용 하는 것과 동일 하지만 수행합니다 . 어쨌든 Apple의 Archive Utility.app를 대체하는 것이 좋습니다.


0

UnArchiver 가 트릭을 수행했습니다.

UnArchiver를 설치하고 UnArchiver를 엽니 다. 열려있는 동안-그 성가신을 두 번 클릭하십시오.MAMP_MAMP_3.5.pkg

다음 단계에 따라 MAMP를 설치하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.