¿Cómo puedo abrir un archivo .pkg manualmente?

60

Algunas aplicaciones vienen en archivos .pkg y le piden su contraseña de administrador, incluso si todo lo que hacen es copiar el binario en / Aplicaciones.

Me gusta tener mis aplicaciones en ~ / Aplicaciones, y no me gusta dar permisos administrativos a cualquier cosa que no sea de la nave nodriza.

¿Hay alguna manera de que pueda abrir manualmente el archivo .pkg y sacar la aplicación? Hay PackageMaker en las Herramientas de desarrollo, pero eso no parece hacerlo (produjo algún resultado que me hace pensar que realmente no hay scripts u otras piezas en el instalador, solo la aplicación).

    
pregunta Thilo 09.06.2011 - 16:23

9 respuestas

65

Si haces clic con el botón derecho y si haces clic en Mostrar contenido del paquete , obtendrás algunos archivos en una carpeta de contenido. (Nota: si no ve Mostrar contenido del paquete , deberá abrir Terminal.app y ejecutar pkgutil --expand mystubbornpackage.pkg path/to/expand )

Uno es un archivo de lista de materiales (lista de materiales) que se convierte en un recibo que puede usar para desinstalar la aplicación. Este archivo contiene un manifiesto de todo lo que se instalará el paquete y dónde; para leer este archivo, use lsbom comando.

La mayoría de los paquetes (estoy usando Office 2008 aquí) también tienen un archivo Archive.pax.gz, que contiene todo lo que el instalador moverá a las diversas carpetas como se indica en el archivo de la lista de materiales. La mayoría de las aplicaciones parecen tener la .app en este archivo, aunque arrastrarlo a / Aplicaciones podría dejarlo sin los marcos que necesita para ejecutar; así que tendrás que averiguar qué otros archivos necesita y dónde los necesita para que funcione.

Además, todos los paquetes pueden registrar mensajes, si presiona Cmd-L (o elige la opción Registro del instalador en el menú Ventana , puedes verlos a medida que se generan. Esto podría darte una idea de qué cosas adicionales se están instalando, al menos es algo más de información si no confías en el paquete.

    
respondido por el Mathew Hall 09.06.2011 - 17:55
33

Además de lo que dijo Matthew Hall, también puede pulsar Cmd-I en la aplicación del instalador para ver qué archivos instalará el instalador y dónde.

    
respondido por el CajunLuke 09.06.2011 - 18:28
7

Si no confía en el instalador lo suficiente como para otorgarle permisos administrativos, ¿por qué confía en el binario en / Aplicaciones?

Pacifist le permitirá buscar en los archivos del paquete. Esto no necesariamente le permite simplemente "extraer el binario".

    
respondido por el ghoppe 09.06.2011 - 16:34
4

Alternativamente puedes intentarlo,

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

O

installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/
    
respondido por el karmatic 09.06.2011 - 18:01
2
  1. Una vez que haya logrado abrir el paquete, busque el archivo Archive.pax.gz que se mencionó anteriormente.

  2. Crea una nueva carpeta vacía en tu escritorio con el nombre que desees. Por lo general, los llamo "xxxx" o "zzzz", etc. para facilitar la escritura más tarde.

  3. Opción: arrastre una copia del archivo Archive.pax.gz a esa nueva carpeta "xxxx" en su escritorio.

    Si el archivo está dentro de un medio de solo lectura, puede arrastrarlo a su carpeta "xxxx" sin la tecla Opción para crear una copia.

  4. Ahora abra Terminal.app y en la línea de comandos navegue a su nuevo directorio "xxxx" y haga una lista del contenido del directorio para confirmar que su archivo Archive.pax.gz está allí:

    cd ~/Desktop/xxxx
    ls -al
    
  5. Ahora hay dos comandos simples para ingresar:

    gunzip -v Archive.pax.gz
    

    Gzip te dirá que ha reemplazado "Archive.pax.gz" con "Archive.pax") Ahora vuelve a listar el contenido del directorio para confirmar esto.

    pax -r -f Archive.pax
    

    (Debe separar -r y -f , ya que -rf no funcionará)

  6. Finalmente, vuelva a listar el contenido del directorio con ls -al . Además de su archivo Archive.pax, ahora verá una jerarquía de directorios que probablemente contenga uno o más directorios.

    Los archivos en esa jerarquía de directorios le mostrarán dónde el instalador de OS X instalará los archivos en su sistema como si su directorio "xxxx" fuera el directorio raíz "/".

  7. Luego puedes copiar manualmente esos archivos a sus destinos si lo deseas.

respondido por el stargood 13.08.2011 - 15:09
1

pkgutil --expand me estaba fallando con el siguiente error:

Error encountered while creating .. Error 17: File exists

Pero logré extraer los archivos con xar en su lugar:

xar -xvf foo.pkg

    
respondido por el gregschlom 20.12.2017 - 05:14
1

La mejor herramienta para inspeccionar archivos de paquetes es Paquete sospechoso . También le permite copiar archivos del paquete.

No solo proporcionará toda la información que necesita en la aplicación, sino que también instalará un complemento Quick Look, por lo que al seleccionar el archivo del paquete y golpear la barra espaciadora se abrirá una ventana con la información más esencial.

    
respondido por el Tony Williams 20.12.2017 - 08:14
0

El Unarchiver puede hacer esto; hará lo mismo que pkgutil --expand pero usando arrastrar y soltar. Es un mejor reemplazo para Archive Utility.app de Apple de todos modos.

    
respondido por el Quinn Comendant 15.11.2013 - 21:37
0

UnArchiver hizo el truco.

Instala UnArchiver, abre UnArchiver; mientras está abierto: haz doble clic en ese molesto MAMP_MAMP_3.5.pkg

Sigue los pasos para instalar MAMP.

    
respondido por el Blll 12.06.2016 - 21:23

Lea otras preguntas en las etiquetas