Distribución de Linux dirigida a desarrolladores [cerrado]


49

Estoy buscando el mejor sabor de Linux que sea atractivo para mí. Soy un amante del código abierto y uso varios idiomas diferentes.

¿Existe un Linux orientado a los desarrolladores?


1
Las discusiones abiertas no son apropiadas para publicar aquí.
Ignacio Vazquez-Abrams

12
Debe especificar un poco lo que quiere decir: los desarrolladores tienen puntos de vista muy fuertes (y a menudo opuestos) de lo que constituye una distribución amigable para el desarrollador.
l0b0

1
@ l0b0: los desarrolladores necesitan una gran selección de paquetes actualizados. Actualizar paquetes manualmente porque son demasiado viejos, no son lo suficientemente vainilla o simplemente no están en el repositorio de la distribución es una pérdida de tiempo. Los usuarios finales generalmente no se preocupan si el paquete libxyz-dev actualizado está dentro del repositorio.
Philip

echa un vistazo a FreeBSD
Rui F Ribeiro

Respuestas:


44

En la práctica, todas las distribuciones utilizan la misma cadena de herramientas de desarrollo, por lo que no difieren significativamente como plataforma para el trabajo de desarrollo general. Sin embargo, algunos tienen ventajas específicas que pueden ser relevantes para ciertos tipos de trabajo de desarrollo:

  • Las distribuciones comerciales (RHEL, SLES) tienen el mejor soporte de terceros proveedores de código cerrado. Si desea trabajar con (digamos) Oracle, podría estar mejor con uno de estos, aunque Oracle puede funcionar con la mayoría de las distribuciones si instala las bibliotecas correctas. CentOS está compilado de fuentes de RHEL y funcionará bien con la mayoría, si no con todo, el software comercial creado para RHEL.

  • Si quieres jugar, puedes probar Linux From Scratch. Es un buen tutorial sobre cómo una distribución de Linux se mantiene unida.

  • Si desea algo para lo que casi todo lo que es o alguna vez fue de código abierto está disponible en los repositorios, entonces una distribución basada en Debian (ya sea Debian o Ubuntu) puede ser una victoria. Hay una razón por la que Canonical eligió .deb para usarlo como sistema de administración de paquetes para Ubuntu.

  • Si desea ajustar todo al enésimo grado, Gentoo le permite reconstruir todo su sistema para su arquitectura de procesador específica.

  • Si desea una experiencia de 'unix tradicional', entonces puede probar Slackware o FreeBSD (que no es una distribución de Linux pero podría ser de interés para el OP). Además, la familia BSD es particularmente sólida en redes, por lo que puede ofrecer ventajas sobre Linux a los desarrolladores que trabajan en este campo.

De ellos, he usado CentOS, Debian, Fedora, Ubuntu, Slackware y FreeBSD en varias ocasiones en el pasado, además de algunos otros (Vector, SLS, Yggdrasil y una variedad de versiones de Redhat desde aproximadamente 4.0 en adelante). Como entorno de desarrollo 'unix', todos ofrecían las herramientas de la época y podrían haberse utilizado para el trabajo de desarrollo con las herramientas incluidas o descargando y construyendo cualquier otra cosa que necesitaran.

Unix fue descrito una vez como un IDE disfrazado de un sistema operativo, o palabras en ese sentido. Cualquier variante de Unix o Linux puede brindarle la experiencia de desarrollador de Unix si así lo desea. En un momento realmente no me importaba mucho el medio ambiente. Realmente acabo de usar el administrador de ventanas para abrir ventanas xterm e iniciar algunas aplicaciones; todo lo demás se hizo prácticamente desde la línea de comandos. La mayoría de las variedades de Unix o Linux pueden hacer eso.

Si te gusta C, entonces vim o emacs con ctags, make y gcc funcionan bastante bien; puede usar gdb con o sin una interfaz de usuario. Esta cadena de herramientas también proporciona un buen soporte para lenguajes como perl o python y viene con un rico ecosistema de soporte de herramientas de terceros.

Para un flujo de trabajo más centrado en la GUI, realmente se reduce a una elección personal de administrador de ventanas, entorno de escritorio y herramientas de desarrollo. Si te gusta Java, Eclipse y netbeans tienen compilaciones en la mayoría de las principales distribuciones. Existen varios IDEs convencionales con soporte para C / C ++, perl, python y otros lenguajes de script. Se puede hacer que funcionen en la mayoría de las distribuciones de Linux, si no en todas. Java solo es compatible con BSD a través de puertos de terceros, por lo que probablemente esté mejor con Linux si está trabajando con eso.


Por supuesto, FreeBSD no es un sistema Linux. Eso puede no importar para los propósitos del OP. Tenga en cuenta que hay varias otras distribuciones BSD (OpenBSD, NetBSD, y probablemente me he perdido algunas). También hay una versión gratuita de Solaris si te gusta ese tipo de cosas.
Keith Thompson, el

No, no lo es, y supongo que puede o no importar por las mismas razones. Elegí esa porque la mayoría de las otras distribuciones de BSD son bastante especializadas, tal vez con la excepción de Dragonfly o PC-BSD. Supongo que FreeBSD es uno de los BSD más convencionales.
Preocupado por

3
En mi humilde opinión, los puntos uno y tres son relevantes para los desarrolladores. La experiencia de Tuning o Unix solo es interesante para usuarios avanzados y administradores de sistemas. Conducen a incompatibilidades (Unix) e inestabilidades impredecibles (Tuning), ambos venenos para los desarrolladores.
Philip

1
Los BSD y Solaris carecen de soporte de hardware, y después de haber tenido una ventaja en las redes, los BSD también han perdido ese extremo.
vonbrand

12

¿Existe un Linux orientado a los desarrolladores?

Si. Se llama Linux.

Fedora (o cualquier derivado de Red Hat) es tan bueno como cualquier Debian, Slackware, Gentoo o lo que sea. En serio, puedes desarrollar con cualquier distribución importante, es una pregunta tonta pedir un Linux "orientado al desarrollador".

También es una tontería decir que cualquiera de estas distribuciones es mejor que las otras para los desarrolladores. Simplemente no es serio.

Esta pregunta realmente pide argumentos.


15
Es tonto decir que es una pregunta tonta pedir un Linux "orientado al desarrollador" a menos que proporcione buenos argumentos de por qué es tonto.
NN

44
Para ser justos, juaco tiene razón. Linux es bueno para los desarrolladores, punto.
Sirex

77
Realmente necesita calificar "Fedora es tan bueno como cualquier Debian, Slackware ...". Seguramente debe haber razones por las cuales hay diferentes distribuciones, y eso significa que no pueden ser igualmente buenas en una tarea determinada para diferentes personas.
tshepang

1
@Tshepang: Tienes razón, no son igual de buenos "para cualquier tarea" excepto para el desarrollo. Para otras tareas, a veces muestran diferencias, pero para el desarrollo, todas las distribuciones principales son igualmente buenas.
ata

66
Haciendo mi trabajo necesito un entorno estable. Considerando esto, por ejemplo. Fedora y Ubuntu están lejos de ser estables y no los recomiendo. Puede decir "Linux es bueno para los desarrolladores" para el usuario de Windows porque es un estado general. Cuando habla con usuarios de Linux, probablemente estén interesados ​​en cosas más particulares que mejorarían su eficiencia.
marines

5

He probado bastantes distribuciones porque realmente disfruto haciéndolo.

Soy desarrollador y también me he preguntado acerca de un buen Linux para desarrolladores, y en mi experiencia no hay distribuciones de Linux dirigidas específicamente para desarrolladores.

La razón es que, como desarrollador, no solo podrá personalizar cualquier distribución para satisfacer sus necesidades, sino que definitivamente necesitará saber cómo realizar dicha personalización.

Básicamente, si no estás familiarizado con Linux:

1) Debian, porque muchos servidores web de producción ejecutan Debian, por lo que probablemente sea una buena idea conocer cómo están organizadas las máquinas Debian. Lo bueno de Debian es que, dado que es definitivamente el Linux más utilizado (incluidos sus derivados como Ubuntu), el soporte, la comunidad y la cantidad de paquetes precompilados disponibles son extremadamente extensos. Lo malo de Debian es que está orientado a ser un entorno de producción estable y, como tal, rara vez le ofrece las últimas novedades que quizás quiera probar como desarrollador.

2) Arch-Linux (ArchBang en realidad) es mi favorito actual por 3 razones: - No proporciona mucho en cuanto a la instalación y configuración fácil con un solo clic, pero tiene un gran tutorial para ayudarlo a configurar todo como usted Quiero decir, este enfoque le permite aprender mucho sobre cómo funcionan las cosas en segundo plano y significa que para cuando tenga todo configurado correctamente, se sentirá bastante cómodo usando un sistema Linux / Unix. - Es un lanzamiento continuo, lo que significa que nunca tendrá que descargar la nueva versión y reinstalar todo, solo actualice el sistema y ¡Voila! - Intenta implementar todas las últimas novedades para que siempre estés al tanto de las nuevas mejoras en el software, y como desarrollador, eso es realmente apreciable. -Oh y tiene una gran comunidad también.

Pero de todos modos, básicamente depende de usted probar algunas cosas y decidir qué funciona mejor para usted, lo que puedo garantizar es que no importa qué Linux termine atando, siempre hay una manera de configurar / personalizar cosas a su gusto, por lo que el gran problema es aprender cómo hacer esa personalización, y luego elegir algo que ya está preconfigurado lo más cerca posible de lo que quiere terminar.


4

Cada vez hay más sabores diferentes en las distribuciones de Linux; por ejemplo, hay distribuciones como Qimo o DoudouLinux que están orientadas para niños.

Por supuesto, puede cambiarlos para que se ajusten a sus necesidades (estamos hablando de Linux, correcto:]), pero aún así, perderá una gran cantidad de tiempo.

Algunos argumentarán que es una excelente manera de aprender cosas nuevas. Sin embargo, tendrá que tomarse un tiempo para excavar en la distribución y ajustar las cosas de todos modos, es inevitable con cualquier distribución.

Pero lo más importante son los paquetes.

Algunos te ofrecen nuevos (por ejemplo: Arch) y otros muy estables (por ejemplo: Debian).

La documentación también varía mucho, en cuanto a soporte de hardware (controladores, controladores, controladores).

Teniendo en cuenta estos 3 puntos (paquetes, documentación, controladores) y sus propias habilidades, debería tomarse un tiempo para descubrir algunas distribuciones convencionales.

Un buen comienzo podría estar aquí: http://distrowatch.com/


Dije grandes distribuciones, es decir. mainstream, para referirse al hecho de que no hay grandes diferencias entre estos cuando se trata de desarrollo. No me refiero a las distribuciones de nicho.
ata

3

Fedora es uno de los primeros en adoptar nuevas tecnologías, lo que le permite experimentar y desarrollar con ellas meses antes de que estén disponibles en la mayoría de las otras distribuciones. Admite muchos lenguajes de programación y bibliotecas listas para usar, y hace que sea relativamente fácil agregar a su sistema cualquiera que pueda faltar. Tiene una filosofía pura de código abierto, y elige permitir que terceros proporcionen paquetes para funciones que son contrarias a eso. Simplemente no lo llame "Fedora Core" (perdió el "Core" después de que Core y Extras se fusionaron para Fedora 7).


1
¿Quién lo llamó Fedora Core?
tshepang

1
Mucha gente. Durante años.
Ignacio Vazquez-Abrams

1
@ IgnacioVazquez-Abrams ¿qué pasa con gentoo y archlinux?
Jaison Justus

No puedo contarte sobre las distribuciones que no uso. Pero ciertamente no intente correlacionar "compilaciones desde la fuente" con "bueno para la programación".
Ignacio Vazquez-Abrams

3
@ IgnacioVazquez-Abrams: Tampoco debe correlacionar los usos de las tecnologías más nuevas con las mejores para desarrollarse . De todos modos, la pregunta no es lo suficientemente específica ... depende de lo que estés desarrollando. Apuesto a que la mayor parte del desarrollo del mundo se basa en tecnología de vanguardia. OTOH, Fedora es la distribución que sugeriría si uno quisiera hacer el desarrollo de GNOME , al igual que SuSE para el desarrollo de Mono y KDE (esto se basa en el hecho de que SuSE es el financiador inicial del proyecto Mono y se encuentra entre las pocas distribuciones importantes para adoptar KDE como escritorio predeterminado.
tshepang

1

Creo que, según mi propia experiencia y las respuestas aquí, estás buscando más un conjunto de aplicaciones y herramientas que harán que el desarrollo sea más fácil y práctico.

Lo bueno de Linux es que cualquier distribución es muy fácil de personalizar. Le recomendaría que encuentre una lista de software que usa con más frecuencia durante el desarrollo y que cree un gran tarball que pueda llevar de una computadora a otra (si cambia mucho de espacio de trabajo).


0

Para el desarrollo de Java / Eclipse, considere Debian sobre Ubuntu / Linux Mint (y posiblemente incluso 32 bits sobre 64 bits).

Antecedentes: He estado haciendo un desarrollo de Java / Eclipse RCP * y he estado usando Ubuntu y luego Linux Mint, pero me he encontrado con todo tipo de errores molestos, ya sea relacionados con inestabilidades en el entorno de escritorio (Cinnamon en Linux Mint), o un procedimiento algo complicado para instalar Sun Java6 JDK (que es utilizado por nuestro proyecto ... Ubuntu / Linux Mint solo se envía con OpenJDK en sus repositorios).

Recientemente encendí Debian 6 Squeeze en una máquina virtual, y me di cuenta de cómo estas cosas funcionaban mucho mejor. La instalación de Sun Java solo requiere agregar la palabra clave "no libre" después de la cadena del repositorio principal en /etc/apt/sources.list y luego instalar a través de apt-get, y el escritorio (Gnome2) que se entrega también es mucho más estable que las alternativas de Gnome3 / Unity / Cinnamon en Ubuntu / LinuxMint.

[*] Eclipse RCP significa que usas Eclipse no solo como una GUI sino también como una biblioteca para construir tu propia GUI, más o menos.


-2

Ubuntu es genial, en serio.

Tienen todos los paquetes, actualizados y fáciles de instalar. Use la configuración predeterminada (= Gnome) y pasará la mayor parte de su tiempo programando y no configurando.

Instalar el compilador gcc suite, make, autoconf, etc. lleva 5 minutos con una buena conexión a internet. Treinta minutos más y tienes Ruby, Python, Sun JVM y Eclipse listos para correr.

Editar: Ubuntu ofrece paquetes adicionales con símbolos de depuración para muchas bibliotecas. Es bueno tenerlo para desarrolladores de C / C ++.


1
¡Sus comentarios se aplican a casi cualquier otra distribución de Linux!
fpmurphy

1
Interesante ... go2linux.org/debian-ubuntu-centos-fedora-comparison y oswatershed.org (columna derecha) Confía en mí, Ubuntu es amigo del desarrollador.
Philip

-3

La respuesta es que no hay un buen Linux para el desarrollo a menos que crees uno y ningún otro Linux realmente proporcione tanto en esta área como gentoo. Compila todo desde el código fuente (algo con lo que debe ser complicado para ser un desarrollador). El proceso de instalación le enseña más sobre el sistema que cualquier otra distribución, respondiendo muchas preguntas que tendrá a medida que crea aplicaciones.

La mejor parte es que puede elegir qué tipo de programas desea desarrollar. Si desea java instale javac o gcj o ambos. El apoyo de la comunidad es como ningún otro, por lo que si tiene preguntas, serán respondidas o lo llevarán a donde necesita ir para encontrar la respuesta.

Cada IDE que se te ocurra está disponible para "emerger" / instalarlo en gentoo. Aunque no es increíblemente fácil de instalar o "simple" de entender, no obstante, es programación y si no puede instalar una copia de gentoo, no quisiera ejecutar sus programas en mi máquina. La mayoría de las dificultades que las personas tienen para instalarlo se derivan de la falta de conocimiento fundamental de Linux. Te prometo que te gustará después de que tengas todo configurado de la manera que te gusta.

Después de instalarlo, puede hacer una copia de seguridad del alquitrán y ponerlo en cualquier computadora para la que tenga tiempo de reconfigurar un núcleo o usarlo para restaurar cuando las cosas se salgan de control.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.