Pregunta

Tengo un programa (creado por un colega, portado de Linux pero recopila con éxito en Mac) que necesito implementar en muchas estaciones de trabajo MAC. Actualmente lo hacemos presionando archivos PKG (no los que creamos).

Mi pregunta general (que otros pueden encontrar las respuestas a lo útil) es ¿cómo voy a empaquetar un programa / script de línea de comandos en un archivo PKG que instala el programa? El método habitual para empaquetar un archivo .app parece documentado lo suficientemente documentado, pero hay detalles escasos sobre cómo tomar un programa arbitrario y envolverlo en un instalador de PKG.

Las páginas de hombre para PKGBUILD (etc.) hacen muchos supuestos, que ya ha construido una aplicación con Xcode, que tiene la intención de usar un .App y puede generar tipos, etc. Todo lo que queremos hacer. Se deja que el servidor MAC instale un programa que no sea de aplicación, y quiere usar PKGS.

Sería mejor si la solución fuera scriptable para que cada vez que actualicemos el programa, podemos crear fácilmente un nuevo archivo PKG. Si un recurso decente ya está explicando este proceso se puede vincular que, por supuesto, también funcionaría muy bien. La pregunta aquí: Hacer paquetes de instalación de OS X como un Pro-Xcode Developer ID Ready PKG no coincide con la necesidad de instalar simplemente un programa de CLI básico.

¿Fue útil?

Solución

Recomendaría paquetes .

Es guionable, por lo que puede convertirse en parte de su proceso de compilación y genera un buen MPKG para usted.

Lo estamos usando para automatizar la descarga de bibliotecas de terceros, y luego la invocación de hacer para compilar, así como la instalación de archivos compilados.

Como nota, aunque esto generará un MPKG, la mayoría de las distribuciones se realizan con imágenes de disco, por lo que también usamos HDIUTIL para crear una imagen escasa, copiar el MPKG en él, convertirlo a un DMG de solo lectura comprimido y luego distribuir eso.

Un ejemplo de este procedimiento sería:

1) Crear un archivo DMG SPARSE RW.

hdiutil create -size 100M -type SPARSE -volname "MyInstaller" -fs HFS+ MyInstaller.dmg.sparseimage

2) adjuntar a la imagen. Note el disco y el nombre de volumen montado de la salida (EX. / Dev / disk2s1 y / volúmenes / myinstaller)

hdiutil attach MyInstaller.dmg.sparseimage

3) Copiar en el instalador de MPKG

cp -R Packages/build/My_Packages.mpkg /Volumes/MyInstaller/

4) Detech de la imagen.

hdiutil detach -force {mounted disk} (ex. hdiutil detach -force /dev/disk2s1)

5) Crear imagen de solo lectura comprimida de la imagen escasa grabable.

hdiutil convert "MyInstaller.dmg.sparseimage" -format UDZO -o "MyInstaller.dmg" -ov -imagekey zlib-level=9

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top