Linux-Distribution für Entwickler [geschlossen]

49

Ich bin auf der Suche nach der besten Linux-Variante, die die Entwicklerseite anspricht. Ich bin ein Liebhaber von Open Source und benutze mehrere verschiedene Sprachen.

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

Jaison Justus
quelle
1
Offene Diskussionen sind nicht angebracht, um hier zu posten.
Ignacio Vazquez-Abrams
12
Sie sollten ein wenig spezifizieren, was Sie meinen - Entwickler haben sehr starke (und oft gegensätzliche) Ansichten darüber, was eine entwicklerfreundliche Distribution ausmacht.
l0b0
1
@ l0b0: Entwickler benötigen eine große Auswahl an aktuellen Paketen. Manuelles Aktualisieren von Paketen, weil sie zu alt sind, nicht Vanille genug oder einfach nicht im Repository der Distribution sind, ist Zeitverschwendung. Endbenutzer interessieren sich normalerweise nicht dafür, ob sich das aktuelle libxyz-dev-Paket im Repository befindet.
Philip
Werfen Sie einen Blick auf FreeBSD
Rui F Ribeiro

Antworten:

44

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

  • Die kommerziellen Distributionen (RHEL, SLES) werden am besten von Drittanbietern für geschlossene Quellen unterstützt. Wenn Sie mit (sagen wir) Oracle arbeiten möchten, sind Sie mit einem dieser Tools möglicherweise besser dran, obwohl Oracle für die meisten Distributionen geeignet ist, wenn Sie die richtigen Bibliotheken installieren. CentOS wird aus RHEL-Quellen kompiliert und funktioniert mit den meisten, wenn nicht allen kommerziellen Programmen, 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 war, in 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 vernetzt, sodass sie Entwicklern in diesem Bereich Vorteile gegenüber Linux bieten kann.

Davon habe ich in der Vergangenheit zu verschiedenen Zeiten CentOS, Debian, Fedora, Ubuntu, Slackware und FreeBSD sowie einige andere verwendet (Vector, SLS, Yggdrasil und verschiedene Versionen von Redhat ab etwa 4.0). Als "Unix" -Entwicklungsumgebung boten sie alle die Werkzeuge der damaligen Zeit an und hätten für die Entwicklungsarbeit mit den gebündelten Werkzeugen oder durch Herunterladen und Erstellen von allem, was Sie sonst noch brauchten, verwendet werden können.

Unix wurde einmal als IDE beschrieben, die sich als Betriebssystem tarnt, oder als Worte dafür. Jede Unix- oder Linux-Variante kann Ihnen die Erfahrung eines Unix-Entwicklers verschaffen, wenn Sie dies wünschen. An einem Punkt habe ich mich nicht wirklich für die Umwelt interessiert. Ich habe wirklich nur den Fenstermanager verwendet, um xterm-Fenster zu öffnen und ein paar Apps zu starten. alles andere wurde so ziemlich von der Kommandozeile aus erledigt. Die meisten Unix- oder Linux-Varianten können das.

Wenn Sie C mögen, 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 verfügt über ein umfassendes Ökosystem der Unterstützung durch Tools von Drittanbietern.

Für einen GUI-zentrierten Workflow kommt es wirklich auf eine persönliche Auswahl an Fenstermanagern, Desktop-Umgebungen und Entwicklungstools an. Wenn Sie Java lieben, bauen Eclipse und Netbeans auf den meisten wichtigen Distributionen auf. Es gibt verschiedene herkömmliche IDEs mit Unterstützung für C / C ++, Perl, Python und andere Skriptsprachen. Diese können auf den meisten, wenn nicht allen Linux-Distributionen zum Laufen gebracht werden. Java wird unter BSD nur über Ports von Drittanbietern unterstützt, daher sind Sie unter Linux wahrscheinlich besser aufgehoben, wenn Sie damit arbeiten.

Betroffen vonTunbridgeWells
quelle
Natürlich ist FreeBSD kein Linux-System. Das mag für die Zwecke des OP nicht von Bedeutung sein. Beachten Sie, dass es mehrere andere BSD-Distributionen gibt (OpenBSD, NetBSD und ich habe wahrscheinlich einige verpasst). Es gibt auch eine kostenlose Version von Solaris.
Keith Thompson
Nein, das ist es nicht, und ich vermute, dass es aus den gleichen Gründen wichtig sein kann oder auch nicht. Ich habe diesen ausgewählt, weil die meisten anderen BSD-Distributionen ziemlich spezialisiert sind, vielleicht mit Ausnahme von Dragonfly oder PC-BSD. FreeBSD ist wohl der Mainstream der BSDs.
ConcernedOfTunbridgeWells
3
IMHO sind nur die Punkte eins und drei für Entwickler relevant. Tuning oder Unix-Erfahrung sind nur für Power-User und Systemadministratoren interessant. Sie führen zu Inkompatibilitäten (Unix) und unvorhersehbaren Instabilitäten (Tuning), beides Gift für Entwickler.
Philip
1
Den BSDs und Solaris mangelt es sehr an Hardware-Unterstützung, und nachdem sie einen gewissen Vorteil bei der Vernetzung hatten, haben die BSDs auch diesbezüglich verloren.
Vonbrand
12

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 blöde 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.

an einer
quelle
15
Es ist albern zu sagen, dass es eine alberne Frage ist, nach einem "entwicklerorientierten" Linux zu fragen, es sei denn, Sie liefern gute Argumente dafür, warum es albern ist.
NN
4
Um fair zu sein, hat juaco recht. Linux ist gut für Entwickler, Punkt.
Sirex
7
Sie müssen sich wirklich qualifizieren "Fedora ist so gut wie jedes Debian, Slackware ...". Sicherlich muss es Gründe geben, warum es unterschiedliche Distributionen gibt, und das bedeutet, dass sie für unterschiedliche Menschen in einer bestimmten Aufgabe nicht gleich gut sind.
Tshepang
1
@ Tshepang: Sie haben Recht, sie sind nicht gleich gut "für eine bestimmte Aufgabe", außer für die Entwicklung. Für andere Aufgaben zeigen sie manchmal Unterschiede, aber für das Entwickeln sind alle wichtigen Distributionen gleich gut.
ata
6
Für meine Arbeit brauche ich eine stabile Umgebung. In Anbetracht dessen, z. Fedora und Ubuntu sind alles andere als stabil und ich empfehle sie nicht. Sie können Windows-Benutzern sagen, dass Linux gut für Entwickler ist, da es sich um einen allgemeinen Status handelt. Wenn Sie mit Linux-Benutzern sprechen, sind sie wahrscheinlich an genaueren Dingen interessiert, die ihre Effizienz verbessern würden.
Marines
5

Ich habe einige Distributionen ausprobiert, weil es mir wirklich Spaß macht.

Ich bin ein Entwickler und habe mich auch über ein gutes Linux für Entwickler gewundert, und meiner Erfahrung nach gibt es keine Linux-Distributionen, die speziell auf Entwickler zugeschnitten sind.

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

Wenn Sie mit Linux nicht vertraut sind:

1) Debian, da viele Produktions-Webserver Debian ausführen, ist es wahrscheinlich eine gute Idee, sich mit der Organisation von Debian-Maschinen vertraut zu machen. Das Gute an Debian ist, dass, da es definitiv das am weitesten verbreitete Linux ist (einschließlich seiner Derivate wie Ubuntu), die Unterstützung, die Community und die Anzahl der verfügbaren vorkompilierten Pakete extrem umfangreich sind. Das Schlechte an Debian ist, dass es auf eine stabile Produktionsumgebung ausgerichtet ist und als solches nur selten die neuesten Entwicklungen bietet, die Sie als Entwickler ausprobieren möchten.

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

Aber im Grunde liegt es an Ihnen, ein paar Dinge auszuprobieren und zu entscheiden, was für Sie am besten funktioniert. Ich kann Ihnen garantieren, dass es immer eine Möglichkeit gibt, Dinge nach Ihren Wünschen zu konfigurieren / anzupassen, egal unter Linux Die große Sache ist, zu lernen, wie man das anpasst, und dann wählt man etwas, das bereits vorkonfiguriert ist, so nah wie möglich an dem, was man erreichen möchte.

Alexis Finn
quelle
4

In Linux-Distributionen gibt es immer mehr verschiedene Varianten - 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 über Linux, richtig:]), aber Sie werden trotzdem viel Zeit verschwenden.

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

Aber das Wichtigste sind die Pakete.

Einige bringen Ihnen frische (zB: Arch) und andere sehr stabile (zB: Debian).

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

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/

avetis.kazarian
quelle
Ich habe gesagt, Hauptverteilungen dh. Mainstream, um darauf hinzuweisen, dass es keine großen Unterschiede zwischen diesen gibt, wenn es um Entwicklung geht. Ich beziehe mich nicht auf Nischen-Distributionen.
ata
3

Fedora ist ein Early Adopter neuer Technologien, mit denen Sie Monate, bevor sie in den meisten anderen Distributionen verfügbar sind, experimentieren und sich weiterentwickeln können. Es unterstützt sofort viele Programmiersprachen und Bibliotheken und macht es relativ einfach, fehlende zu Ihrem System hinzuzufügen. Es handelt sich um 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).

Ignacio Vazquez-Abrams
quelle
1
Wer nannte es Fedora Core?
Tshepang
1
Viele Leute. Jahrelang.
Ignacio Vazquez-Abrams
1
@ IgnacioVazquez-Abrams was ist mit Gentoo und Archlinux
Jaison Justus
Ich kann dir nichts über Distributionen erzählen, die ich nicht benutze. Aber versuchen Sie auf keinen Fall, "Builds from Source" mit "Good for Programming" zu korrelieren.
Ignacio Vazquez-Abrams
3
@ IgnacioVazquez-Abrams: Du solltest auch nicht korrelieren, neuere Technologien mit besseren zu entwickeln . Wie auch immer, die Frage ist nicht spezifisch genug ... es hängt davon ab, was Sie entwickeln. Ich wette, der größte Teil der weltweiten Entwicklung basiert auf der Technologie der neuesten Generation. OTOH, Fedora ist die Distribution, die ich vorschlagen würde, wenn man GNOME-Entwicklung machen möchte , genauso wie SuSE für Mono- und KDE-Entwicklung (dies basiert auf der Tatsache, dass SuSE die ersten Geldgeber des Mono-Projekts sind und zu den wenigen großen Distributionen gehören, die es zu akzeptieren gilt KDE als Standard-Desktop.
Tshepang
1

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

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

n0pe
quelle
0

Betrachten Sie für die 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 habe Ubuntu und später Linux Mint verwendet, bin aber auf alle Arten von nervigen Fehlern gestoßen, die entweder mit Instabilitäten in der Desktop-Umgebung zusammenhängen (Cinnamon on Linux Mint) oder a Etwas kompliziertes Verfahren zur Installation von Sun Java6 JDK (das von unserem Projekt verwendet wird ... Ubuntu / Linux Mint wird nur mit OpenJDK in ihren Repos ausgeliefert).

Ich habe kürzlich Debian 6 Squeeze in einer virtuellen Maschine gestartet und festgestellt, wie diese Dinge viel besser funktionieren. Für die Installation von Sun Java muss lediglich das Schlüsselwort "non-free" nach der Haupt-Repository-Zeichenfolge in /etc/apt/sources.list eingefügt und anschließend über apt-get installiert werden. Außerdem ist der mitgelieferte (Gnome2) -Desktop wesentlich 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 Ihrer eigenen GUI verwenden.

Samuel Lampa
quelle
-2

Ubuntu ist großartig, ernst.

Sie haben alle Pakete auf dem neuesten Stand und sind einfach zu installieren. Verwenden Sie die Standardkonfiguration (= Gnome) und Sie werden die meiste Zeit mit Programmieren und nicht mit Konfigurieren verbringen.

Die Installation der GCC Compiler Suite, make, autoconf usw. dauert 5 Minuten mit einer anständigen Internetverbindung. Noch dreißig Minuten und Sie haben Ruby, Python, die Sun JVM und Eclipse einsatzbereit.

Edit: Ubuntu liefert zusätzliche Pakete mit Debug-Symbolen für viele Bibliotheken. Schön für C / C ++ Entwickler.

Philip
quelle
1
Ihre Kommentare gelten für fast jede andere Linux-Distribution!
fpmurphy
1
Interessant ... go2linux.org/debian-ubuntu-centos-fedora-comparison und oswatershed.org (rechte Spalte) Vertrauen Sie mir, Ubuntu ist der Freund des Entwicklers.
Philip
-3

Die Antwort ist, dass es kein gutes Linux für die Entwicklung gibt, es sei denn, Sie erstellen eines und kein anderes Linux bietet in diesem Bereich wirklich so viel wie gentoo. Sie kompilieren alles aus dem Quellcode (etwas, mit dem Sie sich eher auskennen sollten, um ein Entwickler zu sein). Der Installationsprozess bringt Ihnen mehr über das System als jede andere Distribution bei und beantwortet viele Fragen, die Sie beim Erstellen von Anwendungen haben werden.

Das Beste ist, Sie können auswählen, welche Art von Programmen Sie entwickeln möchten. Wenn Sie Java wollen, installieren Sie Javac oder GCJ oder beides. Community-Support ist einzigartig. Wenn Sie Fragen haben, werden diese beantwortet oder Sie werden dorthin geleitet, wo Sie die Antwort finden müssen.

Jede IDE, an die Sie denken können, ist verfügbar, um in gentoo "aufzutauchen" / zu installieren. Obwohl es nicht so einfach zu installieren oder "einfach" zu verstehen ist, programmiert Nether und wenn Sie keine Kopie von gentoo installieren können, möchte ich Ihre Programme nicht auf meinem Computer ausführen. Die meisten Schwierigkeiten bei der Installation ergeben sich aus dem Mangel an grundlegenden Linux-Kenntnissen. Ich verspreche dir, dass es dir gefallen wird, wenn du alles so eingerichtet hast, wie es dir gefällt.

Nachdem Sie es installiert haben, können Sie ein Tar-Backup erstellen und es auf jedem Computer ablegen, auf dem Sie Zeit haben, einen Kernel neu zu konfigurieren oder es wiederherzustellen, wenn die Dinge außer Kontrolle geraten.

Joe
quelle