programas pkg para online mac descomprimir archivos abrir macos pkg-file

macos - para - ¿Cómo desempaquetar y empacar el archivo pkg?



descomprimir pkg mac (5)

Tengo un archivo pkg creado por Install Maker para Mac. Quiero reemplazar un archivo en pkg. Pero debo hacer esto en el sistema Linux, porque esto es parte del proceso de descarga. Cuando el usuario comienza a descargar el servidor de archivos debe reemplazar un archivo en pkg. Tengo una solución para descomprimir un paquete y reemplazar un archivo, pero no sé cómo empacar de nuevo el paquete. http://emresaglam.com/blog/1035 http://ilostmynotes.blogspot.com/2012/06/mac-os-x-pkg-bom-files-package.html


@shrx Logré descomprimir BSD.pkg (parte del instalador de Yosemite) usando el comando "pbzx".

pbzx <pkg> | cpio -idmu

El comando "pbzx" se puede descargar desde el siguiente enlace:


Además de lo que dijo @abarnert, hoy tuve que descubrir que la utilidad cpio predeterminada en Mountain Lion usa un formato de archivo diferente por defecto (no estoy seguro de cuál), incluso con la página man indicando que usaría el viejo formato cpio / odc . Por lo tanto, si alguien tropieza con el cpio read error: bad file format mensaje de cpio read error: bad file format al intentar instalar sus paquetes manipulados, asegúrese de incluir el formato en el paso de volver a empacar:

find ./Foo.app | cpio -o --format odc | gzip -c > Payload


Es posible que desee buscar en mi tenedor de pbzx aquí: https://github.com/NiklasRosenstein/pbzx

Le permite transmitir archivos pbzx que no están envueltos en un archivo XAR. Lo he experimentado con las recientes imágenes de disco de las herramientas de línea de comandos de XCode (por ejemplo, 10.12 XCode 8).

pbzx -n Payload | cpio -i


Inspirado por la respuesta de abarnert , hice un script bash que descomprimirá un paquete llamado MyPackage.pkg en una subcarpeta llamada MyPackage_pkg y luego abrirá la carpeta en Finder. Elimine la última línea si no desea el paso Finder.

#!/usr/bin/env bash filename="$*" dirname="${filename//./_}" pkgutil --expand "$filename" "$dirname" cd "$dirname" tar xvf Payload open .

Uso:

pkg-upack.sh MyPackage.pkg

Advertencia: Esto no funcionará en todos los casos, y fallará con ciertos archivos, por ejemplo, los PKG dentro del instalador del sistema OSX. Si solo desea echar un vistazo dentro del archivo pkg y ver qué hay dentro, puede probar SuspiciousPackage (aplicación gratuita) y si desea realizar un desempaquetado serio, incluida la extracción de archivos específicos, eche un vistazo a Pacifist (nagware).


Los paquetes son solo archivos .xar con una extensión diferente y una jerarquía de archivos especificada. Desafortunadamente, parte de esa jerarquía de archivos es un archivo cpio.gz de las instancias reales, y generalmente eso es lo que desea editar. Y también hay un archivo Bom que incluye información sobre los archivos dentro de ese archivo cpio y un archivo PackageInfo que incluye información de resumen.

Si realmente solo necesitas editar uno de los archivos de información, es simple:

mkdir Foo cd Foo xar -xf ../Foo.pkg # edit stuff xar -cf ../Foo-new.pkg *

Pero si necesita editar los archivos instalables:

mkdir Foo cd Foo xar -xf ../Foo.pkg cd foo.pkg cat Payload | gunzip -dc |cpio -i # edit Foo.app/* rm Payload find ./Foo.app | cpio -o | gzip -c > Payload mkbom Foo.app Bom # or edit Bom # edit PackageInfo rm -rf Foo.app cd .. xar -cf ../Foo-new.pkg

Creo que puedes obtener mkbom (y lsbom) para la mayoría de las distribuciones de Linux. (Si puede obtener lo mismo, eso hace que las cosas sean aún más fáciles, pero no estoy seguro de si eso está disponible de forma casi omnipresente).