Distribuzione Linux orientata verso gli sviluppatori [chiuso]


49

Sto cercando il miglior sapore di Linux che possa piacere al mio lato sviluppatore. Sono un amante dell'open source e utilizzo diverse lingue.

Esiste qualcosa come Linux orientato agli sviluppatori?


1
Le discussioni aperte non sono appropriate per pubblicare qui.
Ignacio Vazquez-Abrams,

12
Dovresti specificare un po 'cosa intendi: gli sviluppatori hanno opinioni molto forti (e spesso opposte) su ciò che costituisce una distribuzione favorevole agli sviluppatori.
20

1
@ l0b0: gli sviluppatori hanno bisogno di una vasta selezione di pacchetti aggiornati. Aggiornare i pacchetti manualmente perché sono troppo vecchi, non abbastanza vaniglia o semplicemente non nel repository della distro è una perdita di tempo. Agli utenti finali di solito non importa se il pacchetto libxyz-dev aggiornato è all'interno del repository.
Filippo,

dai un'occhiata a FreeBSD
Rui F Ribeiro,

Risposte:


44

In pratica, le distro utilizzano tutte la stessa catena di strumenti di sviluppo, quindi non differiscono in modo significativo come piattaforma per il lavoro di sviluppo generale. Alcuni, tuttavia, presentano vantaggi specifici che possono essere rilevanti per alcuni tipi di lavori di sviluppo:

  • Le distro commerciali (RHEL, SLES) hanno il miglior supporto da parte di fornitori di terze parti chiusi. Se vuoi lavorare con (diciamo) Oracle, potresti stare meglio con uno di questi, anche se Oracle può essere fatto funzionare con la maggior parte delle distro se installi le librerie giuste. CentOS è compilato da fonti RHEL e funzionerà bene con la maggior parte, se non con tutti i software commerciali creati per RHEL.

  • Se vuoi armeggiare, potresti provare Linux From Scratch. È un buon tutorial su come una distribuzione linux si blocca.

  • Se vuoi qualcosa per cui quasi tutto ciò che è o è mai stato open source è disponibile dai repository, allora una distribuzione basata su Debian (Debian o Ubuntu) potrebbe essere una vittoria. C'è un motivo per cui Canonical ha scelto .deb da utilizzare come sistema di gestione dei pacchetti per Ubuntu.

  • Se si desidera ottimizzare tutto all'ennesima potenza, Gentoo consente di ricostruire l'intero sistema per l'architettura del processore specifica.

  • Se vuoi un'esperienza "unix tradizionale", puoi provare Slackware o FreeBSD (che non è una distribuzione Linux ma potrebbe interessare l'OP). Inoltre, la famiglia BSD è particolarmente forte nel networking, quindi può offrire vantaggi rispetto a Linux agli sviluppatori che lavorano in questo campo.

Di questi, ho usato CentOS, Debian, Fedora, Ubuntu, Slackware e FreeBSD in varie volte in passato, oltre ad alcuni altri (Vector, SLS, Yggdrasil e versioni assortite di Redhat da circa 4.0 in poi). Come ambiente di sviluppo "unix", tutti offrivano gli strumenti dell'epoca e avrebbero potuto essere utilizzati per il lavoro di sviluppo con gli strumenti in bundle o scaricando e costruendo tutto il necessario.

Unix una volta veniva descritto come un IDE mascherato da sistema operativo, o parole in tal senso. Qualsiasi variante unix o linux può darti l'esperienza di sviluppatore unix se lo desideri. Ad un certo punto non mi importava molto dell'ambiente. Ho davvero usato il gestore delle finestre per aprire le finestre xterm e avviare alcune app; tutto il resto è stato praticamente fatto dalla riga di comando. La maggior parte delle varietà di unix o linux può farlo.

Se sei in C, allora vim o emacs con ctags, make e gcc funzionano abbastanza bene; puoi usare gdb con o senza frontend. Questa catena di strumenti fornisce anche un buon supporto per linguaggi come perl o python e include un ricco ecosistema di supporto da strumenti di terze parti.

Per un flusso di lavoro più incentrato sulla GUI, si tratta in realtà di una scelta personale di window manager, ambiente desktop e strumenti di sviluppo. Se ti piacciono Java, Eclipse e netbeans si basano sulla maggior parte delle distro principali. Esistono vari IDE convenzionali con supporto per C / C ++, perl, python e altri linguaggi di scripting. Questi possono essere fatti funzionare sulla maggior parte se non su tutte le distro Linux. Java è supportato solo su BSD tramite porte di terze parti, quindi probabilmente stai meglio con Linux se ci lavori.


Ovviamente FreeBSD non è un sistema Linux. Ciò potrebbe non essere rilevante ai fini del PO. Nota che ci sono molte altre distribuzioni BSD (OpenBSD, NetBSD e probabilmente ne ho perse alcune). C'è anche una versione gratuita di Solaris se ti piace questo tipo di cose.
Keith Thompson,

No, non lo è, e immagino che possa o meno avere importanza per gli stessi motivi. L'ho scelto perché la maggior parte delle altre distro BSD sono piuttosto specializzate, forse senza l'eccezione di Dragonfly o PC-BSD. Immagino che FreeBSD sia il più mainstream dei BSD.
Preoccupato di

3
Solo i punti elenco IMHO uno e tre sono rilevanti per gli sviluppatori. L'ottimizzazione o l'esperienza Unix sono interessanti solo per utenti esperti e amministratori di sistema. Conducono a incompatibilità (Unix) e instabilità imprevedibili (Tuning), entrambi veleno per gli sviluppatori.
Filippo,

1
I BSD e i Solaris sono gravemente carenti di supporto hardware e, dopo aver avuto una sorta di vantaggio nella rete, anche i BSD hanno perso questo vantaggio.
vonbrand,

12

Esiste qualcosa come Linux orientato agli sviluppatori?

Sì. Si chiama Linux.

Fedora (o qualsiasi derivato di Red Hat) è buono come qualsiasi Debian, Slackware, Gentoo o altro. Seriamente, puoi svilupparti con qualsiasi distribuzione importante, è una domanda stupida chiedere un Linux "orientato agli sviluppatori".

È anche sciocco dire che una di queste distro è migliore delle altre per gli sviluppatori. Semplicemente non è serio.

Questa domanda richiede davvero argomenti.


15
È sciocco dire che è una domanda stupida chiedere un Linux "orientato agli sviluppatori" a meno che non si forniscano buoni argomenti sul perché è sciocco.
NN,

4
In tutta onestà, juaco ha ragione. Linux è buono per gli sviluppatori, punto.
Sirex,

7
Devi davvero qualificarti "Fedora è buona come qualsiasi Debian, Slackware ...". Sicuramente ci devono essere ragioni per cui ci sono diverse distro, e ciò significa che non possono essere ugualmente bravi in ​​un determinato compito per persone diverse.
tshepang

1
@Tshepang: Hai ragione, non sono ugualmente buoni "per ogni dato compito" tranne che per lo sviluppo. Per altri compiti che a volte mostrano differenze, ma per la progettazione, tutte le principali distro sono ugualmente buone.
ata

6
Per il mio lavoro ho bisogno di un ambiente stabile. Considerando questo ad es. Fedora e Ubuntu sono tutt'altro che stabili e non le consiglio. Puoi dire "Linux è buono per gli sviluppatori" per l'utente di Windows perché è stato generale. Quando parli con utenti Linux, probabilmente sono interessati a cose più particolari che migliorerebbero la loro efficienza.
Marines

5

Ho provato alcune distribuzioni perché mi diverto davvero a farlo.

Sono uno sviluppatore e mi sono anche chiesto di un buon Linux per sviluppatori e, nella mia esperienza, non ci sono distribuzioni Linux pensate appositamente per gli sviluppatori.

Il motivo è che come sviluppatore, non solo sarai in grado di personalizzare qualsiasi distribuzione in base alle tue esigenze, ma avrai sicuramente bisogno di sapere come effettuare tale personalizzazione.

Quindi in pratica se non hai familiarità con Linux:

1) Debian, poiché molti server Web di produzione eseguono Debian, quindi è probabilmente una buona idea conoscere l'organizzazione delle macchine Debian. La cosa buona di Debian è che dal momento che è definitivamente il Linux più usato (compresi i suoi derivati ​​come Ubuntu), il supporto, la comunità e il numero di pacchetti precompilati disponibili sono estremamente estesi. La cosa negativa di Debian è che è orientato all'essere un ambiente di produzione stabile e come tale raramente ti offre le ultime novità all'avanguardia che potresti voler provare come sviluppatore.

2) Arch-Linux (attualmente ArchBang) è il mio preferito per 3 motivi: - Non fornisce molto in termini di installazione con un solo clic e configura roba ma ha un ottimo tutorial per aiutarti a configurare tutto come te vuoi, questo approccio ti consente di imparare molto su come funzionano le cose in background e significa che quando avrai tutto impostato correttamente ti sentirai dannatamente a tuo agio usando un sistema Linux / Unix. - È rilascio progressivo, il che significa che non dovrai mai scaricare la nuova versione e reinstallare tutto, basta aggiornare il sistema e Voila! - Cerca di implementare tutte le ultime novità in modo da rimanere sempre aggiornato sui nuovi miglioramenti del software e come sviluppatore che è davvero apprezzabile. -Oh e ha anche una grande comunità.

Ma in ogni caso spetta a te provare alcune cose e decidere cosa funziona meglio per te, ciò che posso garantire è che, indipendentemente dal fatto che Linux finisca per legare, c'è sempre un modo per configurare / personalizzare le cose a tuo piacimento, quindi il grosso problema è imparare come farlo personalizzando, e quindi scegli qualcosa che è già preconfigurato il più vicino possibile a quello che vuoi finire.


4

Ci sono sempre più gusti diversi nelle distribuzioni Linux - ad esempio ci sono distribuzioni come Qimo o DoudouLinux che sono orientate per i bambini.

Ovviamente puoi cambiarli in base alle tue esigenze (stiamo parlando di Linux, giusto:]), ma perderai comunque molto tempo.

Alcuni sosterranno che è un ottimo modo per imparare cose nuove. Tuttavia, dovrai dedicare un po 'di tempo a scavare nella distribuzione e a mettere a punto le cose, è inevitabile con qualsiasi distribuzione.

Ma la cosa più importante sono i pacchetti.

Alcuni ti porta nuovi (ad esempio: Arch) e altri molto stabili (ad esempio: Debian).

La documentazione varia anche molto, per quanto riguarda il supporto hardware (driver, driver, driver!).

Considerando questi 3 punti (pacchetti, documentazione, driver) e le tue abilità, dovresti impiegare del tempo per scoprire alcune distro tradizionali.

Un buon inizio potrebbe essere qui: http://distrowatch.com/


Ho detto grandi distribuzioni, vale a dire. mainstream, per fare riferimento al fatto che non ci sono grandi differenze tra questi quando si tratta di sviluppo. Non mi riferisco a distro di nicchia.
ata

3

Fedora è una delle prime ad adottare nuove tecnologie, che ti consente di sperimentare e sviluppare con loro mesi prima che siano disponibili nella maggior parte delle altre distribuzioni. Supporta molti linguaggi di programmazione e librerie pronte all'uso e rende relativamente facile aggiungere al sistema tutto ciò che potrebbe mancare. Ha una pura filosofia open-source, scegliendo di consentire a terzi di fornire pacchetti per funzionalità contrarie. Basta non chiamarlo "Fedora Core" (ha perso il "Core" dopo che Core ed Extras si sono fusi con Fedora 7).


1
Chi l'ha chiamato Fedora Core?
Tshepang,

1
Pieno di gente. Per anni.
Ignacio Vazquez-Abrams,

1
@ IgnacioVazquez-Abrams che dire di gentoo e archlinux
Jaison Justus

Non posso parlarti di distro che non uso. Ma certamente non provare a mettere in relazione "build dal sorgente" con "buono per la programmazione".
Ignacio Vazquez-Abrams,

3
@ IgnacioVazquez-Abrams: Inoltre, non dovresti correlare utilizza le tecnologie più recenti con le quali sviluppare meglio . Comunque, la domanda non è abbastanza specifica ... dipende da cosa stai sviluppando. Scommetto che la maggior parte dello sviluppo del mondo si basa su una tecnologia all'avanguardia. OTOH, Fedora è la distribuzione che suggerirei se si volesse fare lo sviluppo di GNOME , lo stesso di SuSE per lo sviluppo di Mono e KDE (questo in base al fatto che SuSE è il finanziatore iniziale del progetto Mono ed è tra le poche distro principali da abbracciare KDE come desktop predefinito
tshepang

1

Penso che, in base alla mia esperienza e alle risposte qui, stai cercando di più una suite di applicazioni e strumenti che renderanno lo sviluppo più semplice e pratico.

La cosa bella di Linux è che qualsiasi distribuzione è molto facile da personalizzare. Ti consiglierei di trovare un elenco di software che usi più spesso durante lo sviluppo e di creare un grande tarball che puoi portare da un computer all'altro (se cambi molto spazio di lavoro).


0

Per lo sviluppo di Java / Eclipse, considera Debian su Ubuntu / Linux Mint (e forse anche 32 bit su 64 bit).

Antefatto: ho fatto un po 'di sviluppo Java / Eclipse RCP * e ho usato Ubuntu e successivamente Linux Mint, ma mi sono imbattuto in tutti i tipi di bug fastidiosi, sia relativi alle instabilità nell'ambiente desktop (Cinnamon su Linux Mint), sia a procedura piuttosto complicata per installare Sun Java6 JDK (che viene utilizzato dal nostro progetto ... Ubuntu / Linux Mint viene fornito solo con OpenJDK nei loro repository).

Di recente ho avviato Debian 6 Squeeze in una macchina virtuale e ho capito come funzionavano molto meglio queste cose. L'installazione di Sun Java richiede solo l'aggiunta della parola chiave "non libera" dopo la stringa del repository principale in /etc/apt/sources.list e quindi l'installazione tramite apt-get, e il desktop (Gnome2) fornito con esso è anche molto più stabile rispetto alle alternative Gnome3 / Unity / Cinnamon in Ubuntu / LinuxMint.

[*] Eclipse RCP significa che usi Eclipse non solo come una GUI ma anche come libreria per creare la tua GUI, in un certo senso.


-2

Ubuntu è eccezionale, sul serio.

Hanno tutti i pacchetti, aggiornati e facili da installare. Usa la configurazione predefinita (= Gnome) e passerai la maggior parte del tuo tempo a programmare e non a configurare.

L'installazione della suite di compilatori gcc, make, autoconf ecc. Richiede 5 minuti con una connessione Internet decente. Altri trenta minuti e hai pronto Ruby, Python, Sun JVM ed Eclipse.

Modifica: Ubuntu offre pacchetti extra con simboli di debug per molte librerie. Bello avere per gli sviluppatori C / C ++.


1
I tuoi commenti si applicano a quasi tutte le altre distribuzioni Linux!
fpmurphy,

1
Interessante ... go2linux.org/debian-ubuntu-centos-fedora-comparison e oswatershed.org (colonna di destra) Fidati di me, Ubuntu è amico dello sviluppatore.
Filippo,

-3

La risposta è che non esiste un buon Linux per lo sviluppo a meno che tu non ne crei uno e nessun altro Linux fornisca davvero tanto in questo campo quanto gentoo. Compili tutto dalla fonte (qualcosa con cui dovresti essere fragile per essere un dev. Il processo di installazione ti insegna più sul sistema di qualsiasi altra distribuzione per rispondere a molte domande che avrai mentre crei applicazioni.

La parte migliore è che puoi scegliere il tipo di programmi che vuoi sviluppare. Se vuoi java, installa javac o gcj o entrambi. Il supporto della comunità è come nessun altro, quindi se hai domande, riceveranno una risposta o ti porteranno dove devi andare per trovare la risposta.

Ogni IDE che ti viene in mente è disponibile per "emergere" / installare in gentoo. Sebbene non sia incredibilmente facile da installare o "semplice" da capire, nether sta programmando e se non è possibile installare una copia di Gentoo, non vorrei eseguire i tuoi programmi sulla mia macchina. La maggior parte delle difficoltà che le persone incontrano per installarlo derivano da una mancanza di conoscenze fondamentali di Linux. Ti prometto che ti piacerà dopo aver impostato tutto come preferisci.

Dopo averlo installato, è possibile eseguire il backup di un tar e metterlo su qualsiasi computer per il quale si ha il tempo di riconfigurare un kernel o di usarlo per il ripristino quando le cose sfuggono di mano.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.