¿Qué distribución de Linux es la mejor para un programador?

En general, aparte de Kali Linux para las pruebas de penetración, no hay una distribución ideal. Estoy involucrado en un grupo de usuarios de Linux, y somos 65% desarrolladores, 25% administradores de sistemas y 10% todo lo demás (aficionados, estudiantes, maestros, científicos que usan Linux para su investigación científica), y nunca he visto una sola distribución citado más que cualquier otro. Los “seis grandes” son los más frecuentemente citados (CentOS, Debian, RedHat, Fedora, Ubuntu, Suse), pero conozco desarrolladores (codificadores) que usan Slackware, Arch, Gentoo, Linux From Scratch, Mint, PuppyLinux y más. Usa cualquier distribución que te haga feliz, ya que no creo que haga la diferencia de ninguna manera. Solo asegúrese de que sea una edición de escritorio, no para un servidor, porque las distribuciones de servidores están muy reducidas, en comparación con las versiones de estaciones de trabajo.

Una vez escrito eso, responderé a su pregunta, teniendo en cuenta lo anterior:

Después de buscar mis propias respuestas en preguntas similares, resulta que no creo que haya respondido directamente esa pregunta (que puedo recordar, claro). Estoy de acuerdo con John Allard, Quora User y Kent Fredric.

Supongo que dependerá de lo que estés buscando hacer. ¿Desea construir su instalación desde cero? Utilice Gentoo o Linux From Scratch. Estas son distribuciones del sistema operativo que, si fueran instrucciones para hornear pan, comenzarían con “Primero, compre un poco de tierra. Luego, hasta la tierra, y luego plante algunas semillas …”.

¿Quieres empezar a correr? Todo lo que esté listo y rico en funciones (Fedora, que es lo que usa Linus Torvalds, Ubuntu, Debian, CentOS, Suse, RedHat, etc.) funcionará bien.

¿Está buscando programar cosas como sistemas embebidos, SCADA o Internet de las cosas? podrías probar algunas distribuciones realmente pequeñas, como (Downloads Tiny Core Linux) por ejemplo. La ventaja de programar desde una distribución de tamaño tan pequeño es que su producto final será muy pequeño, rápido y liviano, sin ser agobiado por una basura extraña (efectivamente) que no necesita.

Más allá de eso, es un gusto personal. Solo una pista. No use nada realmente exótico con muy pocas descargas en su registro. Presta atención especialmente al contador de visitas de la página aquí. Devuelve la diversión a la informática. Utiliza Linux, BSD. (DistroWatch), o este sitio: (The Linux Counter Project – Estadísticas sobre Linux, sus usuarios y más). Si usas alguna distribución rara y exótica, es probable que sea una especie de tenedor de tenedor de tenedor de tenedor, fue alguien que Comp Sci honra el proyecto, y solo lo usa él, un pocos amigos y sus padres, a quienes él / ella fastidiaba y fastidiaba para que cambiaran desde Windows.

Vea esta respuesta: (la respuesta de John Weintraub a ¿Cuáles son las diferencias entre las principales distribuciones de Linux?) Y esta (la respuesta de John Weintraub a ¿Qué distribución de Linux es la mejor para un programador?).

Más allá de eso, es un gusto personal.

Gracias por la A2A

Dependiendo de sus antecedentes y requisitos particulares, podrá encontrar la clase general de distribución de Linux más adecuada para sus necesidades siguiendo el diagrama de flujo a continuación:
Es un diagrama de flujo bastante bueno, pero no enumera todas las distribuciones de Linux, solo las clases generales y probablemente por una buena razón. Todas las distribuciones se pueden encontrar en la línea de tiempo de distribución de GNU / Linux (Archivo: Linux Distribution Timeline.svg), que es una tabla enorme. Cada opción del diagrama de flujo anterior es el nodo principal para potencialmente docenas de distribuciones.

Una buena idea es seleccionar la distribución principal a menos que tenga un caso de uso específico que sea mejor atendido por una de las distribuciones secundarias. Mejor aún, seleccione más de un padre para familiarizarse. Un par muy flexible y útil para conocer es Red Hat / CentOS y Ubuntu. El primero se encuentra a menudo en el uso empresarial, mientras que Ubuntu tiene una base de usuarios más amplia.

Realmente no importa, ya que una distribución de Linux es casi la misma que la siguiente en cuanto a qué software podrás usar en ella.

La diferencia se reduce a algunas cosas:

  • El administrador de paquetes, (y el formato del paquete)
  • La filosofía de actualización, (congelar, rodar)
  • Disponibilidad de paquetes precompilados
  • Cuán grande / útil es la comunidad
  • ¿Quién está respaldando la distribución?
  • ¿Qué sistema init usa la distribución?

Entonces las diferencias se reducen a preferencias personales, tales como:

  • ¿Prefieres pacman, apt-get, yum o portage para administrar tus paquetes?
  • ¿Desea volver a instalar su distribución cada 6 meses con la promesa de una mayor estabilidad en lugar de recibir un flujo continuo de actualizaciones?
  • Como te gusta
  • ¿Desea compilar su software desde la fuente o recibirlo en forma binaria?
  • ¿Eres nuevo en Linux o eres un usuario más experimentado?
  • ¿Desea un software de última generación o una versión más estable de un paquete?

No tiene que decidir basándose en TODOS estos factores, uno o dos generalmente lo cambiarán de lado y luego puede elegir uno decisivo.

Por ejemplo para mi:

  • Prefiero pacman o portage sobre apt-get
  • Prefiero lanzamiento rodante

Estos prácticamente reducen mi enfoque en dos opciones; Arch Linux y Gentoo, así que lo hago nuevamente:

  • Prefiero paquetes binarios a compilar desde la fuente

Esto me deja con Arch!

Ahora, si desea un núcleo al que los desarrolladores apunten con mayor frecuencia, es posible que desee optar por Ubuntu, pero nunca tuve problemas para desarrollar en Arch y desplegar en Ubuntu, por lo que esto no debería ser un problema.

Si tiene una distribución de Linux a la que está acostumbrado, como Ubuntu o Fedora, simplemente acostúmbrese más y podrá hacer que sea la mejor y más sorprendente caja de desarrollo para usted. Todos los IDE que conozco son intercambiables entre distribuciones. Las mayores diferencias entre las distribuciones son sus utilidades de empaquetado, y su programa será desarrollado y luego empaquetado en cualquier binario de instalación que necesite. No hay una razón real para elegir una sobre otra en función de la utilidad de empaquetado.

Razones por las que es posible que desee ir con una distribución diferente de la que le resulte más cómoda:

  1. Su empleador usa Distro X
  2. Sus posibles empleadores usan Distro X
  3. El proyecto en el que elijas trabajar tiene una preponderancia de desarrolladores que usan Distro X, y quieres poder hablar con ellos sin la distribución ocasional de distro. Están usando RHEL y dicen “mmm”, pero estoy usando Debian / Ubuntu y tengo que traducirlo a “apt-get”.
  4. Realmente solo quieres estar cómodo en varias distribuciones

En Linux corporativo, principalmente veo Red Hat Enterprise Linux (RHEL). Si desea trabajar para un cliente corporativo, es posible que desee obtener una copia de CENTOS, que es RHEL sin los altos costos de la licencia. En este caso, elegiría CENTOS sobre Fedora, aunque Fedora estará más cerca del borde sangriento. Ningún cliente corporativo que tenga utilizará tecnología de punta en la producción.

Fui arquitecto de red en un proyecto y cambié todos los servidores de producción a Debian, en lugar del Ubuntu original, porque el equipo de desarrollo del proyecto usó Debian, y el producto generalmente se instaló en los servidores Debian. Se hizo para facilitar la resolución de conversaciones. Ejecuté al menos 3 máquinas de escritorio con Debian allí.

Es una buena idea sentirse cómodo con varios sabores de Linux, para que nunca tenga que rechazar un trabajo porque no ha jugado con esa versión. Mis sugerencias son: Debian, Ubuntu, Fedora, CENTOS, Arch y quizás Slack. Slackware fue mi primera distribución, en 1998. Nunca ha sido mi favorita. Uso Ubuntu en el escritorio para mi máquina de desarrollo principal, pero también escribo scripts en Kali Linux de vez en cuando.

Sugeriría que las cosas importantes son qué escritorio / IU desea usar, y luego decidir qué distribución de Linux que tiene ese escritorio / IU tiene la instalación y administración más fáciles. Personalmente uso Debian Sid y Fedora Rawhide con GNOME. Mucha gente odia a GNOME por alguna razón, me parece genial. Sin embargo, hay muchas interfaces de usuario para Linux, GNOME, Unity, Cinnamon, Mate, KDE, XFCE, LXDE, por nombrar algunas. Todos tienen sus seguidores y detractores, la única forma de saberlo es probarlos todos antes de elegir, lo cual es claramente imposible. Debian, Ubuntu, Mint, Fedora y Arch son posiblemente las distribuciones con la mayor base de usuarios y, por lo tanto, la base de soporte. Ubuntu y Fedora tienen la ventaja de ser la base de las operaciones comerciales y, por lo tanto, obtienen una gran cantidad de información comercial. Si el empujón llegara, sugeriría que Fedora 25, 26 apareciera pronto. Comienza con GNOME, pero puede cambiar fácilmente a LXDE, que probablemente sea la mejor computadora de escritorio / interfaz de usuario liviana.

Lo importante es que todos admiten Python muy bien. Y recuerde que esto significa Python 3. Todas las distribuciones admiten Wine, pero como otros han dicho, no necesitará esto para la actividad de Python, por lo que supongo que es una pregunta con un objetivo diferente en mente. Juegos tal vez.

Por supuesto, todo esto falta porque hay una distribución de Python independiente de la plataforma llamada Anaconda (o Miniconda para aquellos que desean la versión simplificada) administrada por Continuum Analytics. Esto significa que puede usar todas las mismas cosas de Python en Linux, macOS y Windows. Usar esto hace que la plataforma Python sea redundante. Esta es la opción para la mayoría de la ciencia de datos y la gente de IA.

Definitivamente Ubuntu.

Mi sistema doméstico es CentOS7 (en lo que estoy escribiendo esto ahora), mi oficina usa servidores CentOS6 / RHEL6 / Amazon Linux en AWS (que es básicamente CentOS6). Mi computadora de trabajo es Win7 / Ubuntu y tengo una partición en esta computadora para Mint (solía tener una para Gentoo también pero la eliminé).

El problema principal es que cuando la gente sale con un nuevo software, el soporte lateral de Linux será abrumadoramente para Ubuntu. Los documentos se escribirán para Ubuntu.

Más allá de eso, aquí está mi desglose de las otras distribuciones:

  • ¿Por qué no CentOS? No puedo decirte cuántas veces he tenido que construir cosas desde la fuente en CentOS6 en mis servidores de trabajo. En un caso extremo, tuve que reconstruir un paquete de python pip debido a algún conflicto de glibc para que funcione en CentOS6. Perdí uno o dos días de trabajo para descubrir cómo hacer el paquete pip correctamente, lo que realmente implicaba construir muchas otras cosas desde la fuente para crear el paquete pip. El “devtoolset” del CERN es un salvavidas porque si no lo tuvieran, no recomendaría CentOS para el desarrollo. devtoolset le permitirá obtener el último gcc y otras cosas cuando sea necesario, pero aún así es una solución alternativa.
  • ¿Por qué no Gentoo ?: cosas como Gentoo se sienten bien porque compilas cosas desde la fuente y puedes usar banderas de compilación, tener múltiples versiones, etc., pero puedes agregar banderas a
    “./Configure” si también tuvo que construir desde la fuente. Dejar mi computadora encendida durante 36 horas para construir Google Chrome no es mi idea de un entorno de trabajo productivo.
  • ¿Por qué no Mint? Hubiera recomendado Mint primero, pero tuve una experiencia terrible en la que una actualización rompió mi controlador wifi y, debido a cierta estupidez de mi parte, debo admitir que rompí mi partición Mint en la computadora de mi casa. Sin embargo, más allá de mi problema personal, si bien muchos documentos para Ubuntu funcionarán para Mint, este no es el 100% de los casos, y dado que el soporte en línea es tan importante, debo recomendar Ubuntu sobre Mint.

Lo más importante para mí cuando considero una distribución es la productividad, y perder un día completo de trabajo compilando desde la fuente es interesante las primeras dos o tres veces y luego se vuelve bastante viejo bastante rápido. Como servidor para alojar cosas, CentOS podría hacer su trabajo, ya que es una sensación más “estable”. Sin embargo, si desea utilizar los últimos paquetes para desarrollar algo, tendrá que solucionar los innumerables paquetes desactualizados en CentOS.

Además, para los juegos tuve que hacer un montón de cosas extrañas para que Steam funcionara en CentOS7, mientras que recuerdo que fue muy sencillo en Mint. Hacer que Steam funcione en Ubuntu probablemente también sea fácil.

Editar:

En mi trabajo Ubuntu eliminé Unity (escritorio predeterminado) y uso Openbox. Eso hizo que la GUI fuera más sensible al tiempo que me daba el beneficio de un nuevo software.

Una cosa que aprecio de Debian (y, en menor medida, Ubuntu) es que puede configurar fácilmente su sistema para que funcione con fuentes de nivel inferior que son parte de la distribución o están disponibles en sus extensos repositorios.

Por ejemplo, para trabajar con coreutils (el paquete que contiene la mayoría de los comandos externos que utiliza desde un indicador de comandos de shell) podría simplemente:

apt-get install build-essential

apt-get install build-deb coreutils

cd / usr / local / src && apt-get source coreutils

# cambiar al directorio desempaquetado y: …

FORCE_UNSAFE_CONFIGURE = 1 fakeroot ./debian/rules

Esto le permite estudiar fácilmente el código fuente existente; modifíquelo y cree su propio paquete personalizado; y así.

En comparación, encontré (la última vez que estaba trabajando en esas cosas) que construir paquetes en sistemas basados ​​en RPM (Red Hat, CentOS, SuSE) era algo más engorroso. A menos que hayan agregado características a yum (y los metadatos correspondientes a sus repositorios) desde entonces, tiene que depender de sus propios dispositivos para determinar las dependencias de compilación y configurar un entorno de compilación de trabajo.

Nota: .src.rpm los archivos NO son suficientes para reconstruir correctamente un paquete que se puede usar en su sistema. Los desarrolladores de CentOS han tenido que realizar un trabajo serio para realizar ingeniería inversa en la configuración del entorno de compilación (chroot jail) para muchos paquetes porque su sistema, en su conjunto, puede tener dependencias de compilación conflictivas para diferentes paquetes en la misma versión. Además, la presencia de ciertos paquetes (bibliotecas) en su sistema de compilación puede vincularse involuntariamente a las dependencias de creación de compilación de otro paquete que no están en la compilación de distribución ascendente de ese mismo paquete.

(Recuerdo una vez, hace varios años, cuando un colega necesitaba construir un paquete de Red Hat con un parche crucial aplicado … y la consternación causada cuando su .rpm ahora requería un paquete que suministrara la biblioteca “iberty”; usted sé, porque -liberty! – resulta que la versión oficial de RH de este paquete fue construida sin esa dependencia … pero ./configure para el paquete, como lo llama el archivo .spec … encontraría y usaría la biblioteca si fuera disponible. No sé si Red Hat alguna vez limpió ese proceso ni si han documentado una forma limpia y clara de reconstruir los paquetes para que se ajusten a su distribución. Pero, en ese momento (alrededor de 2008) consideraron que ser “salsa secreta” y ni siquiera proporcionaría a nuestra empresa un sistema de compilación de referencia en el que realizar tales parches y pruebas. Tuvimos que conformarnos con un acuerdo contractual para reunir tales compilaciones a través de nuestro TAM).

Mi punto es que desea la fricción mínima entre su flujo de trabajo y el código de trabajo. La programación moderna es bastante complicada sin tener herramientas que oculten detalles importantes sobre cómo “hacer que funcione” (detalles que tienen poco que ver con su código … pero que conllevan esa malla de interdependencias en las que su código debe entrelazarse.

Según mi experiencia, Debian proporciona el mejor sistema para la programación de Linux debido a apt-get y build-dep y, por supuesto, la calidad de los metadatos en sus repositorios y la disciplina que imponen en la cohesión de origen / construcción para cada lanzamiento en su conjunto. .

Recordando el primer día decidí escribir una nota de “Querido John” para divorciarme de Windows, así que seguiría con Linux. Lo recuerdo vívidamente lo frustrante que era al tratar de entender el sistema Unix, hasta el punto en que decidí “joderlo” e instalar varias distribuciones hasta que descubrí que me gusta más. Tener 6 servidores en espera en mis instalaciones fue de gran ayuda para reducirme al mejor que funcione para mí.

He probado Fedora, Ubuntu, CentOS, Kali, Mint, openSUSE, mientras que SME fue mi primera exposición a Linux. Mis experiencias trabajando con cada uno de ellos individualmente difieren mucho de otras contrapartes. Sin duda, encontraría las diferencias bastante rápido. Llegué a esta importante conclusión: la columna vertebral como esqueleto no es muy diferente entre sí y que todos están basados ​​en Unix.

El verdadero factor decisivo sería convertirse en un “experto en repositorio” que funcione mejor para usted. A partir de ahí, podrá reducir las distribuciones que se crearon con el repositorio que desee. Fuera de mi cabeza, los repositorios comunes en el mercado son: apt-get, rpm, deb, yum, dnf, pkg, dkpg y más.

Un factor decisivo: ¿por qué?

  1. Puede construir / instalar / hacer que el sistema sea el servidor que deseaba cuando lo visualizó por primera vez. Sin repositorio, estás fuera.
  2. Si escribe scripts / apps / lib, puede encontrar su trabajo y acceder a él en cualquier parte del mundo, dado que el sistema está conectado en red. Una vez publicada, la “evolución de TI”, eventualmente elegirá su trabajo y los pondrá a disposición de todos los repositorios.
  3. El repositorio es solo la puerta que lo lleva al borde del avance tecnológico. En otras palabras, es solo la forma de crear un “servidor de última generación” con el que soñaste.
  4. Biblioteca de scripts / lib disponibles para que pueda navegar para elegir. Terminará sin tener que “reinventar una rueda”.
  5. Probablemente hay 10 repositorios en el mercado, lo que le permite dividir todos los distributios en categorías, más fáciles de elegir.

Entonces, querrás descubrir cuál te gusta más. Créame: todos tienen “personalidades diferentes” si los comparan entre sí. Entonces, en mi situación, apt-get y dpkg y me llevaron a Ubuntu.

Una vez que haya identificado qué repositorio le gusta más, se reduciría fácilmente a uno sin ninguna dificultad, lo que a su vez le permitirá tener muchos menos para elegir. Aquí hay un ejemplo simple:

Debian / Ubuntu: apt-get, dpkg

CentOS: mmm

Fedora: dnf

FreeBSD: paquete

Animaría a que esto sea un factor decisivo y lógicamente, hará que su toma de decisiones sea mucho más fácil y rápida.

He tenido experiencia con ambos, para la programación no creo que una distribución realmente importe, pero aun así haría una comparación entre Fedora y Ubuntu:

  1. Interfaz de usuario: la interfaz de usuario de Ubuntu es más fácil de usar, más fácil para la vista y te ayuda a hacer el trabajo más rápido. Ubuntu por defecto utiliza Unity y Fedora utiliza el entorno de escritorio GNOME, aunque también puede probar otros giros de Fedora.
  2. Soporte de hardware: Ubuntu tiene una mejor compatibilidad de hardware en comparación con Fedora, y no necesita buscar diferentes controladores. Fedora incluso enfrenta errores con respecto a las tarjetas gráficas y los controladores de Wi-Fi.
  3. Licencias de software: Fedora solo admite FOSS. Ubuntu, por otro lado, es compatible con cualquier software que se ejecute sobre él. Libre o de otra manera, es decir, tendrá acceso a un conjunto de software más grande en Ubuntu en comparación con Fedora.
  4. Instalación de software: Ubuntu viene con un Centro de software si no está familiarizado con la instalación de la línea de comandos. Puede usar el paquete de paquetes en Fedora, pero no todos los paquetes de software admiten el paquete de paquetes y necesita cambiar a la terminal para ellos.
  5. Estabilidad: tanto Ubuntu como Fedora son excepcionalmente estables. Aunque Fedora es la mejor opción para la estabilidad y es más estable que Ubuntu. En general, Ubuntu tiene una mejor interfaz de usuario y una biblioteca de software más grande. Si está buscando un reemplazo para Windows, elija Ubuntu. Si quiere sentirse cómodo con Linux y quiere tener una curva de aprendizaje, pruebe Fedora.

¿Qué distribución de Linux es la mejor para un programador?

Soy programador y estudiante de ingeniería … ¿Qué distribución de Linux me sería más útil en términos de software, etc.?

Mi voto es Ubuntu ya que es, con mucho, el más popular y, por lo tanto, el más fácil de encontrar preguntas respondidas en Google al respecto.

Primero, ¿por qué Linux?

Yo estaba en el mismo bote que tú, estudiante aprendiendo ciencias de la computación queriendo aprender Linux. Creo que es una gran idea pasar tiempo probando cosas, pero hay que considerar algunas cosas. Al final de mi experiencia, dejé de usar Ubuntu Linux por completo y me quedé con Windows.

  • Buscando el software equivalente que usa actualmente. Por ejemplo, me encantó WinSCP y simplemente no pude encontrar un equivalente y usé WINE (un emulador de Windows) para usarlo, pero ¿por qué usar una versión emulada (algo que no funciona completamente) cuando podría funcionar perfectamente en una máquina con Windows?
  • Compatibilidad con su hardware. Lo que más me asustó de instalar Linux fue preguntarme si tenía todos los controladores que admitían mi hardware. En ese momento, Ubuntu no era compatible con mi tarjeta inalámbrica, por lo que me quedé atascado sin poder siquiera buscar nuevos controladores.
  • Aprender a hacer que las cosas funcionen. Como programador de software, realmente disfruto de la programación, pero no disfruto buscando soluciones para llegar a ese punto. Seguramente puede superar la curva de aprendizaje y configurar su entorno de desarrollo en un instante, pero ¿por qué pasar por esa molestia cuando está listo para el desarrollo en su sistema actual?
  • Cambio entre sistemas operativos. En ese momento estaba en la escuela y tuve que usar Windows en el laboratorio de computación y luego volver a casa para usar Linux solo algunas veces, ya que también tenía una computadora portátil con Windows. Cambiar entre los dos fue una molestia y simplemente no tenía sentido depender de Linux.

Mi experiencia con Ubuntu Linux se remonta a años atrás, por lo que las cosas han mejorado desde entonces, pero creo que tendrá que considerar la mayoría de las mismas cosas. Ciertamente disfruté algunas cosas sobre Ubuntu, como la actualización y actualización a través de apt-get o la aplicación del mercado, pero encontré más incentivos para seguir con lo que estaba más familiarizado y lo que estaba más disponible para mí.

Aprender y experimentar cosas nuevas es divertido y gratificante.

No quiero desanimarte de aprender, pero si quieres meterte en la programación y evitar el trabajo del administrador de sistemas, puedes evitarlo y seguir siendo un programador decente. Trabajé en un trabajo en el que todos teníamos que usar computadoras Mac para desarrollar y, aunque no estaba familiarizado con él, simplemente me adapté y tuve el entorno de desarrollo funcionando. Mientras pudiera codificar, no me importaba y Google era mi amigo.

Consideraría dos cosas:

  1. Cuán ampliamente utilizada y respaldada es la distribución
  2. En qué entorno se está desarrollando

Todas las distribuciones de Linux serán buenas para la programación: puede instalar compiladores y herramientas para casi todas ellas. Pero el soporte de hardware es importante, por supuesto. Es posible que desee múltiples pantallas para su máquina de desarrollo o tener algún periférico genial que desee conectar.

Por eso te recomiendo que comiences a usar Ubuntu. Es una distribución muy popular y tiene una base de usuarios muy amplia. Eso significa que alguien ya ha resuelto la mayoría de los problemas que podrías encontrar.

La distribución también es importante con el soporte de software. Tal vez usará compiladores y editores de software gratuitos en su mayoría (y por qué no lo haría, porque son geniales), pero quizás aún necesite instalar algún software de terceros en su computadora. Tal vez sea el software de productividad que usa su empresa o tal vez incluso el IDE comercial. Todo el software que hay para Linux será compatible con Ubuntu. Eso es un gran beneficio.

Pero hay otra cosa a considerar: ¿en qué entorno se está desarrollando? Eso puede afectar a su distribución de elección. Si su servidor ejecuta CentOS, no veo ninguna razón para usar la misma distribución en su computadora. Después de todo, los servidores solo ejecutan software de servidor y hacen lo suyo. Pero si está desarrollando algo donde el sistema es muy importante, entonces puede ser más fácil usar la misma distribución tanto en desarrollo como en producción.

Te recomiendo que elijas una distribución moderna con una interfaz de usuario moderna. El más nuevo Ubuntu 17.10 tiene una interfaz Gnome 3 deportiva, que considero genial. Es completamente funcional pero fácil de aprender y acostumbrarse. Y tiene excelentes características, como el filtro de luz azul Night Light, que convierte la pantalla en roja por la noche. Gnome es realmente estable, pero también puede ampliar su funcionalidad a través de las extensiones de Shell de Gnome. Ese es al menos para mí un punto perfecto entre estabilidad y configurabilidad.

Por supuesto, si eres una persona más minimalista, Ubuntu se adapta bien incluso entonces. Puede instalar solo un administrador de ventanas de escritorio o mosaico mínimo y usar eso. Sin embargo, he aprendido a gustar mucho el entorno de escritorio con todas las funciones.

Finalmente, ¿puedo recomendarle algún software?

Si está buscando un editor, ¿puedo recomendarle Kate o Atom ? Ambos son realmente buenos para fines de desarrollo web. Kate es un editor clásico más antiguo y liviano para Linux, y Atom es un material multiplataforma hecho con JavaScript, HTML y CSS.

Para el control de versiones, en realidad solo hay una opción y es Git . Lo uso a través de la línea de comando. No creo que haya una gran interfaz de usuario independiente para ello, pero muchos editores e IDE lo admiten. Como Kate, Atom, Monodevelop y creo que también Netbeans .

Me parece que el emulador de terminal Tilix es una herramienta realmente excelente para hackear. ¡Tiene funcionalidad de pantalla dividida, sesiones, atajos prácticos y todo!

Tilix y colon; Un emulador de terminal de mosaico

Si necesita ver la diferencia de archivos o carpetas, ¿por qué no usaría Meld diff viewer?

Y si está haciendo trabajo de diseño, hay una pequeña aplicación útil llamada Screen ruler en los repositorios de Ubuntu.

Estas herramientas se pueden instalar fácilmente en su sistema Ubuntu:

sudo apt install kate meld screenruler

Instalar Tilix es una historia diferente y encontrarás un tutorial en el enlace de arriba.

Prueba: Linux – Menta – Canela

Mint es la distribución más popular en Pon la diversión de nuevo en la informática. Utiliza Linux, BSD. (Ubuntu solía ser el más popular, pero eso fue hace años, antes de que trataran de obligar a todos sus usuarios al escritorio de Unity. Desde entonces, Mint ha sido la distribución más popular por una milla de país).

Menta: la canela es probablemente la versión más popular de la menta. Se parece a la versión tradicional de Windows con un botón “Menú” / “Inicio”.

Menta: Cinnamon viene preinstalado con Open / Libre Office, el programa de manipulación de imágenes GIMP Gnu y muchas otras aplicaciones útiles.

Menta: Cinnamon tiene un “Administrador de software” que permite la instalación de miles de aplicaciones gratuitas con solo hacer clic con el botón del mouse. También utiliza el popular programa de línea de comandos “Apt” que brinda un control más preciso sobre la instalación de paquetes.

Con respecto a la programación:

  • Menta: Cinnamon viene preinstalado con el compilador GCC Gnu C, y es bastante fácil instalar otros compiladores Gnu.
  • Con Mint – Cinnamon es fácil configurar entornos de desarrollo como Ruby-on-Rails (que he estado aprendiendo de vez en cuando durante más o menos un año).
  • Menta – La canela simplemente funciona y no se interpone en el camino. (Como programador, lo último que quiero es perder el tiempo ajustando el sistema operativo).

Es realmente una elección personal, pero aquí está mi opinión al respecto. He estado usando Linux exclusivamente por un tiempo ahora. Comencé con Gentoo y terminé aprendiendo MUCHO sobre cómo se arma todo un sistema operativo. Eventualmente, sin embargo, Portage rompiendo mi sistema se cansó un poco, jugué con Debian durante unos meses y finalmente terminé en Ubuntu.

¿Por qué Ubuntu (o Debian)? Realmente no quiero que el sistema operativo se interponga en mi camino cuando solo quiero salir adelante con mi trabajo de desarrollo y entretenimiento diario. Para mí, esto se traduce en una gestión de paquetes estable con la flexibilidad suficiente que, cuando se ejercita, no lo rompe todo. Además, una gran cantidad de software comercial que termino necesitando está convenientemente empaquetado para Ubuntu / Debian.

Gracias por A2A. Personalmente, soy un fanático de Ubuntu y creo que sería una opción razonable para un programador en la mayoría de los casos. Las razones de su apoyo son:

  • La mayoría de las herramientas y configuraciones comunes utilizadas por los programadores se pueden encontrar de fábrica. Obviamente, aún así instalará / eliminará muchos softwares / herramientas en el día a día, pero Ubuntu reduce la fricción que se obtiene al usar cualquier otra distribución básica de Linux.
  • Ubuntu es estable. También probé algunas otras distribuciones, pero encontré Ubuntu estable. Utilicé otro hace un par de años, por ahora también serían mucho más estables, pero también lo es Ubuntu. Entonces, ¿por qué no Ubuntu?
  • Gran soporte en línea. La mayoría de los foros famosos como Stackoverflow tienen la mayoría de las preguntas y respuestas basadas en * nix con Ubuntu como referencia. Ahora, obviamente, la mayoría de esos temas serían genéricos para todas las distribuciones basadas en Linux, pero todos serían aplicables a Ubuntu.

Bueno, uno de los puntos que no me gustan de las versiones más nuevas de Ubuntu es el entorno de escritorio que usan. Siempre he sido fanático de Gnome. Pero lo bueno es que es Linux, por lo que siempre se puede cambiar.
Presenté los puntos anteriores teniendo en cuenta los programadores genéricos y no relacionados con ningún campo específico. Obviamente, si un chico es investigador de seguridad, entonces tiene más sentido que use Kali Linux, que viene preinstalado con la mayoría de las herramientas relacionadas con la seguridad. Pero creo que Ubuntu funcionaría bien para la mayoría de los programadores

Como dijo John, en realidad no importa.

Todo lo que necesita es GCC, Make y quizás un editor de cualquier descripción y, a veces, incluso un entorno de escritorio. Y casi todas las distribuciones de Linux proporcionan esas cosas, por lo que son bastante intercambiables con respecto a la “programación C / C ++”.

Las únicas elecciones que harías son para tus gustos personales.

Dependiendo de lo que esté haciendo, una distribución basada en la fuente puede ser útil, ya que podrá acceder fácilmente a la fuente de cualquier componente con el que esté interactuando.

Y bueno, las distribuciones basadas en la fuente no pueden vivir realmente sin un kit de herramientas de compilación, mientras que las distribuciones binarias pueden salirse de la instalación predeterminada de GCC / bibliotecas / encabezados / make.

No creo que pueda responder esta pregunta neutralmente. Ser programador y empaquetador de Fedora sesga mi decisión hacia distribuciones basadas en RPM como Fedora y CentOS.

Si su objetivo es crear software para GNU / Linux, y usted es un programador experimentado, entonces creo que Fedora es para usted. Es bastante fácil configurar su entorno de programación. Crear proyectos es tan fácil como unas pocas invocaciones para rpmbuild y rpmlint. La clonación y el empuje es a través de una herramienta fedpkg altamente programable. La actualización a través del sistema Bodhi es bastante sencilla y tiene interfaces basadas en texto y en la web.

La mayoría del software que puede encontrar en cualquier distribución que encontrará en algún repositorio de Fedora (y algunos más). Una fuente excelente que uso a veces para encontrar paquetes es Rpmfind mirror.

El foro de Fedora FedoraForum.org es una comunidad de usuarios muy amigable que ayuda mucho cuando estás atascado. También hay otros recursos, por supuesto.

Fedora viene en tres distribuciones básicas que se ajustan para diferentes usos: estación de trabajo, servidor y nube. La comunidad de Fedora también empaqueta diferentes imágenes (llamadas giros) que se adaptan a requisitos específicos, por ejemplo, para programadores, editores de video, etc. Navegue por ellas en Fedora.

En general, si quieres liberar todo el potencial de tu caja GNU / Linux, eres un programador y no te importa arruinar tu sistema de vez en cuando (¡aprenderás mucho de eso!); entonces, amigo mío, ve por Fedora.

Si quieres una distribución que te haga un mejor programador , te recomiendo Gentoo.

Tiene una curva de aprendizaje pronunciada: termina con un sistema que no tiene software que no compiló desde la fuente (pero las herramientas para hacerlo son fáciles de usar). Y es increíblemente poco obstinado: puede usar cualquier combinación de software que pueda compilar para él, ensamblar un escritorio súper ligero a partir de piezas (utilizo OpenBox + CairoDock + Stalonetray + algunas aplicaciones de bandeja y algunos scripts de inicio para Mac) como la experiencia del usuario y el rendimiento vertiginoso), y date cuenta de que eso fue todo un “escritorio”, y no estás atrapado con las elecciones que hizo otra persona. ¿Quieres administración de energía? Lo que sucede cuando cierra o abre la tapa de su computadora portátil es un script que escribirá. Nunca tiene que haber un momento en que no sepas qué está haciendo tu computadora.

El punto no es que sea fácil, sino que desmitifica lo que es una distribución del sistema operativo, porque efectivamente creas la tuya. Se vuelve real para ti que tu computadora es una máquina que hace lo que le dices, que no hay magia en absoluto, solo elecciones, y que realmente decides qué es eso, y que las distribuciones no son hechas por elfos mágicos. Terminará entendiendo cómo funciona su máquina en un nivel que la mayoría de las distos intentan protegerlo, y el conocimiento es poder, del tipo que es muy útil cuando configura servidores y utiliza cualquier distribución.

Algunos de los otros beneficios:

  • Si te gusta sangrar, puedes ejecutar nuevas versiones de cualquier cosa mucho antes de que aparezcan los binarios para otras distribuciones
  • Puede construir todo su sistema operativo con indicadores de compilación específicos del procesador, que pueden aumentar significativamente el rendimiento
  • Nunca tendrá problemas de vinculación: si puede compilar, puede vincular
  • Terminará pensando en gráficos de dependencia, si aún no lo hizo, ya que la mayoría de los marcos y ecosistemas de lenguaje en estos días requieren eso de todos modos, eso solo puede ser útil

Creo que cualquier distribución podría ser un entorno decente para la programación. Pero Gentoo y Linux From Scratch son probablemente los únicos que lo harán un mejor programador , al profundizar su comprensión de los sistemas, desmitificar cómo encajan las piezas y enseñarle cómo encajarlas de nuevas maneras. Ese conocimiento y la confianza que conlleva pueden ayudarte en casi cualquier cosa.

Dicho todo esto, no es para los débiles de corazón o paciencia, y debe planear invertir algo de tiempo para comenzar. Sin embargo, después de unos meses, se preguntará cómo alguna vez toleró lo que usó antes.

Primero, es más probable que programe para aplicaciones en lugar de programar (sub) distribución a nivel de distribución, y en el nivel superior, la distribución podría comportarse igual y, por lo tanto, no importa mucho. Especialmente si va a programar en lenguajes que tienen soporte de entorno virtual (por ejemplo, pyenv para Python), omitirá efectivamente el entorno que la distribución proporciona para la programación. Por lo tanto, la distribución (o distribución para abreviar) se reduce a un sabor personal.

Si no lo ha decidido, ¡pruebe Fedora Workstation! ¡No solo porque soy un usuario feliz, sino también porque está diseñado para apuntar a desarrolladores y estudiantes! Dentro del proyecto Fedora, estamos tratando de identificar varios casos de uso importantes y optimizar la distribución para ellos, en lugar de la antigua estrategia única para todos. Fedora Workstation tiene como objetivo proporcionar un entorno de desarrollo actualizado en una distribución base sólida.

Si aún no lo ha decidido, revise ese diagrama de flujo gigante 🙂

Depende de tus intenciones, de lo que quieras lograr en el camino.

Lo primero es lo primero, mantente alejado de Ubuntu. Usted puede “usar”, pero no está diseñado para ese propósito.

Soy ingeniero en electrónica y sistemas integrados, diseño circuitos electrónicos y firmware integrado en mi computadora portátil que ejecuta Arch Linux desde hace más de un año y medio. Antes de eso, usé Fedora durante aproximadamente un año. Lo que sucedió con Fedora fue que, aunque me encantó absolutamente y fue muy rápido, pero era demasiado escamoso. Las cosas no funcionarían con bastante frecuencia. Además, hubo una grave falta de disponibilidad de paquetes en los repositorios y esto incluye los repositorios COPR que pude encontrar.

Al llegar a Arch, la primera ventaja es que puedo elegir lo que quiero.

En segundo lugar, es una versión continua, por lo que no es necesario esperar horas cada 6/9 meses para una ‘actualización del sistema’. El administrador de paquetes pacman de Arch maneja las actualizaciones del sistema atómicamente durante cada operación de actualización. Entonces, a diferencia de las distribuciones de Debian, no hay una opción separada de ‘dist-upgrade’ porque la actualización / actualización del sistema son la misma cosa.

En tercer lugar, es muy simple de administrar, muy vainilla, lo que me da menos dolores de cabeza porque puedo consultar fácilmente la documentación oficial y los informes de errores de cualquier paquete y aplicarlos fácilmente en Arch, no es posible en otras distribuciones porque parchan mucho los paquetes con Distro cosas específicas.

Cuarto, el sistema Arch Build (ABS). A menudo construyo paquetes desde el origen con el fin de eliminar las características innecesarias y la hinchazón y habilitar algunas características que pueda necesitar. ABS facilita la creación de paquetes para Arch Linux. Los paquetes arch no son más que un archivo .tar.xz. Intente construir un paquete para Fedora / Debian desde la fuente. El ABS es aún más simple que el sistema de puertos FreeBSD. Entonces, si es un programador, se vuelve muy simple probar su software porque hacer un paquete para su distribución es tan simple como hacer un solo archivo llamado PKGBUILD y listo. Simplemente coloque ese archivo PKGBUILD en un directorio, cd en ese directorio y ejecute $ makepkg -sri en tu terminal. Instalará el tiempo de compilación y las dependencias de tiempo de ejecución del paquete automáticamente (como se especifica en PKGBUILD), compilará el código fuente de su software e lo instalará. Ser un programador, eso es lo que quieres, una manera simple, rápida y fácil de probar tu software en un entorno real.

Quinto, el repositorio de usuarios de Arch (AUR); Si no encuentro un paquete en los repositorios oficiales, hay un 90% de posibilidades de que alguien haya puesto un PKGBUILD para ese paquete en el AUR. Incluso puede encontrar el PKGBUILD para software Linux propietario en AUR como MATLAB, NI LabView, Autodesk EAGLE, CLion, etc.

Sexto, al ser una distribución de vainilla, está abierta a todo tipo de personalización. ¿Quieres cambiar algo? Cambialo. Puede ser cualquier cosa, systemd → openrc, cambie el kernel de vainilla a algo como SELinux habilitado, linux-ck, etc. cambie su escritorio a cualquier otro escritorio, cambie el gestor de arranque y use systemd-boot, refind, en lugar de GRUB o don ‘ No utilice ningún gestor de arranque en caso de que tenga un sistema UEFI capaz.

Séptimo, el más importante de todos. Arch Wiki y Arch Community. Cada sistema operativo tiene documentación y comunidad y, de todo, Arch tiene lo mejor de él. La mayoría de sus problemas serán mencionados en Arch Wiki. Si no es así, recurra a Arch Community y se lo ayudará con mucha facilidad. Una vez, yo mismo ayudé a arreglar la instalación de Arch de alguien que no arrancaba en absoluto. Arch es un instalador de CLI que hace que sea muy simple y directo arreglar cosas.

Hay más, para lo cual deberías probar Arch una vez durante 3 meses.

El Kit de herramientas del programador : en primer lugar, el kit de herramientas esenciales debe estar disponible para cualquier persona que planee desarrollar. Es posible que desee elegir el IDE correcto. Existen varios IDE convencionales con soporte para C / C ++, perl, python y otros lenguajes de secuencias de comandos. Hay muchos para elegir y hay muchas herramientas para desarrolladores que van desde Emacs a Eclipse y Sublime Text, que no se preocupa por la distribución, pero elegir el entorno de escritorio adecuado le aliviará la molestia de tener que mantenerlo todos los días.

Distribución fija : es posible que desee algo que se quedará mañana como está hoy. Muchos programadores no quieren lidiar con las actualizaciones de distribución no deseadas y siempre es del interés del administrador del sistema proporcionar una distribución estable. Esto creo que es ideal escenario para un desarrollador front-end y desarrolladores móviles.

Ubuntu toma el pastel como una distribución estable solo porque es la distribución más popular que existe y tiene una comunidad diversa para brindar soporte y obtienes todas las comodidades que necesitas en una distribución decente.

Si su proyecto necesita los paquetes más recientes, la distribución estable podría no ser la adecuada para usted.

Distribuciones distribuidas de Linux: a veces los desarrolladores necesitan tener una distribución lo más avanzada posible. Esto les permite encontrar todos los errores antes de que se publique el código. Una gran parte de los desarrolladores de aplicaciones podrían elegir Arch Linux solo por esta razón.

Es un lanzamiento continuo, lo que significa que nunca tendrá que descargar la nueva versión y reinstalar todo, solo actualiza el sistema y menos trabajo para todos los involucrados.

Personalmente soy un gran admirador de Arch Linux

OpenSuse es otra gran distribución y también tiene un gran soporte.

No es necesario decir que cualquier distribución que elija el mejor enfoque es hacer que el proceso sea lo menos doloroso posible y un escenario ideal para un programador es lo que se adapte a sus necesidades.

Menciones honoríficas:

Pero aquí hay algunos puntos de brownie que cualquier buen programador debe saber:

  • Vigile de cerca el IDE o el editor y, cuando utilice una distribución continua, tenga cuidado con las actualizaciones. No desea un problema técnico cada vez que el sistema operativo decida que necesita una actualización.
  • Containerize su trabajo o use un vm para la copia de seguridad. Esto no se puede enfatizar lo suficiente.
  • La regla general es la capacidad de trabajar en todas las plataformas y elegir el conjunto de herramientas que está ampliamente disponible en todas las distribuciones.