it-swarm.com.de

Linux-Distribution für Entwickler

Ich bin auf der Suche nach dem besten Linux-Geschmack, der die Entwicklerseite von mir ansprechen würde. Ich bin ein Liebhaber von Open Source und benutze verschiedene Sprachen.

Gibt es so etwas wie ein Linux, das sich an Entwickler richtet?

49
Jaison Justus

In der Praxis verwenden alle Distributionen fast dieselbe Entwicklungs-Toolkette, sodass sie sich als Plattform für allgemeine Entwicklungsarbeiten nicht wesentlich unterscheiden. Einige haben jedoch spezifische Vorteile, die für bestimmte Arten der Entwicklungsarbeit relevant sein können:

  • Die kommerziellen Distributionen (RHEL, SLES) werden am besten von Closed-Source-Anbietern von Drittanbietern unterstützt. Wenn Sie mit (z. B.) Oracle arbeiten möchten, sind Sie möglicherweise mit einem dieser Programme besser dran, obwohl Oracle mit den meisten Distributionen zusammenarbeiten kann, wenn Sie die richtigen Bibliotheken installieren. CentOS wurde aus RHEL-Quellen kompiliert und funktioniert gut mit den meisten, wenn nicht allen kommerziellen Softwareprogrammen, die für RHEL entwickelt wurden.

  • Wenn Sie basteln möchten, können Sie Linux From Scratch ausprobieren. Es ist ein ziemlich gutes Tutorial, wie eine Linux-Distribution zusammen hängt.

  • Wenn Sie etwas wollen, für das fast alles, was Open Source ist oder jemals war, aus Repositories verfügbar ist, kann eine Debian-basierte Distribution (entweder Debian oder Ubuntu) ein Gewinn sein. Es gibt einen Grund, warum Canonical .deb als Paketverwaltungssystem für Ubuntu ausgewählt hat.

  • Wenn Sie alles auf den n-ten Grad optimieren möchten, können Sie mit Gentoo Ihr gesamtes System für Ihre spezifische Prozessorarchitektur neu erstellen.

  • Wenn Sie ein "traditionelles Unix" -Erlebnis wünschen, können Sie Slackware oder FreeBSD ausprobieren (dies ist keine Linux-Distribution, könnte aber für das OP von Interesse sein). Darüber hinaus ist die BSD-Familie besonders stark im Networking tätig, sodass sie Entwicklern, die in diesem Bereich arbeiten, Vorteile gegenüber Linux bieten kann.

Von diesen habe ich in der Vergangenheit zu verschiedenen Zeiten CentOS, Debian, Fedora, Ubuntu, Slackware und FreeBSD verwendet, sowie einige andere (Vector, SLS, Yggdrasil und verschiedene Versionen von Redhat ab ca. 4.0). Als "Unix" -Entwicklungsumgebung boten sie alle die Werkzeuge der Ära und konnten für die Entwicklungsarbeit mit den mitgelieferten Werkzeugen oder durch Herunterladen und Erstellen von allem, was Sie sonst noch brauchten, verwendet werden.

Unix wurde einmal als IDE, das sich als Betriebssystem tarnt, oder als entsprechende Wörter beschrieben. Jede Unix- oder Linux-Variante kann Ihnen die Erfahrung eines Unix-Entwicklers bieten, wenn Sie dies möchten. An einem Punkt habe ich es nicht getan Ich habe wirklich nur den Fenstermanager verwendet, um xterm-Fenster zu öffnen und ein paar Apps zu starten. Alles andere wurde so ziemlich über die Befehlszeile erledigt. Die meisten Unix- oder Linux-Varianten können das.

Wenn Sie sich für C interessieren, dann funktionieren vim oder emacs mit ctags, make und gcc ziemlich gut. Sie können gdb mit oder ohne Frontend verwenden. Diese Toolkette bietet auch eine gute Unterstützung für Sprachen wie Perl oder python) und bietet ein umfangreiches Ökosystem an Unterstützung durch Tools von Drittanbietern.

Für einen GUI-zentrierten Workflow kommt es wirklich auf die persönliche Auswahl von Fenstermanager, Desktop-Umgebung und Entwicklungstools an. Wenn Sie sich für Java] interessieren, bauen Eclipse und Netbeans auf den meisten wichtigen Distributionen auf. Es gibt verschiedene konventionelle IDEs mit Unterstützung für C/C++, Perl, python und andere Skriptsprachen. Diese können für die meisten, wenn nicht alle Linux-Distributionen verwendet werden. Java wird nur von BSD über Ports von Drittanbietern unterstützt, sodass Sie mit Linux wahrscheinlich besser dran sind, wenn Sie es sind damit arbeiten.

Gibt es so etwas wie ein Linux, das sich an Entwickler richtet?

Ja. Es heißt Linux.

Fedora (oder ein Red Hat-Derivat) ist so gut wie Debian, Slackware, Gentoo oder was auch immer. Im Ernst, Sie können mit jeder größeren Distribution entwickeln. Es ist eine dumme Frage, nach einem "entwicklerorientierten" Linux zu fragen.

Es ist auch albern zu sagen, dass jede dieser Distributionen für Entwickler besser ist als die anderen. Es ist einfach nicht ernst.

Diese Frage bittet wirklich um Argumente.

12
ata

Ich habe einige Distributionen ausprobiert, weil ich das wirklich gerne mache.

Ich bin Entwickler und habe mich auch über ein gutes Linux für Entwickler gewundert. Meiner Erfahrung nach gibt es keine Linux-Distributionen, die speziell für Entwickler entwickelt wurden.

Der Grund dafür ist, dass Sie als Entwickler nicht nur jede Distribution an Ihre Bedürfnisse anpassen können, sondern auch unbedingt wissen müssen, wie Sie solche Anpassungen vornehmen.

Wenn Sie mit Linux nicht vertraut sind:

1) Debian, da auf vielen Produktionswebservern Debian ausgeführt wird, ist es wahrscheinlich eine gute Idee, sich über die Organisation der Debian-Maschinen zu informieren. Das Gute an Debian ist, dass der Support, die Community und die Anzahl der verfügbaren vorkompilierten Pakete extrem umfangreich sind, da es definitiv das am weitesten verbreitete Linux ist (einschließlich seiner Derivate wie Ubuntu). Das Schlechte an Debian ist, dass es auf eine stabile Produktionsumgebung ausgerichtet ist und Ihnen daher selten die neuesten Informationen bietet, die Sie als Entwickler ausprobieren möchten.

2) Arch-Linux (eigentlich ArchBang) ist aus drei Gründen mein aktueller Favorit: - Es bietet nicht viel für die einfache Installation und Konfiguration mit einem Klick, verfügt jedoch über ein großartiges Tutorial, mit dem Sie alles so einrichten können, wie Sie es möchten Mit diesem Ansatz können Sie viel über die Funktionsweise im Hintergrund lernen und sich mit einem Linux/Unix-System verdammt wohl fühlen, wenn Sie alles richtig eingerichtet haben. - Es ist eine fortlaufende Version, was bedeutet, dass Sie nie die neue Version herunterladen und alles neu installieren müssen. Sie aktualisieren nur das System und Voila! - Es wird versucht, die neuesten neuesten Informationen zu implementieren, damit Sie immer über neue Verbesserungen der Software informiert sind, und als Entwickler ist das wirklich bemerkenswert. -Oh und es hat auch eine tolle Community.

Aber es liegt im Grunde an Ihnen, ein paar Dinge auszuprobieren und zu entscheiden, was für Sie am besten funktioniert. Ich kann garantieren, dass es immer eine Möglichkeit gibt, Dinge nach Ihren Wünschen zu konfigurieren/anzupassen, egal unter welchem ​​Linux Sie sich befinden Die große Sache besteht darin, zu lernen, wie man dieses Customizing durchführt, und dann wählen Sie etwas aus, das bereits so vorkonfiguriert ist, wie es am Ende sein soll.

5
Alexis Finn

Es gibt immer mehr verschiedene Varianten in Linux-Distributionen - zum Beispiel gibt es Distributionen wie Qimo oder DoudouLinux, die sich an Kinder richten.

Natürlich können Sie sie an Ihre Bedürfnisse anpassen (wir sprechen von Linux, richtig:]), aber Sie werden trotzdem viel Zeit verschwenden.

Einige werden argumentieren, dass es eine großartige Möglichkeit ist, neue Dinge zu lernen. Allerdings müssen Sie sich etwas Zeit nehmen, um in der Distribution zu graben und Sachen zu stimmen, es ist bei jeder Distribution unvermeidlich.

Aber das Wichtigste sind die Pakete.

Einige bringen Ihnen frische (z. B. Arch) und andere sehr stabile (z. B. Debian).

Die Dokumentation ist auch sehr unterschiedlich, was die Hardwareunterstützung betrifft (Treiber, Treiber, Treiber!).

In Anbetracht dieser drei Punkte (Pakete, Dokumentation, Treiber) und Ihrer eigenen Fähigkeiten sollten Sie sich etwas Zeit nehmen, um einige Mainstream-Distributionen zu entdecken.

Ein guter Anfang könnte hier sein: http://distrowatch.com/

4
avetis.kazarian

Fedora ist ein früher Anwender neuer Technologien, mit denen Sie Monate bevor sie in den meisten anderen Distributionen verfügbar sind, experimentieren und entwickeln können. Es unterstützt viele sofort einsatzbereite Programmiersprachen und Bibliotheken und macht es relativ einfach, fehlende Programmiersprachen zu Ihrem System hinzuzufügen. Es hat eine reine Open-Source-Philosophie, die es Dritten ermöglicht, Pakete für Funktionen bereitzustellen, die dem widersprechen. Nennen Sie es einfach nicht "Fedora Core" (es hat den "Core" verloren, nachdem Core und Extras für Fedora 7 zusammengeführt wurden).

Ich denke, basierend auf meiner eigenen Erfahrung und den Antworten hier suchen Sie eher nach einer Reihe von Anwendungen und Tools, die die Entwicklung einfacher und praktischer machen.

Das Coole an Linux ist, dass jede Distribution sehr einfach anzupassen ist. Ich würde empfehlen, dass Sie eine Liste der Software finden, die Sie während der Entwicklung am häufigsten verwenden, und einen großen Tarball erstellen, den Sie von Computer zu Computer mitbringen können (wenn Sie häufig zwischen Arbeitsbereichen wechseln).

1
n0pe

Berücksichtigen Sie bei der Java/Eclipse-Entwicklung Debian über Ubuntu/Linux Mint (und möglicherweise sogar 32 Bit über 64 Bit).

Hintergrund: Ich habe einige Java/Eclipse RCP * -Entwicklungen durchgeführt und Ubuntu und später Linux Mint verwendet, bin jedoch auf alle Arten von nervigen Fehlern gestoßen, die entweder auf Instabilitäten in der Desktop-Umgebung zurückzuführen sind (Cinnamon unter Linux Mint) oder ein etwas kompliziertes Verfahren zur Installation von Sun Java6 JDK (das von unserem Projekt verwendet wird ... Ubuntu/Linux Mint wird nur mit OpenJDK in den Repos ausgeliefert).

Ich habe kürzlich Debian 6 Squeeze in einer virtuellen Maschine gestartet und festgestellt, dass diese Dinge viel besser funktionieren. Für die Installation von Sun Java muss nur das Schlüsselwort "non-free" nach der Haupt-Repository-Zeichenfolge in /etc/apt/sources.list hinzugefügt und anschließend über apt-get und (Gnome2) installiert werden. Der mitgelieferte Desktop ist auch viel stabiler als die Gnome3/Unity/Cinnamon-Alternativen in Ubuntu/LinuxMint.

[*] Eclipse RCP bedeutet, dass Sie Eclipse nicht nur als GUI, sondern auch als Bibliothek zum Erstellen einer eigenen GUI verwenden.

0
Samuel Lampa