Necesitamos crear paquetes Mac sobre la marcha y sería conveniente si hay una manera de crear lo mismo en plataformas Windows o Linux en lugar de usar PackageMaker en Mac. ¿Algunas ideas?PackageMaker para crear paquetes Mac en Windows/Linux
Respuesta
No, no se puede. Podría hacer un inicio de sesión ssh con scripts y activarlo utilizando osascript para que pueda automatizar toda la construcción desde otro lugar, pero solo puede construir para una Mac en una Mac.
Usted podría hacer todas las compilaciones en una Mac, sin embargo. Es mucho más fácil de esa manera.
No estoy de acuerdo con que esto sea imposible. Ciertamente podría hacer todo lo que hace PackageMaker en OSX en otro sistema operativo. Es sólo una cuestión de crear estos archivos:
Contents/
Archive.bom
Archive.pax.gz
Info.plist
PkgInfo
Resources/
TokenDefinitions.plist
package_version
en.lproj/
Description.plist
Los archivos plist pueden ser fácilmente creados en Python con plistlib que es ahora estándar en Python. The .bom y .pax.gz son un poco más complicados, pero el resto son todos archivos de texto.
La parte .gz del archivo .pax.gz significa que está comprimida con gzip. Esto está disponible en Windows y Linux.
De acuerdo con la pax man page un archivo pax en realidad puede estar en varios formatos de archivo diferentes, incluyendo cpio y alquitrán, también es fácil de hacer en Linux o Windows. PackageMaker parece crear archivos comprimidos cpio, al menos en 10.6.
El archivo .bom es una lista de todos los archivos del paquete y sus tamaños. Probablemente sea la parte más difícil de crear fuera de OSX. BOM significa Bill Of Materials y proviene del sistema operativo NextSTEP. No he podido encontrar mucha información sobre el formato de lista de materiales, pero aquí hay algunas pistas: NextSTEP bom man page, OSX bom man page
Editar: Ahora he implementado una versión de lsbom, que he colocado en el dominio público. El código se puede encontrar en Subversion aquí: https://cauldrondevelopment.com/svn/osxbom/trunk
Quizás alguien también puede implementar mkbom y luego habrá una solución completa. Consulte el archivo de encabezado bom.h en el código anterior para obtener una descripción algo completa del formato de archivo BOM.
Edición 2: Una versión de trabajo del mkbom ahora se ha implementado y se puede encontrar aquí: https://github.com/hogliux/bomutils
junto con un tutorial detallado sobre cómo crear un instalador en Linux: http://hogliux.github.io/bomutils/tutorial.html
También vea la pregunta how-to-build-native-mac-os-x-installer-on-a-non-mac-platform.
- 1. Mac PackageMaker - Permitir Reubicación Cuestiones
- 2. Cómo crear paquetes .deb en Mac OS X
- 3. Mac PackageMaker - Reinicio aleatorio del propietario/grupo/perms
- 4. Usando PackageMaker para ejecutar un script en la instalación
- 5. Mac PackageMaker "Destination Select" paso A) omitir B) Opción desactivada permanentemente
- 6. Cómo olfatear paquetes en Mac OS 10.7 Lion?
- 7. Crear una aplicación multiplataforma para Windows, Mac OS X
- 8. ¿Cómo crear un servicio de Windows para Mac OS X?
- 9. Cómo crear un paquete .app mono para Mac OS
- 10. Cómo crear una aplicación de barra de menú para Mac
- 11. R Paquetes para Limnology
- 12. ¿Cómo puedo crear un paquete Mac en Linux? (Problema con el archivo BOM)
- 13. ¿Paquetes en PHP?
- 14. Crear un directorio secundario de paquetes de sitio (y cargar paquetes desde archivos .pth)
- 15. Python 3 setuptools en mac
- 16. Crear rama en las versiones (cliente de Mac Subversion)
- 17. Cómo crear un archivo MD5 en una Mac
- 18. Paquetes de optimización para R
- 19. Cómo iniciar la aplicación después de la instalación con PackageMaker
- 20. nodeJS + jslint: dónde instalar para mac OSX?
- 21. Herramientas Flex para Mac
- 22. ¿Cómo crear un programa para enumerar todos los dispositivos USB en una Mac?
- 23. crear un atajo de teclado para una función R en mac?
- 24. ¿Cómo crear diferentes archivos de registro para diferentes paquetes utilizando el mismo log4j logger?
- 25. ¿Cree R paquetes binarios para Linux que se puedan instalar en diferentes máquinas?
- 26. Crear una clase común xsd generada para ser utilizada por otros paquetes
- 27. Enlace estático wxHaskell en Mac OS X
- 28. Asignación entre paquetes Oracle y paquetes Java
- 29. ¿Cómo no comprometerse en github para mac?
- 30. Compilación cruzada en mac para Windows
Parece que alguien ya ha comenzado los archivos BOM de ingeniería inversa: http://hintsforums.macworld.com/archive/index.php/t-66174.html – jcoffland