Dystrybucja Linuksa skierowana do programistów [zamknięte]


49

Szukam najlepszego smaku Linuksa, który spodobałby się stronie dewelopera. Jestem miłośnikiem otwartego oprogramowania i używam kilku różnych języków.

Czy istnieje coś takiego jak Linux skierowany do programistów?


1
Otwarte dyskusje nie są odpowiednie do publikowania tutaj.
Ignacio Vazquez-Abrams

12
Powinieneś sprecyzować, co masz na myśli - programiści mają bardzo silne (i często przeciwstawne) poglądy na to, co stanowi dystrybucję przyjazną dla programistów.
l0b0,

1
@ l0b0: Programiści potrzebują dużego wyboru aktualnych pakietów. Ręczna aktualizacja pakietów, ponieważ są one zbyt stare, niewystarczająco waniliowe lub po prostu nie znajdują się w repozytorium dystrybucji, to strata czasu. Użytkownicy końcowi zwykle nie dbają o to, czy aktualny pakiet libxyz-dev znajduje się w repozytorium.
Philip

spójrz na FreeBSD
Rui F Ribeiro

Odpowiedzi:


44

W praktyce wszystkie dystrybucje korzystają z tego samego łańcucha narzędzi programistycznych, więc tak naprawdę nie różnią się znacząco jako platforma do ogólnych prac programistycznych. Niektóre mają jednak szczególne zalety, które mogą być istotne w przypadku niektórych rodzajów prac rozwojowych:

  • Dystrybucje komercyjne (RHEL, SLES) mają najlepsze wsparcie od zewnętrznych dostawców zamkniętego źródła. Jeśli chcesz pracować z (powiedzmy) Oracle, możesz lepiej skorzystać z jednej z nich, chociaż Oracle może być przystosowane do pracy z większością dystrybucji, jeśli zainstalujesz odpowiednie biblioteki. CentOS jest skompilowany ze źródeł RHEL i będzie działał dobrze z większością, jeśli nie ze wszystkimi komercyjnymi programami zbudowanymi dla RHEL.

  • Jeśli chcesz majstrować, możesz wypróbować Linux From Scratch. Jest to całkiem niezły samouczek na temat tego, w jaki sposób dystrybucja Linuksa się łączy.

  • Jeśli chcesz czegoś, z czego prawie wszystko, co jest lub kiedykolwiek było open-source, jest dostępne z repozytoriów, to dystrybucja oparta na Debianie (Debian lub Ubuntu) może być wygrana. Istnieje powód, dla którego Canonical wybrał .deb jako system zarządzania pakietami dla Ubuntu.

  • Jeśli chcesz dostroić wszystko do n-tego stopnia, Gentoo pozwala przebudować cały system pod kątem konkretnej architektury procesora.

  • Jeśli chcesz mieć „tradycyjny uniks”, możesz wypróbować Slackware lub FreeBSD (co nie jest dystrybucją Linuksa, ale może zainteresować OP). Ponadto rodzina BSD jest szczególnie silna w sieci, więc może zaoferować przewagę nad Linuksem programistom pracującym w tej dziedzinie.

Z nich w przeszłości korzystałem z CentOS, Debian, Fedora, Ubuntu, Slackware i FreeBSD, a także kilka innych (Vector, SLS, Yggdrasil i inne wersje Redhat od około 4.0). Jako środowisko programistyczne „unix” wszyscy oferowali narzędzia tamtej epoki i mogliby zostać wykorzystani do prac programistycznych w pakiecie narzędzi lub do pobierania i budowania wszystkiego, czego potrzebujesz.

Unix był kiedyś opisywany jako IDE maskarujący się jako system operacyjny lub słowa w tym celu. Każdy wariant unixa lub linuxa może dać ci doświadczenie programistyczne dla unixa, jeśli chcesz. W pewnym momencie tak naprawdę nie dbałem o środowisko. Naprawdę właśnie użyłem menedżera okien do otwarcia okien xterm i uruchomienia kilku aplikacji; wszystko inne zostało prawie zrobione z linii poleceń. Może to zrobić większość odmian Uniksa lub Linuksa.

Jeśli jesteś w C, to vim lub emacs z ctags, make i gcc działają całkiem dobrze; możesz używać gdb z nakładką lub bez. Ten łańcuch narzędzi zapewnia również dobrą obsługę języków, takich jak Perl lub Python, i jest wyposażony w bogaty ekosystem obsługi narzędzi zewnętrznych.

Dla bardziej zorientowanego na GUI przepływu pracy tak naprawdę sprowadza się to do osobistego wyboru menedżera okien, środowiska pulpitu i narzędzi programistycznych. Jeśli interesujesz się Javą, to Eclipse i netbeans bazują na większości głównych dystrybucji. Istnieją różne konwencjonalne środowiska IDE z obsługą C / C ++, perl, python i innych języków skryptowych. Można je sprawić, aby działały na większości, jeśli nie na wszystkich dystrybucjach Linuksa. Java jest obsługiwana tylko w BSD przez porty innych firm, więc prawdopodobnie lepiej jest używać Linuksa, jeśli z tym pracujesz.


Oczywiście FreeBSD nie jest systemem Linux. To może nie mieć znaczenia dla celów PO. Zauważ, że istnieje kilka innych dystrybucji BSD (OpenBSD, NetBSD, i pewnie trochę przeoczyłem). Istnieje również darmowa wersja Solaris, jeśli lubisz takie rzeczy.
Keith Thompson

Nie, nie jest i domyślam się, że może, ale nie musi mieć znaczenia z tych samych powodów. Wybrałem tę, ponieważ większość innych dystrybucji BSD jest dość wyspecjalizowanych, być może z wyjątkiem Dragonfly lub PC-BSD. Wydaje mi się, że FreeBSD dotyczy najbardziej głównego nurtu BSD.
ConcernedOfTunbridgeWells

3
Tylko pierwsze i trzy punkty IMHO mają znaczenie dla programistów. Tuning lub Unix są interesujące tylko dla zaawansowanych użytkowników i administratorów systemu. Prowadzą do niezgodności (Unix) i nieprzewidywalnych niestabilności (Tuning), które są trucizną dla programistów.
Philip

1
BSD i Solaris bardzo brakuje wsparcia sprzętowego, a po przewadze w sieci BSD również straciły na tym.
vonbrand

12

Czy istnieje coś takiego jak Linux skierowany do programistów?

Tak. To się nazywa Linux.

Fedora (lub dowolna pochodna Red Hat) jest tak dobra, jak każdy inny Debian, Slackware, Gentoo lub cokolwiek innego. Poważnie, możesz rozwijać się z dowolną dużą dystrybucją, to głupie pytanie o Linuksa „zorientowanego na programistę”.

Głupio jest również powiedzieć, że którekolwiek z tych dystrybucji jest lepsze niż inne dla programistów. To po prostu nie jest poważne.

To pytanie naprawdę wymaga argumentów.


15
Głupio jest mówić, że głupio jest zadawać pytanie o Linuksa „zorientowanego na programistę”, chyba że podasz dobre argumenty za tym, dlaczego jest to głupie.
NN

4
Szczerze mówiąc, Juaco ma rację. Linux jest dobry dla programistów, kropka.
Sirex,

7
Naprawdę musisz się zakwalifikować: „Fedora jest tak dobra, jak każdy inny Debian, Slackware ...”. Z pewnością muszą istnieć powody, dla których istnieją różne dystrybucje, a to oznacza, że ​​nie mogą być równie dobrzy w danym zadaniu dla różnych ludzi.
tshepang

1
@Tshepang: Masz rację, nie są one równie dobre „do każdego zadania”, z wyjątkiem rozwoju. W przypadku innych zadań czasem wykazują różnice, ale w przypadku deweloperów wszystkie główne dystrybucje są równie dobre.
ata

6
Wykonując swoją pracę, potrzebuję stabilnego środowiska. Biorąc to pod uwagę np. Fedora i Ubuntu są dalekie od stabilnych i nie polecam ich. Użytkownik systemu Windows może powiedzieć „Linux jest dobry dla programistów”, ponieważ jest to stan ogólny. Kiedy rozmawiasz z użytkownikami Linuksa, prawdopodobnie są zainteresowani bardziej szczegółowymi rzeczami, które poprawiłyby ich wydajność.
marines

5

Wypróbowałem sporo dystrybucji, ponieważ naprawdę lubię to robić.

Jestem programistą i zastanawiałem się też nad dobrym Linuksem dla programistów, a z mojego doświadczenia wynika, że ​​nie ma żadnych dystrybucji Linuksa przeznaczonych dla programistów.

Powodem jest to, że jako programista nie tylko będziesz mógł dostosować dowolną dystrybucję do swoich potrzeb, ale na pewno będziesz musiał wiedzieć, jak to zrobić.

Więc w zasadzie, jeśli nie znasz Linuxa:

1) Debian, ponieważ na wielu produkcyjnych serwerach WWW działa Debian, więc prawdopodobnie dobrym pomysłem jest poznanie sposobu organizacji maszyn Debiana. Dobrą rzeczą w Debianie jest to, że ponieważ jest zdecydowanie najczęściej używanym Linuksem (w tym jego pochodnymi, takimi jak Ubuntu), wsparcie, społeczność i liczba dostępnych wstępnie skompilowanych pakietów jest niezwykle duża. Złą rzeczą w Debianie jest to, że jest nastawiony na stabilne środowisko produkcyjne i jako taki rzadko oferuje ci najnowocześniejsze rzeczy, które możesz wypróbować jako programista.

2) Arch-Linux (właściwie ArchBang) jest moim ulubionym z 3 powodów: - Nie zapewnia wiele w łatwej instalacji i konfiguracji jednym kliknięciem, ale ma świetny samouczek, który pomoże Ci skonfigurować wszystko tak jak Ty chcesz, to podejście pozwala ci dowiedzieć się dużo o tym, jak rzeczy działają w tle, i oznacza, że ​​zanim wszystko zostanie poprawnie skonfigurowane, będziesz czuć się cholernie dobrze z systemem Linux / Unix. - To jest wydanie ciągłe, co oznacza, że ​​nigdy nie będziesz musiał pobierać nowej wersji i instalować wszystkiego, wystarczy zaktualizować system i Voila! - Próbuje wdrożyć wszystkie najnowsze, najnowocześniejsze rzeczy, abyś zawsze był na bieżąco z nowymi ulepszeniami oprogramowania i jako programista, który jest naprawdę znaczący. - Och, ma też świetną społeczność.

Ale tak czy inaczej, to w zasadzie od Ciebie zależy wypróbowanie kilku rzeczy i wybranie, co będzie dla ciebie najlepsze. Mogę zagwarantować, że bez względu na to, który system Linux skończysz wiązanie, zawsze istnieje sposób na skonfigurowanie / dostosowanie rzeczy do własnych upodobań, więc najważniejszą rzeczą jest nauczenie się, jak to dostosować, a następnie wybierasz coś, co jest już wstępnie skonfigurowane tak blisko, jak to możliwe, do tego, co chcesz skończyć.


4

W dystrybucji Linuksa jest coraz więcej różnych odmian - na przykład istnieją takie dystrybucje jak Qimo lub DoudouLinux, które są zorientowane dla dzieci.

Oczywiście możesz je zmienić zgodnie z własnymi potrzebami (mówimy o Linuksie, prawda:]), ale i tak zmarnujesz mnóstwo czasu.

Niektórzy twierdzą, że to świetny sposób na naukę nowych rzeczy. Będziesz jednak musiał poświęcić trochę czasu na wykopanie dystrybucji i dostrojenie różnych rzeczy, jest to nieuniknione w przypadku każdej dystrybucji.

Ale najważniejsze są pakiety.

Niektóre przynoszą ci świeże (np .: Arch), a inne bardzo stabilne (np .: Debian).

Dokumentacja jest również bardzo zróżnicowana, jeśli chodzi o wsparcie sprzętowe (sterowniki, sterowniki, sterowniki!).

Biorąc pod uwagę te 3 punkty (pakiety, dokumentację, sterowniki) i własne umiejętności, powinieneś poświęcić trochę czasu na odkrycie niektórych głównych dystrybucji.

Dobry początek może być tutaj: http://distrowatch.com/


Powiedziałem, że główne dystrybucje tj. głównego nurtu, odnosząc się do faktu, że nie ma dużych różnic między nimi, jeśli chodzi o rozwój. Nie mam na myśli niszowych dystrybucji.
ata

3

Fedora wcześnie wdraża nowe technologie, dzięki czemu możesz eksperymentować i rozwijać się z nimi na wiele miesięcy, zanim będą dostępne w większości innych dystrybucji. Obsługuje wiele języków programowania i bibliotek po wyjęciu z pudełka i stosunkowo łatwo można dodać do systemu wszystkie, których brakuje. Ma czysto otwartą filozofię, pozwalając stronom trzecim na dostarczanie pakietów dla funkcji, które są temu przeciwne. Po prostu nie nazywaj go „Fedora Core” (stracił on „Core” po połączeniu Core i dodatków dla Fedory 7).


1
Kto to nazwał Fedora Core?
tshepang

1
Mnóstwo ludzi. Przez lata.
Ignacio Vazquez-Abrams,

1
@ IgnacioVazquez-Abrams co z gentoo i archlinuxem
Jaison Justus

Nie mogę ci powiedzieć o dystrybucjach, których nie używam. Ale na pewno nie próbuj skorelować „kompilacji ze źródła” z „dobrym do programowania”.
Ignacio Vazquez-Abrams,

3
@ IgnacioVazquez-Abrams: Nie powinieneś także korelować z nowszymi technologiami, na których lepiej się rozwijać . W każdym razie pytanie nie jest wystarczająco szczegółowe ... zależy od tego, co rozwijasz. Założę się, że większość światowego rozwoju opiera się na najnowocześniejszej technologii. OTOH, Fedora to dystrybucja, którą sugerowałbym, gdyby ktoś chciał zrobić programowanie GNOME , tak samo jak SuSE dla Mono i KDE (jest to oparte na fakcie, że SuSE jest początkowym sponsorem projektu Mono i jest jedną z niewielu głównych dystrybucji do przyjęcia KDE jako domyślny pulpit
tshepang

1

Sądzę, że w oparciu o moje własne doświadczenie i odpowiedzi tutaj szukasz bardziej aplikacji i narzędzi, które ułatwią programowanie i uczynią go bardziej praktycznym.

Fajną rzeczą w Linuksie jest to, że każdą dystrybucję można bardzo łatwo dostosować. Polecam znaleźć listę oprogramowania, którego najczęściej używasz podczas tworzenia i zrobić duży plik tar, który możesz przenosić z komputera na komputer (jeśli często zmieniasz obszary robocze).


0

W przypadku programowania Java / Eclipse, rozważ Debian nad Ubuntu / Linux Mint (a być może nawet 32-bitowy na 64-bitowy).

Tło: Zajmuję się programowaniem Java / Eclipse RCP * i korzystam z Ubuntu, a później Linux Mint, ale natrafiłem na różnego rodzaju irytujące błędy, związane z niestabilnością w środowisku pulpitu (Cinnamon na Linux Mint) lub nieco skomplikowana procedura instalacji Sun Java6 JDK (która jest używana przez nasz projekt ... Ubuntu / Linux Mint jest dostarczany tylko z OpenJDK w swoich repozytoriach).

Niedawno uruchomiłem Debian 6 Squeeze na maszynie wirtualnej i zdałem sobie sprawę, jak te rzeczy działają znacznie lepiej. Instalacja Sun Java wymaga jedynie dodania słowa kluczowego „non-free” po głównym łańcuchu repozytorium w /etc/apt/sources.list, a następnie instalacji za pośrednictwem apt-get, a dostarczony z nim pulpit (Gnome2) jest również znacznie bardziej stabilny niż alternatywy Gnome3 / Unity / Cinnamon w Ubuntu / LinuxMint.

[*] Eclipse RCP oznacza, że ​​używasz Eclipse nie tylko jako GUI, ale także jako biblioteki do budowania własnego GUI.


-2

Ubuntu jest świetne, poważnie.

Posiadają wszystkie pakiety, aktualne i łatwe w instalacji. Użyj domyślnej konfiguracji (= Gnome), a większość czasu poświęcisz na programowanie i konfigurowanie.

Instalacja pakietu kompilatora gcc, make, autoconf itp. Zajmuje przyzwoite połączenie z Internetem przez 5 minut. Jeszcze trzydzieści minut, a Ruby, Python, Sun JVM i Eclipse są gotowe do uruchomienia.

Edycja: Ubuntu dostarcza dodatkowe pakiety z symbolami debugowania dla wielu bibliotek. Miło mieć dla programistów C / C ++.


1
Twoje komentarze dotyczą prawie każdej innej dystrybucji Linuksa!
fpmurphy

1
Ciekawe ... go2linux.org/debian-ubuntu-centos-fedora-comparison i oswatershed.org (prawa kolumna) Zaufaj mi, Ubuntu jest przyjacielem programisty.
Filip

-3

Odpowiedź jest taka, że ​​nie ma dobrego Linuksa do programowania, chyba że stworzysz jeden i żaden inny linux nie zapewnia tak wiele w tej dziedzinie, jak Gentoo. Kompilujesz wszystko ze źródła (coś, z czym powinieneś być słabszy, aby być programistą. Proces instalacji uczy cię więcej o systemie niż o jakiejkolwiek innej dystrybucji odpowiadającej na wiele pytań, które będziesz mieć podczas tworzenia aplikacji.

Najlepsze jest to, że możesz wybrać, jakie programy chcesz opracować. Jeśli chcesz java, zainstaluj javac, gcj lub oba. Wsparcie społeczności nie ma sobie równych, więc jeśli masz pytania, na nie odpowiesz lub dotrzesz tam, gdzie musisz znaleźć odpowiedź.

Każde IDE, które możesz wymyślić, jest dostępne do „emerge” / install w Gentoo. Chociaż instalacja nie jest niewiarygodnie łatwa lub „prosta”, Nether programuje i jeśli nie możesz zainstalować kopii Gentoo, nie chciałbym uruchamiać twoich programów na moim komputerze. Większość trudności, jakie ludzie mają przy instalacji, wynika z braku podstawowej wiedzy o Linuksie. Obiecuję, że ci się spodoba, gdy wszystko skonfigurujesz tak, jak lubisz.

Po zainstalowaniu możesz utworzyć kopię zapasową tar i umieścić ją na dowolnym komputerze, na który masz czas, aby zmienić konfigurację jądra lub użyć go do przywracania, gdy wszystko wymknie się spod kontroli.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.