¿Qué distribución de Linux es mejor para los desarrolladores de software?

Originalmente respondido: ¿Debería probar Linux para el código? Si es así, ¿qué distribución es la mejor?

Estoy leyendo esto como “¿Debería probar Tokio por comida?” y no me funciona

¿Qué distribución es la mejor?

Tengo uno en mente. Llegaremos en un minuto. Pero primero…

Cual computadora?

Sugeriría comenzar con la computadora que tiene. Si es posible, descargue un emulador de máquina virtual gratuito (VirtualBox o QEMU o similar). Esto te permitirá probar el mundo de Linux sin separarte del mundo con el que ya estás familiarizado.

VirtualBox 5.0 para Windows. Dentro de VirtualBox se está ejecutando Ubuntu 14.04.

El software Virtual Machine le permitirá crear una nueva “computadora” dentro de una computadora. Obtendrá una ventana que se parece a lo que vería en el monitor de una computadora dedicada a ejecutar Linux, pero aún así podría ‘salir’ de esa ventana para revisar su correo electrónico, usar la web, leer Quora, etc.

Esta es una ventaja sobre el arranque dual (¿duelo?) Donde entrar en el mundo Linux requiere dejar completamente atrás el mundo familiar. La desventaja de la solución ‘máquina dentro de una máquina’ es que el rendimiento de cada virtual (y el host) está limitado por la potencia subyacente del hardware real de la computadora. Por ejemplo, es probable que desee utilizar una máquina con suficiente memoria para permitir 500 Mb (medio gigabyte) para cada instancia de máquina virtual que inicie, y una CPU fabricada en algún momento de este milenio (2000 o posterior).

¿Pero qué distribución?

Hay muchas opciones, ¿eh? Aquí hay una forma de descomponerlo. La mayor parte de lo que aprenda sobre cualquier distribución de Linux también será aplicable a todos los demás. Entonces, en ese sentido, no hay mucha diferencia. Pero hay ciertas áreas para prestar atención:

  • Hardware:

Querrá atenerse a las distribuciones que se crean para el mismo procesador en su host. Esto casi siempre es Intel. Pero si tiene una computadora basada en PPC (o alguna otra plataforma), a menudo hay una solución de Linux.

  • Gerente de empaquetación

Un administrador de paquetes es la pieza de software que le permite agregar un nuevo software a su computadora. En el mundo de Apple, llamaríamos a esto la App Store. Las distribuciones de Linux generalmente se construyen alrededor de uno de los dos administradores de paquetes, ya sea basado en Debian (apt) o basado en Red Hat (yum, anteriormente rpm).

Hay envoltorios GUI para estos gestores de paquetes (para la multitud del Tour-Group) …

El Centro de software de Ubuntu, sección Herramientas para desarrolladores.

… o las versiones de línea de comandos, para aquellos que prefieren la experiencia de safari:

El administrador de paquetes de aptitudes , se enfoca en intérpretes de idiomas

Como podemos ver, también hay algunas opciones aquí.

O simplemente deje que el shell descubra lo que necesita y cómo obtenerlo:

  • Para el código …

¿Qué idioma te interesa codificar? Existen IDE para la mayoría de los lenguajes populares (Java, C), pero le animo a que explore también nuevos lenguajes (Haskell, Erlang).

¿Pero qué distribución?

Independientemente de la distribución que elija, si está en él para la codificación, eventualmente deberá caer en un shell.

Así que tómese el tiempo para aprender bash, el shell de comandos predeterminado de la mayoría de las computadoras Linux y UNIX. En la capa de shell, estás lo más cerca posible del kernel de Linux sin escribir el código del kernel. Y tendrá el control completo de la capa de aplicación, para que pueda instalar, ejecutar y controlar las aplicaciones que necesite.

Por supuesto, aprender el bash shell es difícil de hacer solo, pero fácil si tienes una guía. Aquí hay una guía que puede usar:

Linux desde cero (LFS)

Entonces, ¿qué distribución?

Eres propio, por supuesto. Una vez que tenga instalada cualquier distribución de Linux en una máquina virtual, LFS le enseñará todo lo que necesita saber sobre cómo se organiza una distribución completa (desde sistemas de archivos hasta opciones de compilación y carga de pilas de compilación para administradores de paquetes y utilidades del sistema, todo lo que hace que buen codificador en un gran codificador) mientras le enseña los comandos de shell específicos para realizar esas tareas.

Un fragmento del proyecto LFS sobre la construcción de un sistema de archivos

El sistema resultante será tan poderoso como lo necesite, sintonizado específicamente para el hardware que tiene, libre de bloatware innecesario, y como lo ha ensamblado usted mismo, sabrá cómo solucionarlo. Más que solo aprender a codificar, ahora tiene las herramientas y el conocimiento para convertirse en un arquitecto de sistemas.

Como un resumen:

  1. Descargue el software de máquina virtual para su computadora y sistema operativo actual.
  2. Descargue un archivo .iso de instalación de Linux. Use Ubuntu si solo necesita comenzar.
  3. Dígale a la máquina virtual que use el archivo .iso para arrancar, y pronto debería tener una distribución de Linux en ejecución en una ventana de su escritorio.
  4. Dentro de esa máquina virtual, siga los pasos de LFS para crear una nueva instalación de Linux, desde cero.

Ahora está listo para comenzar a explorar, ampliar y codificar su camino hacia el futuro.


Aporta a Sudhansu Bhusan Mishra la oportunidad de responder esta pregunta.

Depende mucho del tipo de desarrollo que estés haciendo. En general, diría Fedora, pero (por ejemplo) muchos desarrolladores web o NoSQL no parecen reconocer la existencia de distribuciones que no sean Ubuntu. Su empaque de Ubuntu es impecable, pero el empaque para cualquier otra cosa es descuidado si se hace. Peor aún, cada vez que una biblioteca se actualiza en Ubuntu, comienzan a depender de ella de inmediato, pero si se actualiza en otro lugar primero se retrasarán hasta que Ubuntu se ponga al día. La verdadera respuesta es mirar el software que le interesa y la distribución que esos desarrolladores tienden a usar.

Prueba Wubi (instalador de Windows para Ubuntu). Es fácil de instalar, sin fricción y no tiene que luchar con la instalación, la eliminación, el cambio de tamaño de la imagen de disco y demás.

No volverás 🙂

More Interesting

¿Es cierto que los desarrolladores de software no pierden el tiempo en televisión o películas, y dedican todo su tiempo libre a proyectos paralelos y a mejorar sus habilidades técnicas?

¿Qué pasos sigo para desarrollar un software?

¿Cómo puedo convertirme en desarrollador de software SIG?

¿Qué carrera es más prometedora: científico de datos o desarrollador de software? ¿Qué es mejor en términos de salario y crecimiento a largo plazo, y por qué?

¿Cuáles son las etapas en el desarrollo de software?

¿Cuál es la razón para que una compañía de software de EE. UU. Externalice el desarrollo de proyectos?

¿Los desarrolladores independientes suelen utilizar software de seguimiento de tiempo?

¿Alguna vez encontraré un trabajo como ingeniero de software, programador, desarrollador o ingeniero informático?

¿Qué se debe esperar con una carrera en desarrollo de software?

¿Por qué es tan importante escribir pruebas para algunos desarrolladores? He sido desarrollador de software durante 8 años y nunca he escrito ninguna prueba. Simplemente depuro mi código cuando tengo errores y todos mis proyectos tienen éxito.

¿Por qué no se anima a los desarrolladores de software que trabajan en empresas de TI indias a desarrollar algo nuevo?

¿Deberían las casas de desarrollo de software publicar sus precios abiertamente?

¿Cómo te especializaste como desarrollador de software?

Como desarrollador junior de software, ¿cómo debo elegir entre convertirme en generalista o especialista en mi carrera?

¿Cuáles serían las diferencias entre un desarrollador de software .Net real y un desarrollador .Net falso?