Tengo un archivo pkg creado por Install Maker para Mac. Quiero reemplazar un archivo en pkg. Pero debo hacer esto bajo el sistema Linux, porque esto es parte del proceso de descarga. Cuando el usuario comienza a descargar archivos, el servidor debe reemplazar un archivo en el paquete. Tengo una solución para descomprimir un paquete y reemplazar un archivo, pero no sé cómo empacar nuevamente en un paquete. http://emresaglam.com/blog/1035 http://ilostmynotes.blogspot.com/2012/06/mac-os-x-pkg-bom-files-package.html
99
Respuestas:
Los paquetes son simplemente 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 los archivos instalables reales y, por lo general, 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 resumida.
Si realmente solo necesita editar uno de los archivos de información, es simple:
Pero si necesita editar los archivos instalables:
Creo que puede obtener mkbom (y lsbom) para la mayoría de las distribuciones de Linux. (Si puede obtener lo mismo, eso facilitará aún más las cosas, pero no estoy seguro de que esté disponible de manera tan ubicua).
fuente
cat Payload | gunzip -dc |cpio -i
simplemente podría usartar xzvf Payload
cat Payload | gunzip -dc |cpio -i
:gunzip: unknown compression format
;0 blocks
. Estoy intentando abrirBSD.pkg
desde el paquete de instalación de OS X Yosemite.7z x <file>.pkg
y funcionó.Aquí hay un script bash inspirado en la respuesta de abarnert que descomprimirá un paquete nombrado
MyPackage.pkg
en una subcarpeta nombradaMyPackage_pkg
y luego abrirá la carpeta en Finder.Uso:
fuente
Además de lo que dijo @abarnert, hoy tuve que descubrir que la
cpio
utilidad predeterminada en Mountain Lion usa un formato de archivo diferente por defecto (no estoy seguro de cuál), incluso con la página de manual que indica que usaría el antiguo formato cpio / odc. Por lo tanto, si alguien se topa con elcpio read error: bad file format
mensaje mientras intenta instalar sus paquetes manipulados, asegúrese de incluir el formato en el paso de volver a empaquetar:fuente
@shrx He logrado descomprimir el 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:
fuente
Es posible que desee mirar en mi bifurcación de
pbzx
aquí: https://github.com/NiklasRosenstein/pbzxLe permite transmitir archivos pbzx que no están empaquetados en un archivo XAR. He experimentado esto con imágenes de disco de herramientas de línea de comandos de XCode recientes (por ejemplo, 10.12 XCode 8).
fuente