针对开发人员的Linux发行版


49

我正在寻找对开发人员有利的Linux最佳风格。我是开放源代码的爱好者,并且使用几种不同的语言。

是否有面向开发人员的Linux之类的东西?


1
公开讨论不适合在此处发布。
伊格纳西奥·巴斯克斯

12
您应该说明一下您的意思-开发人员对构成开发人员友好的发行版的观点非常强烈(并且经常持反对意见)。
l0b0 2011年

1
@ l0b0:开发人员需要大量的最新软件包。手动更新软件包是因为它们太旧,不够香草或仅不在发行版的存储库中,这是浪费时间。最终用户通常不在乎最新的libxyz-dev软件包是否在存储库中。
菲利普

看看FreeBSD
Rui F Ribeiro

Answers:


44

实际上,发行版都使用相同的开发工具链,因此它们作为一般开发工作的平台并没有太大的区别。但是,有些确实具有某些特定优势,这些优势可能与某些类型的开发工作有关:

  • 商业发行版(RHEL,SLES)获得了第三方封闭源供应商的最佳支持。如果您想使用(例如)Oracle,则最好使用其中之一,尽管如果您安装了正确的库,则可以使Oracle与大多数发行版一起使用。CentOS是从RHEL的源代码编译而来的,可以与为RHEL构建的大多数(如果不是全部)商业软件很好地兼容。

  • 如果您想修补,可以尝试Linux From Scratch。这是一个很好的教程,介绍了Linux发行版如何挂在一起。

  • 如果您想从存储库中获得几乎所有开源版本的东西,那么基于Debian的发行版(Debian或Ubuntu)可能是一个胜利。Canonical选择.deb作为Ubuntu的软件包管理系统是有原因的。

  • 如果您想将所有内容调整到第n级,那么Gentoo可以为您的特定处理器体系结构重建整个系统。

  • 如果您想要“传统的Unix”体验,则可以尝试Slackware或FreeBSD(这不是Linux发行版,但OP可能会感兴趣)。而且,BSD系列在网络方面特别强大,因此它们可以为从事该领域的开发人员提供优于Linux的优势。

其中,我过去曾在不同时间使用过CentOS,Debian,Fedora,Ubuntu,Slackware和FreeBSD,以及其他一些版本(Vector,SLS,Yggdrasil和Redhat的各种版本(从4.0开始))。作为“ unix”开发环境,它们都提供了那个时代的工具,并且可以与捆绑的工具一起使用,也可以通过下载和构建其他所需的工具用于开发工作。

Unix曾经被描述为伪装成操作系统的IDE,或类似的词。如果需要,任何unix或linux变体都可以为您提供unix开发人员体验。在某一时刻,我并不十分关心环境。我真的只是使用窗口管理器来打开xterm窗口并启动一些应用程序。其他所有事情几乎都是通过命令行完成的。大部分的unix或linux都可以做到这一点。

如果您喜欢C语言,那么带ctags的vim或emacs,make和gcc可以很好地工作。您可以在有或没有前端的情况下使用gdb。该工具链还为诸如perl或python之类的语言提供了良好的支持,并带有来自第三方工具的丰富支持体系。

对于以GUI为中心的工作流程,实际上取决于窗口管理器,桌面环境和开发工具的个人选择。如果您喜欢Java,那么Eclipse和netbeans可以在大多数主要发行版上进行构建。存在各种常规的IDE,它们支持C / C ++,perl,python和其他脚本语言。可以使它们在大多数(甚至不是全部)Linux发行版上都可以使用。仅通过3rd party端口在BSD上支持Java,因此如果使用Linux,则最好使用linux。


当然,FreeBSD不是Linux系统。对于OP而言,这可能并不重要。请注意,还有其他一些BSD发行版(OpenBSD,NetBSD,我可能已经错过了一些)。如果您喜欢这种事情,那么还有一个免费的Solaris版本。
基思·汤普森

不,不是,而且我猜出于相同的原因,它可能也可能不重要。我之所以选择它,是因为其他大多数BSD发行版都是非常专业的,也许只有Dragonfly或PC-BSD除外。我猜FreeBSD是BSD中最主流的。
ConcernedOfTunbridgeWells,

3
恕我直言,只有要点1和3与开发人员有关。调优或Unix经验仅对高级用户和系统管理员有意义。它们导致不兼容(Unix)和不可预测的不稳定(Tuning),对开发人员而言都是有害的。
菲利普

1
BSD和Solaris严重缺乏硬件支持,并且在具有各种网络优势之后,BSD也因此失去了优势。
vonbrand 2013年

12

是否有面向开发人员的Linux之类的东西?

是。它称为Linux。

Fedora(或任何Red Hat衍生产品)与任何Debian,Slackware,Gentoo或其他任何产品一样出色。认真地说,您可以使用任何主要发行版进行开发,但要求“面向开发人员”的Linux是一个愚蠢的问题。

说这些发行版中的任何一个对开发人员来说都比其他发行版更好是很愚蠢的。只是不严重。

这个问题确实是在争辩。


15
愚蠢的说,要求“面向开发人员”的Linux是一个愚蠢的问题,除非您就为何如此愚蠢提供了很好的论据。
NN

4
公平地说,juaco是正确的。Linux对开发人员有好处。
Sirex

7
您确实需要限定“ Fedora与任何Debian,Slackware一样出色”。当然,存在不同发行版的原因一定是有原因的,这意味着它们在针对不同人员的任何给定任务中不能同样出色。
tshepang 2011年

1
@Tshepang:您是对的,除了开发之外,它们“对于任何给定的任务” 都不好。对于其他任务,有时确实会有所不同,但对于开发而言,所有主要发行版都同样出色。
ata

6
在工作中,我需要稳定的环境。考虑到这一点。Fedora和Ubuntu并不稳定,我不推荐它们。您可以对Windows用户说“ Linux对开发人员有益”,因为它是一般状态。当您与Linux用户交谈时,他们可能会对更特殊的事情感兴趣,这会提高他们的效率。
海军陆战队

5

我已经尝试了很多发行版,因为我真的很喜欢这样做。

我是一名开发人员,我也想知道对于开发人员而言,一款好的Linux是什么,而根据我的经验,没有任何专门针对开发人员的Linux发行版。

原因是作为开发人员,您不仅可以自定义任何发行版来满足您的需求,而且您肯定需要知道如何进行这种自定义。

因此,基本上,如果您不熟悉Linux:

1)Debian,因为许多生产Web服务器都在运行Debian,所以了解Debian机器的组织方式可能是一个好主意。关于Debian的好处是,由于它肯定是使用最广泛的Linux(包括它的衍生产品,如Ubuntu),因此支持,社区和可用的预编译软件包非常广泛。关于Debian的坏事是,它倾向于成为一个稳定的生产环境,因此很少为您提供您可能想作为开发人员尝试的最新尖端技术。

2)Arch-Linux(实际上是ArchBang)是我当前的最爱,其原因有3个:-它不提供简单的一键式安装和配置方式,但是提供了一个出色的教程来帮助您像您一样进行一切设置想要的话,这种方法可以让您了解很多事情在后台的工作方式,这意味着到您正确设置所有东西时,您将对使用Linux / Unix系统感到非常满意。-这是滚动版本,这意味着您永远不必下载新版本并重新安装所有内容,只需更新系统和Voila!。-它尝试实现所有最新的前沿技术,因此您将始终保持对软件的新改进,并作为一名真正值得赞赏的开发人员。-哦,它也有一个很棒的社区。

但是无论如何,基本上要由您来尝试一些东西并决定最适合您的东西,我可以担保的是,无论您最终选择哪种Linux,总有一种可以根据自己的喜好配置/自定义东西的方法,因此最重要的是学习如何进行自定义,然后选择已经预先配置的内容,使其尽可能接近最终结果。


4

Linux发行版中有越来越多的不同口味,例如,针对儿童的发行版,例如Qimo或DoudouLinux。

当然,您可以更改它们以满足您的需要(我们在谈论Linux,对:]),但是,仍然会浪费大量时间。

有人会说这是学习新事物的好方法。但是,无论如何,您都将需要花费一些时间来挖掘发行版并对其进行调整,这对于任何发行版都是不可避免的。

但最重要的是包装。

一些为您带来了新鲜的(例如:Arch),而另一些则为您带来了稳定的(例如:Debian)。

关于硬件支持(驱动程序,驱动程序,驱动程序!),文档也相差很大。

考虑到这三点(软件包,文档,驱动程序)和您自己的技能,您应该花一些时间来发现一些主流发行版。

一个好的开始可以在这里:http : //distrowatch.com/


我确实说过主要发行机构。主流,指的是在开发方面,两者之间没有太大差异。我不是在指利基发行版。
2012年

3

Fedora是新技术的早期采用者,它使您可以在大多数其他发行版中都可以使用它们的几个月之前进行试验和开发。它开箱即用地支持许多编程语言和库,并且可以相对容易地将任何可能缺少的内容添加到系统中。它具有纯粹的开源理念,选择允许第三方提供与之相反的功能包。只是不要称它为“ Fedora Core”(在Core和Extras合并为Fedora 7之后,它失去了“ Core”)。


1
谁称它为Fedora Core?
tshepang

1
很多人。多年。
伊格纳西奥·巴斯克斯

1
@ IgnacioVazquez-Abrams gentoo和archlinux怎么样
Jaison Justus 2011年

关于我不使用的发行版,我无法告诉您。但是,当然不要尝试将“源代码生成”与“有益于编程”相关联。
伊格纳西奥·巴斯克斯

3
@ IgnacioVazquez-Abrams:您也不应将使用更新的技术更好的技术联系起来。无论如何,这个问题还不够具体……这取决于您所开发的内容。我敢打赌,世界上大多数开发都依赖于不流血的前沿技术。OTOH,Fedora是发行版,我建议是否要进行GNOME开发,与SuSE for Mono和KDE开发一样(这是基于SuSE是Mono项目的最初出资者,并且是少数几个主要发行版之一) KDE作为默认桌面
tshepang 2011年

1

我认为,根据我自己的经验和此处的答案,您正在寻找一套使开发更轻松,更实用的应用程序和工具。

关于Linux的很酷的事情是,任何发行版都非常易于定制。我建议您找到一个在开发过程中最常用的软件列表,并制作一个大型的tar包,您可以在计算机之间随身携带(如果您经常切换工作空间)。


0

对于Java / Eclipse开发,请考虑在Ubuntu / Linux Mint上使用Debian(甚至在64位上甚至32位)。

背景:我一直在进行一些Java / Eclipse RCP *开发,并一直在使用Ubuntu和更高版本的Linux Mint,但是遇到了各种烦人的bug,这些臭虫与桌面环境(Linux Mint上的Cinnamon)的不稳定性有关,或者安装Sun Java6 JDK的过程有些复杂(我们的项目使用该过程... Ubuntu / Linux Mint仅在其仓库中附带OpenJDK)。

我最近在虚拟机中启动了Debian 6 Squeeze,并意识到这些东西如何更好地工作。安装Sun Java只需要在/etc/apt/sources.list中的主存储库字符串之后添加“ non-free”关键字,然后通过apt-get进行安装,并且随附的(Gnome2)桌面也更加稳定比Ubuntu / LinuxMint中的Gnome3 / Unity / Cinnamon替代品要好。

[*] Eclipse RCP意味着您不仅将Eclipse用作GUI,而且还将其用作构建自己的GUI的库。


-2

真的,Ubuntu很棒。

他们拥有所有最新的软件包,易于安装。使用默认配置(= Gnome),您将花费大部分时间进行编程而不进行配置。

通过良好的Internet连接,安装gcc编译器套件,make,autoconf等需要5分钟。再过30分钟,您就可以运行Ruby,Python,Sun JVM和Eclipse。

编辑:Ubuntu为许多库提供了带有调试符号的额外软件包。C / C ++开发人员很高兴。


1
您的评论几乎适用于所有其他Linux发行版!
fpmurphy

1
有趣的... go2linux.org/debian-ubuntu-centos-fedora-comparisonoswatershed.org(右列)相信我,Ubuntu是开发人员的朋友。
菲利普(Philip)

-3

答案是,没有一个良好的Linux开发环境,就无法创建一个gentoo,并且没有其他linux在此方面能够提供真正的功能。您可以从源代码编译所有内容(成为开发人员应该有些虚弱。安装过程比其他任何发行版都可以教您更多有关系统的知识,它可以回答您在创建应用程序时遇到的许多问题。

最好的部分是您可以选择要开发的程序类型。如果要Java,则安装javac或gcj或两者。社区支持无与伦比,因此,如果您有任何疑问,将得到解答或将您带到找到所需答案的地方。

您可以想到的每个IDE都可以“嵌入” /安装到gentoo中。尽管不是很容易安装或“简单”地理解,但它正在编程中,如果您不能安装gentoo的副本,我将不希望在我的机器上运行您的程序。人们安装它的大多数困难都来自缺乏基本的Linux知识。我保证您会按照自己喜欢的方式进行所有设置后喜欢它。

安装完它之后,您可以备份tar,并将其放在有时间重新配置内核的任何计算机上,或者在出现问题时使用它还原。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.