¿Es mejor usar MacPorts o simplemente usar una VM de Ubuntu para herramientas / servicios locales cuando se desarrolla en una Mac?

3

Como desarrollador (principalmente aplicaciones web basadas en JVM), necesito usar muchas herramientas y servicios diferentes, como Redis, RabbitMQ, MySQL, git, mercurial, etc. Habiendo trabajado en un entorno Linux donde tales herramientas están solo a apt-get de distancia, y en un mundo de Windows donde solo ejecuto lo que necesito en una VM VMware Workstation VM (también conocido como apt-get away + vm overhead), estoy un poco perdido ahora que estoy con la esperanza de alejarme de Windows y entrar en el ecosistema de Mac para mi vida informática.

He leído sobre MacPorts vs. Fink vs. Homebrew y me pareció un poco confuso en cuanto a cuál se adapta mejor a mis necesidades, aunque creo que MacPorts es la opción más flexible de las tres.

Sin embargo, como estoy acostumbrado a ejecutar lo que necesito en una máquina virtual, ¿hay algo en contra de hacerlo al usar OS X? ¿Cuáles son los compromisos entre ir con MacPorts para instalar cosas directamente en lugar de usar una máquina virtual de Ubuntu (a través de VMWare Fusion) para alojar las herramientas / servicios que necesito?

En particular, me preocupa el uso, la capacidad de mantenimiento y la facilidad de uso del disco más de lo que me preocupa el rendimiento. En otras palabras, esto es lo que me importa (en orden de preferencia):

  1. Facilidad de uso : ¿Qué tan fácil es desarrollarlo en Mac y usar las herramientas / servicios?
  2. Uso del disco : la cantidad de espacio en disco que se ocupa. Los macbooks más nuevos usan SSD y el espacio es un bien alto.
  3. Capacidad de mantenimiento : qué trabajo implica mantener los paquetes actualizados, agregar nuevos paquetes y eliminar los antiguos
  4. Actualidad : ¿Qué tan actualizadas están las herramientas / servicios que están disponibles?
  5. Rendimiento : qué tan rápido se ejecutan las cosas, en particular los servicios

Mi instinto dice que instalar las herramientas de desarrollo reales, como Mercurial, git, etc. directamente a través del método recomendado por el proyecto, y luego instalar los componentes del lado del servidor como MySQL, Redis, RabbitMQ, etc. en una máquina virtual La mejor ruta, pero ¿cuáles son las ventajas y desventajas de hacer esto en lugar de ir con algo como MacPorts?

Nota: Me doy cuenta de que esta es una pregunta centrada en la programación, pero el problema central es que OS X es diferente de Windows y * nix cuando se trata de configurar un entorno de desarrollo y no estoy seguro cómo navegar en estas aguas específicas de OS X.

    
pregunta cdeszaq 03.10.2012 - 19:49

2 respuestas

3

En última instancia, esta es una pregunta bastante personal, que dependerá mucho de tu flujo de trabajo y tus preferencias, pero agregaré lo que pueda.

Mi instinto está en línea con el suyo: instale las herramientas que necesita para escribir su código de forma nativa y use una máquina virtual para su entorno de servidor. Mi razonamiento sobre esto es que usted (presumiblemente) compró una Mac para usarla, y hacer la mayor parte de su trabajo de desarrollo en una máquina virtual de Linux parece un poco de desperdicio. Use las herramientas nativas para poder usarlas con cualquier otro software OS X que desee.

De manera similar, aunque probablemente podría hacer un trabajo decente imitando su entorno de implementación en OS X, usar una VM es la mejor manera de garantizar la compatibilidad exacta (también facilita la administración de diferentes versiones de sus diversos programas, si necesita trabajar con un entorno de producción y una futura actualización del servidor, etc.).

Facilidad de uso

Creo que las herramientas de OS X + el enfoque de VM de prueba gana, ya que tener a todas sus herramientas de desarrollo accesibles sin la necesidad de una VM es lo más sin fricciones, y la VM de prueba puede actuar de manera independiente. OS X es BSD en el núcleo, y como tal, hay una gran integración con la línea de comandos, particularmente en herramientas de tipo desarrollador como editores de texto.

Espacio en disco

Las máquinas virtuales obviamente ocuparán más espacio que la instalación de las herramientas de forma nativa, pero Ubuntu parece ser capaz de ejecutarse en una huella bastante pequeña (la instalación de CLI solo en mi servidor doméstico se ejecuta alrededor de 3-4 GB, creo, y que probablemente podría reducirse si lo intentara). Así que, a menos que estés realmente abarrotado de espacio, no me preocuparía demasiado a menos que necesites muchas máquinas virtuales diferentes.

Capacidad de mantenimiento

Creo que definitivamente querrás ir con un administrador de paquetes, ya sea MacPorts o una de las otras opciones. No tengo experiencia con ninguno de ellos, pero sé que MacPorts (y probablemente Homebrew y los demás) tienen comandos de actualización de una línea, similares a apt .

Actualidad

Esto depende mucho de cómo elija instalar su software y qué software está usando. Apple tiende a no actualizar las herramientas CLI que incluye muy a menudo (a menudo solo con las principales versiones del sistema operativo), por lo que si confía en una versión particular de algo que, de lo contrario, está incorporado, es posible que desee instalar una versión más nueva (lo que debería hacer instalando en una nueva ubicación, sin sobrescribir la versión del sistema). Mi mejor consejo aquí es hacer un poco de Google y averiguar qué tan actualizados están los paquetes que son importantes para usted en cada administrador de paquetes.

Rendimiento

El rendimiento de la máquina virtual en cualquier Mac reciente debería ser bastante bueno, pero obviamente depende de qué tan intensivas sean las tareas que se ejecutan en el SO huésped. A menos que el componente del lado del servidor sea bastante pesado (y no veo por qué estaría bajo una carga de prueba de desarrollo), debería ver un rendimiento bastante bueno, especialmente si su VM no ejecuta una GUI.

De todos modos, esa es mi opinión, quizás otros puedan participar con opiniones más específicas sobre Macports en comparación con otras opciones, u otras tomas en VM versus nativo.

    
respondido por el robmathers 03.10.2012 - 21:13
1

He usado ambos enfoques en diferentes circunstancias. Si bien MacPorts es una buena manera de obtener las últimas versiones de varias herramientas de GNU (por ejemplo, Bash 4.x, cuando Apple aún ofrece 3.x), tiende a confundirse con el tiempo, no confiaría en ello exclusivamente.

Sin embargo, la mayoría de las pilas de código abierto proporcionan instaladores binarios fáciles de usar para Mac. Tengo buena experiencia con distribuciones de Git, PostgreSQL y Apache. Tengo una buena experiencia en el uso de ellos para el desarrollo basado en web. Los scripts de Python generalmente se ejecutan sin modificaciones. He desarrollado una aplicación web en Python + PostgreSQL en mi Macbook y simplemente la ejecuté sin modificaciones en la máquina de producción de Linux. Lo mismo para varios scripts en el trabajo que envuelven la gestión de credenciales ssh dentro de las clases de Python, etc. - Ssh es lo suficientemente uniforme.

Necesito ejecutar máquinas virtuales de Ubuntu para algunos propósitos. Principalmente hago eso en los servidores VMWare porque mi trabajo Macbook Air no es adecuado para grandes compilaciones y transferencias de datos. Sin embargo, he podido exportarlos desde VMWare como OVF e importarlos a VirtualBox en la Mac. Una máquina virtual de Ubuntu sin un servidor X que se ejecute en Mac puede ser muy liviana con menos de 10 GB de espacio en disco y 1 GB de RAM. Mi solución para cargas de trabajo intensivas de E / S es crear una partición separada en la Mac (completamente sin problemas, no es necesario reiniciar) y asignarla a la VM de Ubunbu como disco sin formato, luego particionarla con Linux fdisk y montar las particiones según sea necesario .

Algunas recomendaciones de herramientas para Mac:

  • SourceTree como una GUI de Git.
  • iTerm2 como un emulador de terminal
  • Textwrangler como un editor de texto pequeño y elegante que se invoca fácilmente desde el línea de comando.
  • Xquarz, el servidor X para Mac, ya no se incluye con OS / X 10.8, simplemente instálelo por separado.
respondido por el YitzikC 22.03.2013 - 11:00

Lea otras preguntas en las etiquetas