Phân phối Linux hướng đến các nhà phát triển [đóng]


49

Tôi đang tìm kiếm hương vị tốt nhất của Linux sẽ thu hút phía nhà phát triển của tôi. Tôi là một người yêu thích nguồn mở và sử dụng một số ngôn ngữ khác nhau.

Có một thứ như Linux hướng đến các nhà phát triển?


1
Các cuộc thảo luận mở không thích hợp để đăng ở đây.
Ignacio Vazquez-Abrams

12
Bạn nên xác định một chút ý của bạn - Nhà phát triển có quan điểm rất mạnh mẽ (và thường đối lập) về những gì cấu thành một bản phân phối thân thiện với nhà phát triển.
l0b0

1
@ l0b0: Nhà phát triển cần một lựa chọn lớn các gói cập nhật. Cập nhật các gói thủ công vì chúng quá cũ, không đủ vanilla hoặc không có trong kho của distro là một sự lãng phí thời gian. Người dùng cuối thường không quan tâm nếu gói libxyz-dev cập nhật nằm trong kho lưu trữ.
Philip

hãy xem FreeBSD
Rui F Ribeiro

Câu trả lời:


44

Trong thực tế, các distro đều sử dụng nhiều chuỗi công cụ phát triển giống nhau, vì vậy chúng không thực sự khác biệt đáng kể như một nền tảng cho công việc phát triển chung. Tuy nhiên, một số có những lợi thế cụ thể có thể liên quan đến một số loại công việc phát triển:

  • Các bản phân phối thương mại (RHEL, SLES) có sự hỗ trợ tốt nhất từ ​​các nhà cung cấp nguồn đóng của bên thứ ba. Nếu bạn muốn làm việc với (giả sử) Oracle, bạn có thể tốt hơn với một trong số này, mặc dù Oracle có thể được tạo để hoạt động với hầu hết các bản phân phối nếu bạn cài đặt đúng thư viện. CentOS được tổng hợp từ các nguồn của RHEL và sẽ chơi tốt với hầu hết các phần mềm thương mại được xây dựng cho RHEL.

  • Nếu bạn muốn tinker, bạn có thể dùng thử Linux From Scratch. Đây là một hướng dẫn khá hay về cách phân phối linux kết hợp với nhau.

  • Nếu bạn muốn một cái gì đó mà gần như mọi thứ đã từng có hoặc là nguồn mở có sẵn từ các kho lưu trữ, thì một bản phân phối dựa trên Debian (Debian hoặc Ubuntu) có thể là một chiến thắng. Có một lý do Canonical chọn .deb để sử dụng làm hệ thống quản lý gói cho Ubuntu.

  • Nếu bạn muốn điều chỉnh mọi thứ ở mức độ thứ n thì Gentoo cho phép bạn xây dựng lại toàn bộ hệ thống cho kiến ​​trúc bộ xử lý cụ thể của mình.

  • Nếu bạn muốn có trải nghiệm 'unix truyền thống' thì bạn có thể dùng thử Slackware hoặc FreeBSD (không phải là bản phân phối Linux nhưng có thể được OP quan tâm). Ngoài ra, gia đình BSD đặc biệt mạnh về kết nối mạng nên họ có thể cung cấp các lợi thế so với Linux cho các nhà phát triển làm việc trong lĩnh vực này.

Trong số đó, tôi đã sử dụng CentOS, Debian, Fedora, Ubuntu, Slackware và FreeBSD tại nhiều thời điểm trong quá khứ, cộng với một vài phiên bản khác (Vector, SLS, Yggdrasil và các phiên bản Redhat từ khoảng 4.0 trở đi). Là một môi trường phát triển 'unix', tất cả họ đều cung cấp các công cụ của thời đại và có thể đã được sử dụng cho công việc phát triển với công cụ đi kèm hoặc bằng cách tải xuống và xây dựng bất cứ thứ gì bạn cần.

Unix đã từng được mô tả như là một IDE giả mạo như một hệ điều hành, hoặc từ ngữ cho hiệu ứng đó. Bất kỳ biến thể unix hoặc linux có thể cung cấp cho bạn trải nghiệm nhà phát triển unix nếu bạn muốn điều đó. Đã có lúc tôi không thực sự quan tâm nhiều đến môi trường. Tôi thực sự chỉ sử dụng trình quản lý cửa sổ để mở các cửa sổ xterm và bắt đầu một vài ứng dụng; mọi thứ khác được thực hiện khá nhiều từ dòng lệnh. Hầu hết các loại unix hoặc linux có thể làm điều đó.

Nếu bạn vào C thì vim hoặc emacs với ctags, make và gcc hoạt động khá tốt; bạn có thể sử dụng gdb có hoặc không có giao diện. Chuỗi công cụ này cũng cung cấp hỗ trợ tốt cho các ngôn ngữ như perl hoặc python và đi kèm với một hệ sinh thái hỗ trợ phong phú từ các công cụ của bên thứ ba.

Đối với một quy trình làm việc tập trung vào GUI hơn, nó thực sự đi đến sự lựa chọn cá nhân của trình quản lý cửa sổ, môi trường máy tính để bàn và các công cụ phát triển. Nếu bạn vào Java thì Eclipse và netbeans đã được xây dựng trên hầu hết các bản phát hành chính. Các IDE thông thường khác nhau tồn tại với sự hỗ trợ cho C / C ++, perl, python và các ngôn ngữ script khác. Chúng có thể được thực hiện để hoạt động trên hầu hết nếu không phải tất cả các bản phân phối Linux. Java chỉ được hỗ trợ trên BSD thông qua các cổng của bên thứ 3, vì vậy bạn có thể tốt hơn với linux nếu bạn đang làm việc với điều đó.


Tất nhiên FreeBSD không phải là một hệ thống Linux. Điều đó có thể không quan trọng đối với mục đích của OP. Lưu ý rằng có một số bản phân phối BSD khác (OpenBSD, NetBSD và có lẽ tôi đã bỏ lỡ một số). Ngoài ra còn có một phiên bản Solaris miễn phí nếu bạn thích loại đó.
Keith Thompson

Không, không, và tôi đoán rằng nó có thể hoặc không quan trọng vì nhiều lý do tương tự. Tôi đã chọn cái đó bởi vì hầu hết các bản phát hành BSD khác đều khá chuyên biệt, có lẽ ngoại trừ Dragonfly hoặc PC-BSD. FreeBSD là về xu hướng chủ đạo nhất của BSD, tôi đoán vậy.
Mối quan tâmOfTunbridgeWells

3
IMHO chỉ gạch đầu dòng một và ba có liên quan đến các nhà phát triển. Trải nghiệm điều chỉnh hoặc Unix chỉ thú vị đối với người dùng quyền lực và quản trị viên hệ thống. Chúng dẫn đến sự không tương thích (Unix) và sự không ổn định không thể đoán trước (Điều chỉnh), cả hai đều là chất độc cho các nhà phát triển.
Philip

1
BSD và Solaris rất thiếu hỗ trợ phần cứng và sau khi có lợi thế về các loại mạng, BSD cũng đã mất đi kết thúc đó.
vonbrand

12

Có một thứ như Linux hướng đến các nhà phát triển?

Đúng. Nó được gọi là Linux.

Fedora (hoặc bất kỳ dẫn xuất Red Hat nào) cũng tốt như mọi Debian, Slackware, Gentoo hoặc bất cứ thứ gì. Nghiêm túc mà nói, bạn có thể phát triển với bất kỳ phân phối chính nào, đó là một câu hỏi ngớ ngẩn khi yêu cầu Linux "hướng nhà phát triển".

Thật ngớ ngẩn khi nói rằng bất kỳ bản phân phối nào tốt hơn các bản phát hành khác cho các nhà phát triển. Nó không nghiêm trọng.

Câu hỏi này thực sự cầu xin cho tranh luận.


15
Thật ngớ ngẩn khi nói rằng đó là một câu hỏi ngớ ngẩn khi yêu cầu Linux "hướng đến nhà phát triển" trừ khi bạn cung cấp các lý lẽ tốt cho lý do tại sao nó ngớ ngẩn.
NN

4
Công bằng, juaco là đúng. Linux là tốt cho các nhà phát triển, thời gian.
Sirex

7
Bạn thực sự cần phải đủ điều kiện "Fedora cũng tốt như mọi Debian, Slackware ...". Chắc chắn phải có lý do tại sao có các phân phối khác nhau và điều đó có nghĩa là chúng không thể tốt như nhau trong bất kỳ nhiệm vụ nhất định nào cho những người khác nhau.
tshepang

1
@Tshepang: Bạn nói đúng, họ không tốt như nhau "cho bất kỳ nhiệm vụ nhất định" ngoại trừ phát triển. Đối với các nhiệm vụ khác, đôi khi chúng cho thấy sự khác biệt, nhưng đối với dev'ing, tất cả các phân phối chính đều tốt như nhau.
ata

6
Làm việc tôi cần môi trường ổn định. Xem xét điều này ví dụ. Fedora và Ubuntu không ổn định và tôi không khuyên dùng chúng. Bạn có thể nói "Linux tốt cho nhà phát triển" đối với người dùng Windows vì đó là trạng thái chung. Khi bạn nói chuyện với người dùng Linux, họ có thể quan tâm đến những điều cụ thể hơn sẽ cải thiện hiệu quả của họ.
thủy quân lục chiến

5

Tôi đã thử khá nhiều bản phân phối vì tôi thực sự thích làm như vậy.

Tôi là một nhà phát triển và tôi cũng đã tự hỏi về một Linux tốt cho các nhà phát triển và theo kinh nghiệm của tôi, không có bất kỳ bản phân phối Linux nào dành riêng cho các nhà phát triển.

Lý do là vì là một nhà phát triển, bạn không chỉ có thể tùy chỉnh bất kỳ bản phân phối nào cho phù hợp với nhu cầu của mình, mà bạn chắc chắn sẽ cần biết cách thực hiện tùy chỉnh đó.

Về cơ bản, nếu bạn không quen thuộc với Linux:

1) Debian, vì có rất nhiều máy chủ web sản xuất đang chạy Debian, vì vậy có lẽ nên tìm hiểu cách thức tổ chức các máy Debian. Điểm hay của Debian là vì Linux chắc chắn được sử dụng rộng rãi nhất (bao gồm cả các công cụ phái sinh như Ubuntu), sự hỗ trợ, cộng đồng và số lượng các gói được biên dịch sẵn có là vô cùng rộng rãi. Điều tồi tệ ở Debian là nó hướng đến một môi trường sản xuất ổn định và vì thế hiếm khi cung cấp cho bạn những thứ mới nhất mà bạn có thể muốn thử làm nhà phát triển.

2) Arch-Linux (ArchBang thực sự) là sở thích hiện tại của tôi vì 3 lý do: - Nó không cung cấp nhiều cách cài đặt và cấu hình công cụ dễ dàng bằng một cú nhấp chuột nhưng có một hướng dẫn tuyệt vời để giúp bạn thiết lập mọi thứ như bạn muốn, cách tiếp cận này cho phép bạn tìm hiểu rất nhiều về cách mọi thứ hoạt động ở chế độ nền và có nghĩa là đến lúc bạn có mọi thứ được thiết lập đúng cách, bạn sẽ cảm thấy khá thoải mái khi sử dụng hệ thống Linux / Unix. - Đó là bản phát hành, có nghĩa là bạn sẽ không bao giờ phải tải xuống phiên bản mới và cài đặt lại mọi thứ, bạn chỉ cần cập nhật hệ thống và Voila!. - Nó cố gắng thực hiện tất cả các công cụ mới nhất, vì vậy bạn sẽ luôn theo kịp các cải tiến mới cho phần mềm và là một nhà phát triển thực sự đáng trân trọng. -Oh và nó cũng có một cộng đồng tuyệt vời.

Nhưng dù sao thì về cơ bản là tùy thuộc vào bạn để thử một vài thứ và quyết định cái gì phù hợp nhất với bạn, điều tôi có thể đảm bảo là dù Linux bạn có buộc phải luôn luôn có cách để định cấu hình / tùy chỉnh nội dung theo ý thích của bạn, vì vậy vấn đề lớn là học cách thực hiện tùy chỉnh đó, và sau đó bạn chọn thứ gì đó đã được cấu hình sẵn càng gần càng tốt với những gì bạn muốn kết thúc.


4

Chẳng hạn, ngày càng có nhiều hương vị khác nhau trong các bản phân phối Linux, có những bản phân phối như Qimo hoặc DoudouLinux được định hướng cho trẻ em.

Tất nhiên bạn có thể thay đổi chúng để phù hợp với nhu cầu của bạn (chúng ta đang nói về Linux, phải:]), nhưng vẫn sẽ lãng phí rất nhiều thời gian.

Một số người sẽ cho rằng đó là một cách tuyệt vời để học những điều mới. Tuy nhiên, dù sao bạn cũng sẽ phải mất một thời gian để đào sâu vào bản phân phối và điều chỉnh nội dung, điều đó là không thể tránh khỏi với bất kỳ bản phân phối nào.

Nhưng điều quan trọng nhất là các gói.

Một số mang đến cho bạn những cái mới (ví dụ: Arch) và một số cái khác rất ổn định (ví dụ: Debian).

Các tài liệu cũng thay đổi rất nhiều, như đối với hỗ trợ phần cứng (trình điều khiển, trình điều khiển, trình điều khiển!).

Xem xét 3 điểm này (gói, tài liệu, trình điều khiển) và kỹ năng của riêng bạn, bạn nên dành chút thời gian để khám phá một số phân phối chính thống.

Một khởi đầu tốt có thể ở đây: http://distrowatch.com/


Tôi đã nói phân phối lớn tức là. chính thống, để chỉ thực tế là không có sự khác biệt lớn giữa những điều này khi nói đến phát triển. Tôi không đề cập đến distro thích hợp.
ata

3

Fedora là người đầu tiên áp dụng các công nghệ mới, cho phép bạn thử nghiệm và phát triển với chúng hàng tháng trước khi chúng có mặt ở hầu hết các bản phát hành khác. Nó hỗ trợ nhiều ngôn ngữ lập trình và thư viện, và giúp dễ dàng thêm vào hệ thống của bạn bất kỳ thứ gì có thể thiếu. Nó có một triết lý mã nguồn mở thuần túy, lựa chọn cho phép các bên thứ ba cung cấp các gói cho các tính năng trái ngược với điều đó. Đừng gọi nó là "Fedora Core" (nó đã mất "Core" sau khi Core và Extras sáp nhập cho Fedora 7).


1
Ai gọi nó là Fedora Core?
tshepang

1
Nhiều người. Trong nhiều năm.
Ignacio Vazquez-Abrams

1
@ IgnacioVazquez-Abrams những gì về gentoo và archlinux
Jaison Justus

Tôi không thể nói với bạn về các distro tôi không sử dụng. Nhưng chắc chắn đừng cố tương quan "xây dựng từ nguồn" với "tốt cho lập trình".
Ignacio Vazquez-Abrams

3
@ IgnacioVazquez-Abrams: Bạn nên cũng không tương quan các công nghệ sử dụng mới hơn với tốt hơn để phát triển trên . Dù sao, câu hỏi không đủ cụ thể ... nó phụ thuộc vào những gì bạn đang phát triển. Tôi cá là hầu hết sự phát triển của thế giới đều dựa vào công nghệ tiên tiến không chảy máu. OTOH, Fedora là bản phân phối mà tôi đề xuất nếu muốn thực hiện phát triển Gnome , giống như SuSE cho phát triển Mono và KDE (điều này dựa trên thực tế rằng SuSE là nhà tài trợ ban đầu của dự án Mono và là một trong số ít các bản phát hành chính KDE làm máy tính để bàn mặc định.
tshepang

1

Tôi nghĩ, dựa trên kinh nghiệm của bản thân và câu trả lời ở đây, bạn đang tìm kiếm nhiều hơn cho một bộ ứng dụng và công cụ sẽ giúp phát triển dễ dàng và thiết thực hơn.

Điều thú vị về Linux là mọi phân phối đều rất dễ tùy chỉnh. Tôi khuyên bạn nên tìm một danh sách các phần mềm bạn sử dụng thường xuyên nhất trong khi phát triển và tạo một tarball lớn mà bạn có thể mang từ máy tính sang máy tính (nếu bạn chuyển đổi không gian làm việc nhiều).


0

Để phát triển Java / Eclipse, hãy xem xét Debian qua Ubuntu / Linux Mint (và thậm chí có thể là 32 bit trên 64 bit).

Bối cảnh: Tôi đã thực hiện một số phát triển Java / Eclipse RCP * và đã sử dụng Ubuntu và Linux Mint sau này, nhưng đã gặp phải tất cả các loại lỗi khó chịu, liên quan đến sự không ổn định trong môi trường máy tính để bàn (Cinnamon trên Linux Mint) hoặc thủ tục hơi phức tạp để cài đặt Sun Java6 JDK (được sử dụng bởi dự án của chúng tôi ... Ubuntu / Linux Mint chỉ gửi với OpenJDK trong kho của họ).

Gần đây tôi đã kích hoạt Debian 6 Squeeze trong một máy ảo và nhận ra làm thế nào những thứ này hoạt động tốt hơn nhiều. Cài đặt Sun Java chỉ yêu cầu thêm từ khóa "không miễn phí" sau chuỗi kho lưu trữ chính trong /etc/apt/source.list và sau đó cài đặt qua apt-get và máy tính để bàn (Gnome2) được cung cấp cùng với nó cũng ổn định hơn nhiều hơn các lựa chọn thay thế Gnome3 / Unity / Cinnamon trong Ubuntu / LinuxMint.

[*] Eclipse RCP có nghĩa là bạn sử dụng Eclipse không chỉ như một GUI mà còn là một thư viện để xây dựng GUI của riêng bạn.


-2

Ubuntu là tuyệt vời, nghiêm túc.

Họ có tất cả các gói, cập nhật và dễ cài đặt. Sử dụng cấu hình mặc định (= Gnome) và bạn sẽ dành phần lớn thời gian để lập trình và không định cấu hình.

Cài đặt bộ biên dịch gcc, make, autoconf, v.v ... mất 5 phút với kết nối internet tốt. Ba mươi phút nữa và bạn có sẵn Ruby, Python, Sun JVM và Eclipse.

Chỉnh sửa: Ubuntu cung cấp các gói bổ sung với các biểu tượng gỡ lỗi cho nhiều thư viện. Rất vui khi có các nhà phát triển C / C ++.


1
Nhận xét của bạn áp dụng cho gần như mọi bản phân phối Linux khác!
fpmurphy

1
Thú vị ... go2linux.org/debian-ubfox-centos-fedora-comparisonoswatershed.org (cột bên phải) Hãy tin tôi, Ubuntu là bạn của nhà phát triển.
Philip

-3

Câu trả lời là không có Linux tốt để phát triển, trừ khi bạn tạo một cái và không có linux nào khác thực sự cung cấp nhiều trong lĩnh vực này như gentoo. Bạn biên dịch mọi thứ từ nguồn (thứ gì đó bạn nên là một nhà phát triển. Quá trình cài đặt sẽ dạy cho bạn nhiều hơn về hệ thống hơn bất kỳ bản phân phối nào khác khi trả lời nhiều câu hỏi bạn sẽ có khi bạn tạo ứng dụng.

Phần tốt nhất là bạn có thể chọn loại chương trình bạn muốn phát triển. Nếu bạn muốn java cài đặt javac hoặc gcj hoặc cả hai. Hỗ trợ cộng đồng không giống ai, vì vậy nếu bạn có câu hỏi, họ sẽ được trả lời hoặc đưa bạn đến nơi bạn cần đến để tìm câu trả lời.

Mọi IDE bạn có thể nghĩ là có sẵn để "xuất hiện" / cài đặt vào gentoo. Mặc dù không dễ để cài đặt hoặc "đơn giản" để hiểu, nhưng nether là lập trình và nếu bạn không thể cài đặt một bản sao của gentoo, tôi sẽ không muốn chạy các chương trình của bạn trên máy của tôi. Hầu hết những khó khăn mà mọi người đã cài đặt nó bắt nguồn từ việc thiếu kiến ​​thức cơ bản về Linux. Tôi hứa bạn sẽ thích nó sau khi bạn thiết lập mọi thứ theo cách bạn thích.

Sau khi cài đặt xong, bạn có thể sao lưu tar và đặt nó vào bất kỳ máy tính nào bạn có thời gian để cấu hình lại kernel hoặc sử dụng nó để khôi phục khi mọi thứ trở nên khó khăn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.