0 votos

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

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

Trabajo con mucho software científico en Mac OS X (actualmente 10.7, pero también 10.6). Para maximizar el rendimiento y acceder a las últimas funciones, a menudo es preferible compilar el software desde el código fuente.

Sin embargo, hacerlo es engorroso y puede dar lugar a problemas de configuración. Como yo también desarrollo en Linux, miré todas las sugerencias en la sección Unix & Linux pregunta "Cómo compilar e instalar programas desde el código fuente" y el Pregunta sobre Unix y Linux ¿Dónde debo colocar el software que compilo a partir del código fuente? para obtener orientación. Estas preguntas son un buen punto de partida, pero no me queda claro cómo puedo gestionar las dependencias y la configuración fácilmente. Por ejemplo, si construyo la rama de desarrollo de NumPy desde el código fuente, ¿cómo debo detectar, gestionar y resolver las dependencias para poder gestionar mi configuración? Un gestor de paquetes como MacPorts, Homebrew o Fink es una opción, pero si sigo ese camino para gestionar mi configuración, ¿cómo compilo los paquetes para poder usar esos gestores de paquetes para gestionar las dependencias? ¿Hay algo como checkinstall para estos gestores de paquetes? Mi objetivo aquí es hacer que la instalación y desinstalación de software sea relativamente fácil sin saturar mi configuración.

También me gustaría que mi configuración fuera reproducible. Con esto quiero decir que me gustaría establecer un flujo de trabajo para instalar software en mi máquina de modo que pudiera repetirlo exactamente en una nueva instalación del sistema operativo. ¿Existe alguna práctica recomendada para ello? Cuando se trata de paquetes estándar en un gestor de paquetes Linux, el método más simple para repetir una instalación de software es hacer un script que contenga el apropiado apt-get install <package> (o equivalentes). Sin embargo, cuando se instala software desde el código fuente, veo que este método se complica mucho. ¿Hay alguna forma mejor?

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

2voto

yoliho Puntos 340

Creo que un gestor de paquetes hará la mayor parte de lo que necesitas. Voy a mostrar macports ya que es el que conozco, pero los otros tienen una funcionalidad similar.

Si utilizas los paquetes estándar, es decir, los más actualizados, macports se encargará de todas las dependencias por ti. Por ejemplo, al compilar scipy sabe que primero tiene que compilar numpy y lo hará. También puedes instalar un puerto fácilmente - macports te dirá si algún puerto depende de él. Si un puerto es cambiado, entonces macports actualizará los puertos que dependen de él.

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

Puede hacer un seguimiento de lo que ha instalado de la siguiente manera port list (también llamadas más avanzadas para minimizar el número de comandos necesarios. Los cambios realizados estarán en su repositorio local Portfile que tendrá que ser respaldado y un pequeño cambio en la configuración macports defualt hecho.

1voto

Philzen Puntos 116

Parece que en realidad hay dos preguntas aquí:

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

En cuanto a la distribución de fuentes, parece que GNU autoconf es lo que está buscando.

Para precompilados .app la instalación desde la línea de comandos es tan sencilla como

cp -R MyApp.app /Applications/

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

Para precompilados .pkg la instalación desde la línea de comandos es

installer -package MyApp.pkg -target /

Ambos comandos deben ir precedidos de sudo si la instalación requiere privilegios administrativos. En caso de duda, suponga que sí:

sudo installer -package MyApp.pkg -target /

Consejo extra para el instalador: puedes convertir cualquier carpeta en un .dmg así:

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

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

Consejo de bonificación avanzado: Busque en PAM la utilidad PERL Mac::Finder::DSStore. Te permite editar el archivo .DS_Store de la carpeta de plantillas de tu .dmg para que puedas colocar iconos y gráficos con precisión.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X