77 votos

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

Algunas aplicaciones vienen en archivos .pkg, y te piden la contraseña de administrador, aunque todo lo que hacen es copiar el binario a /Applications.

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

¿Hay alguna manera de abrir manualmente el archivo .pkg y sacar la aplicación? Hay PackageMaker en las Herramientas de Desarrollador, pero no parece que lo haga (produjo alguna salida que me hace pensar que realmente no hay scripts u otras piezas en el instalador, sólo la aplicación).

2 votos

Prueba con unpkg .

86voto

Raim Puntos 306

Si haces clic con el botón derecho del ratón y haces clic en Mostrar el contenido del paquete obtendrá unos cuantos archivos en una carpeta de contenidos. (Nota: si no ves Mostrar el contenido del paquete tendrá que abrir Terminal.app y ejecutar pkgutil --expand mystubbornpackage.pkg path/to/expand )

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

La mayoría de los paquetes (estoy usando Office 2008 aquí) también tienen un archivo Archive.pax.gz, este contiene todo lo que Installer moverá en las diversas carpetas como se indica en el archivo BOM. La mayoría de las aplicaciones parecen tener el .app en este archivo, aunque arrastrarlo a /Applications podría dejarlo sin los marcos que necesita para funcionar; 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 se pulsa Cmd-L (o elegir el Registro del instalador de la opción Ventana puede verlos tal y como se generan. Esto puede darte una idea de qué cosas extra está instalando, al menos es algo más de información si no te fías del paquete.

5 votos

No me aparece "Mostrar el contenido del paquete" en el menú del botón derecho.

4 votos

@Thilo Si no te aparece la opción de "Mostrar el contenido del paquete" entonces el archivo pkg fue creado como archivo plano. Apple introdujo los pkg's de estilo plano hace un par de años

0 votos

@nombredeusuario: ¿Y cómo los abro?

36voto

Robin Robinson Puntos 1031

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

3 votos

+1. Con esto pude verificar rápidamente que sólo está el binario de la aplicación, sin otras cosas del sistema.

7voto

Scott Saad Puntos 247

Si no confías en el instalador lo suficiente como para dar permisos administrativos para instalar, entonces ¿por qué confías en el binario en /Applications?

Pacifista le permitirá buscar en los archivos del paquete. Esto no necesariamente le permite "sacar el binario".

1 votos

Tampoco me fío del binario. Quiero que nunca jamás se le den permisos administrativos (que de todas formas no debería necesitar).

3 votos

Mientras no ejecutes la aplicación desde un usuario que tenga privilegios de administrador, tu confianza se mantendrá. No olvides que incluso una app de nivel de usuario puede hacer peticiones desde procesos de nivel de administrador, así que es mucho trabajo ejecutar apps en las que no confías realmente.

0 votos

@ghoppe, es porque los valores por defecto a veces no están optimizados para los usuarios sino para los creadores de las aplicaciones. Por ejemplo, en lugar de instalar toda la basura de instalación que viene por defecto, puedo seleccionar para tomar sólo los archivos que son de la esencia. Por ejemplo, al descargar Mysql / Java / etc.

4voto

Ray Hayes Puntos 127

También puedes probar,

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

O

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

0 votos

Desgraciadamente, eso no ha funcionado. Sigue insistiendo en "Instalar en la ruta base /" y luego pide la contraseña de administrador.

1 votos

Es posible instalar en una imagen de disco creada con algo como hdiutil create -size 200m -fs HFS+ -volname Scratch scratch.dmg y luego copie los archivos en las ubicaciones que prefiera. Desgraciadamente, sigue necesitando el sudo para ejecutar el instalador.

0 votos

Me da error installer: Error - This version of OS X 10.11 cannot be installed on this computer.

2voto

Artur Puntos 6
  1. Cuando consiga abrir el paquete, busque el archivo Archive.pax.gz mencionado anteriormente.

  2. Cree una nueva carpeta vacía en su escritorio con el nombre que desee. Yo suelo nombrarlas como "xxxx" o "zzzz", etc. para facilitar la escritura más adelante.

  3. Arrastre una copia del archivo Archive.pax.gz a la nueva carpeta "xxxx" de su escritorio.

    Si el archivo está dentro de un soporte de sólo lectura, puedes simplemente arrastrarlo a tu carpeta "xxxx" sin la tecla Opción para crear una copia.

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

    cd ~/Desktop/xxxx
    ls -al
  5. Ahora hay que introducir dos sencillos comandos:

    gunzip -v Archive.pax.gz

    Gzip le dirá que ha sustituido "Archive.pax.gz" por "Archive.pax") Ahora vuelva a listar el contenido del directorio para confirmarlo.

    pax -r -f Archive.pax

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

  6. Por último, 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 ilustrarán donde el instalador de OS X instalaría los archivos en su sistema como si su directorio "xxxx" fuera el directorio root "/".

  7. Si lo desea, puede copiar manualmente esos archivos a sus destinos.

3 votos

En otras palabras cd ~/Desktop; cp Package.pkg/Contents/Archive.pax.gz .; gunzip -v Archive.pax.gz; pax -r -f Archive.pax . No es necesario describir todo en que nivel de detalle.

6 votos

Lri, di esa cantidad de detalles para que los usuarios de cualquier nivel de experiencia pudieran seguirlo y tener éxito. Por supuesto, tu versión críptica conseguiría los mismos resultados. Sin embargo, otros usuarios que lean esto en el futuro y que no estén familiarizados con la línea de comandos podrían estar irremediablemente perdidos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X