¿Cómo debo instalar el software desde la fuente para poder hacer que mi configuración sea manejable y reproducible?

1

Pregunta relacionada en Unix / Linux: ¿Cómo debo instalar el software desde la fuente para poder hacer que mi configuración sea manejable y reproducible? Sin embargo, he adaptado más esta pregunta al ecosistema de Mac OS X.

Trabajo con una gran cantidad de software científico en Mac OS X (actualmente 10.7, pero también 10.6). Para maximizar el rendimiento y obtener acceso a las últimas funciones, a menudo es preferible compilar el software desde la fuente.

Sin embargo, hacerlo es complicado y puede llevar a problemas de configuración. Como también me desarrollo en Linux, miré todas las sugerencias en Unix & La pregunta de Linux "Cómo compilar e instalar programas desde la fuente" y Unix & Pregunta de Linux ¿Dónde debería colocar el software que compilo de la fuente? para obtener una guía. Estas preguntas son un buen lugar para comenzar, pero no me queda claro cómo puedo administrar las dependencias y la configuración fácilmente. Por ejemplo, si compilo la rama de desarrollo de NumPy desde la fuente, ¿cómo debo detectar, administrar y resolver las dependencias para poder administrarlas? mi configuracion? Un administrador de paquetes como MacPorts, Homebrew o Fink es una opción, pero si voy por esa ruta para administrar mi configuración, ¿cómo compilo los paquetes para poder usar esos administradores de paquetes para administrar las dependencias? ¿Hay algo así como checkinstall para estos administradores de paquetes? Mi objetivo aquí es hacer que la instalación y la desinstalación del software sean relativamente sencillas sin tener que saturar mi configuración

También me gustaría hacer que mi configuración sea reproducible. Con eso, quiero decir que me gustaría configurar un flujo de trabajo para instalar el software en mi máquina para poder repetirlo exactamente en una instalación nueva del sistema operativo. ¿Hay una mejor práctica para eso? Cuando se trata de paquetes estándar en un administrador de paquetes de Linux, el método más simple para repetir una instalación de software es hacer un script que contenga el apt-get install <package> apropiado (o equivalentes). Sin embargo, al instalar software desde la fuente, pude ver que este método se complicaba mucho. ¿Hay una mejor manera?

Además, para Mac OS X, muchas aplicaciones se instalan copiando un archivo *.app en /Applications , o haciendo doble clic en un archivo *.pkg . ¿Puedo instalarlos desde una línea de comandos y hacer un script de la instalación de estos paquetes? Además, ¿hay una buena manera de desinstalar estos paquetes?

    
pregunta Geoff Oxberry 11.06.2012 - 02:43

2 respuestas

2

Creo que un administrador de paquetes hará la mayor parte de lo que necesita. Mostraré macports, ya que es el que conozco, pero los otros tienen una funcionalidad similar.

Si usa los paquetes estándar, es decir, los que están empaquetados y actualizados, macports hará todas las dependencias por usted. p.ej. La construcción de Scipy sabe que primero debe construir Numpy y lo hará. También puede instalar un puerto fácilmente: macports le dirá si algún puerto depende de él. Si se modifica un puerto, macports actualizará los puertos en función de él.

También puede cambiar manualmente el puerto para tratar con las versiones de desarrollo de numpy, por ejemplo. Deberá producir una copia del archivo de puerto y editar que vea guía de macports . Lo mínimo sería cambiar la versión y las reglas de descarga para obtener un código diferente, pero puede incluir muchos parches para funciones específicas de OSX.

Puede realizar un seguimiento de lo que ha instalado con port list (también llamadas más avanzadas para minimizar la cantidad de comandos que necesita. Los cambios que realice se guardarán en su repositorio de Portfile local, que deberá ser respaldado y pequeño cambio a la configuración de macports defualt realizada.

    
respondido por el Mark 11.06.2012 - 11:08
1

Parece que realmente hay dos preguntas aquí:

  • Cómo configurar automáticamente el código fuente distribuido.
  • Cómo instalar paquetes de aplicaciones precompiladas desde la línea de comandos.

Para la distribución de origen, suena como GNU autoconf es lo que está buscando.

Para los paquetes .app precompilados, la instalación de la línea de comandos es tan simple como

cp -R MyApp.app /Applications/

Esto supone 10.5 o posterior, donde las herramientas de la línea de comandos son totalmente compatibles con OS X.

Para los paquetes .pkg precompilados, la instalación de la línea de comandos es

installer -package MyApp.pkg -target /

Los dos comandos anteriores deben ir precedidos por sudo si la instalación requerirá privilegios administrativos. En caso de duda, asuma que:

sudo installer -package MyApp.pkg -target /

Sugerencia para el instalador de bonificación: puede convertir cualquier carpeta en un .dmg como este:

hdiutil create -ov -format UDBZ -noscrub -srcfolder MyAppsFolder/ MyAppImage.dmg

Incluya un enlace simbólico a /Applications/ en esa carpeta, junto a su .app , y los usuarios finales pueden arrastrar y soltar.

Sugerencia de bonificación avanzada: busque en PAM la utilidad PERL Mac :: Finder :: DSStore. Esto te permite editar el archivo .DS_Store en la carpeta de plantillas de tu .dmg para que puedas colocar con precisión iconos y gráficos.

    
respondido por el Seth Noble 11.06.2012 - 03:24

Lea otras preguntas en las etiquetas