私は、開発者の側にアピールできるLinuxの最高のフレーバーを探しています。私はオープンソースが好きで、いくつかの異なる言語を使用しています。
Linuxのような開発者向けのものはありますか?
実際には、すべてのディストリビューションはほとんど同じ開発ツールチェーンを使用しているため、一般的な開発作業のプラットフォームとして大きな違いはありません。ただし、開発作業の特定のタイプに関連する特定の利点があるものもあります。
商用ディストリビューション(RHEL、SLES)は、サードパーティのクローズドソースベンダーから最高のサポートを得ています。 (たとえば)Oracleを使用したい場合は、これらのいずれかを使用する方がよいでしょう。ただし、適切なライブラリをインストールすれば、ほとんどのディストリビューションでOracleを使用できます。 CentOSはRHELソースからコンパイルされており、RHEL用に構築されたすべてではないにしてもほとんどの商用ソフトウェアで問題なく動作します。
いじくり回したい場合は、Linux From Scratchを試してみてください。これは、Linuxディストリビューションがどのように連動するかについての非常に優れたチュートリアルです。
オープンソースである、またはこれまでにあったすべてのものがリポジトリから入手できるものが必要な場合は、Debianベースのディストリビューション(DebianまたはUbuntu)が適している可能性があります。 CanonicalがUbuntuのパッケージ管理システムとして使用する.debを選択したのには理由があります。
すべてをn度に調整したい場合、Gentooを使用すると、特定のプロセッサアーキテクチャ用にシステム全体を再構築できます。
「伝統的なunix」体験が必要な場合は、SlackwareまたはFreeBSD(これはLinuxディストリビューションではありませんが、OPに関心があるかもしれません)を試すことができます。また、BSDファミリはネットワーキングが特に強力であるため、この分野で働く開発者にはLinuxよりも利点があります。
それらのうち、私は過去にさまざまな時期にCentOS、Debian、Fedora、Ubuntu、Slackware、FreeBSDに加えて、他のいくつか(Vector、SLS、Yggdrasil、および約4.0以降のRedhatの各種バージョン)を使用しました。 「Unix」開発環境として、それらはすべて時代のツールを提供し、バンドルされたツールを使用した開発作業に、または必要な他のものをダウンロードしてビルドすることにより、使用できた可能性があります。
Unixは、IDEオペレーティングシステムになりすましている、またはその効果を表す言葉として説明されていました。unixまたはlinuxのバリアントは、必要に応じてunix開発者のエクスペリエンスを提供します。ある時点で、私はそうしませんでした。私は本当に環境を気にしていません。私は本当にウィンドウマネージャーを使用してxtermウィンドウを開いていくつかのアプリを起動しました。他のすべてはほとんどコマンドラインから実行されました。ほとんどの種類のUNIXまたはLinuxがそれを実行できます。
Cを使用している場合は、ctags、make、gccを使用してvimまたはemacsを使用すると、かなりうまくいきます。フロントエンドの有無にかかわらずgdbを使用できます。このツールチェーンは、Perlやpythonなどの言語を適切にサポートし、サードパーティツールによるサポートの豊富なエコシステムが付属しています。
GUI中心のワークフローを実現するには、ウィンドウマネージャー、デスクトップ環境、開発ツールを個人的に選択する必要があります。 Javaの場合、Eclipseとnetbeansはほとんどの主要なディストリビューションでビルドされています。C/ C++、Perl、pythonおよび他のスクリプト言語。これらはすべてではないにしてもほとんどのLinuxディストリビューションで機能するように作成できます。Javaはサードパーティのポートを介したBSDでのみサポートされているため、Linuxを使用する方がよいでしょうそれに取り組んでいます。
Linuxのような開発者向けのものはありますか?
はい。それはLinuxと呼ばれています。
Fedora(またはRed Hatの派生物)は、Debian、Slackware、Gentooなどと同じくらい優れています。真剣に、どんな主要なディストリビューションでも開発できます。「開発者指向」のLinuxを求めるのはばかげた質問です。
これらのディストリビューションのいずれかが、開発者にとって他のディストリビューションよりも優れていると言うのもばかげています。それは深刻ではありません。
この質問は本当に議論を招きます。
私は本当に楽しんでいるので、かなりの数のディストリビューションを試しました。
私は開発者であり、開発者にとって優れたLinuxについても疑問に思っています。私の経験では、特に開発者向けのLinuxディストリビューションはありません。
その理由は、開発者として、ニーズに合わせてディストリビューションをカスタマイズできるだけでなく、そのようなカスタマイズを行う方法を明確に知る必要があるからです。
したがって、基本的にLinuxに慣れていない場合:
1)Debian。多くのプロダクションWebサーバーがDebianを実行しているため、Debianマシンがどのように構成されているかを知ることはおそらく良い考えです。 Debianの良いところは、それが明らかに最も広く使用されているLinux(Ubuntuなどの派生物を含む)であるため、サポート、コミュニティ、および利用可能な事前コンパイル済みパッケージの数が非常に広範囲であることです。 Debianの悪い点は、それが安定した本番環境になることを目的としているため、開発者として試してみたい最新の最先端の機能がほとんど提供されていないことです。
2)Arch-Linux(実際にはArchBang)は、次の3つの理由で私のお気に入りです。-ワンクリックで簡単にインストールして構成する方法があまり提供されていませんが、あなたのようにすべてをセットアップするのに役立つ優れたチュートリアルがありますこのアプローチを使用すると、バックグラウンドでの動作について多くのことを学ぶことができます。つまり、すべてが適切にセットアップされるまでには、Linux/Unixシステムを使用してかなり快適に感じることができます。 -それはローリングリリースです。つまり、新しいバージョンをダウンロードしてすべてを再インストールする必要がなく、システムとVoilaを更新するだけです! -最新の最先端のすべてのものを実装しようとするので、ソフトウェアの新しい改善点を常に把握でき、開発者としては非常に優れています。 -ああ、それも素晴らしいコミュニティがあります。
とにかく、とにかくいくつかのことを試して何があなたに最適かを決めるのは基本的にあなた次第です。私が保証できるのは、結局どのLinuxを結んだとしても、常にあなたの好みに合わせて構成/カスタマイズする方法があるからです。大事なことは、そのカスタマイズ方法を学ぶことです。それから、最終的に目的とするものにできるだけ近くなるように、事前に構成済みのものを選択します。
Linuxディストリビューションにはますます異なるフレーバーがあります。たとえば、子供向けのQimoやDoudouLinuxなどのディストリビューションがあります。
もちろん、ニーズに合わせてそれらを変更することもできます(ここではLinuxについて話していますが、:])が、それでもかなりの時間を浪費します。
新しいことを学ぶには素晴らしい方法だと主張する人もいます。ただし、ディストリビューションを掘り下げて調整するには、少し時間をかける必要があります。これは、どのディストリビューションでも避けられないことです。
しかし、最も重要なことはパッケージです。
新鮮なもの(例:Arch)と非常に安定したもの(例:Debian)があります。
ハードウェアサポート(ドライバー、ドライバー、ドライバー!)のように、ドキュメントもさまざまです。
これらの3つのポイント(パッケージ、ドキュメント、ドライバー)と自分のスキルを考慮すると、主流のディストリビューションを見つけるのに少し時間がかかるはずです。
良いスタートはここにあります: http://distrowatch.com/
Fedora は新しいテクノロジーの早期採用者であり、他のほとんどのディストリビューションで利用可能になる数か月前に、それらを使って実験および開発することができます。多くのプログラミング言語とライブラリをそのまま使用でき、不足しているものをシステムに比較的簡単に追加できます。それは純粋なオープンソースの哲学を持ち、サードパーティがそれに反する機能のパッケージを提供できるようにすることを選択しています。 「Fedora Core」と呼ばないでください(Fedora 7でCoreとExtrasがマージされたため、「Core」が失われました)。
私自身の経験とここでの回答に基づいて、開発をより簡単に、より実用的にする一連のアプリケーションとツールを探していると思います。
Linuxのすばらしい点は、どのディストリビューションもカスタマイズが非常に簡単なことです。私は、開発中に最も頻繁に使用するソフトウェアのリストを見つけて、コンピューターからコンピューターに持ち込める大きなtarballを作成することをお勧めします(ワークスペースを頻繁に切り替える場合)。
Java/Eclipse開発の場合は、Ubuntu/Linux MintよりもDebian(そして64ビットよりも32ビットの可能性が高い)を検討してください。
背景:私はいくつかのJava/Eclipse RCP *開発を行っており、Ubuntu以降のLinux Mintを使用していますが、デスクトップ環境の不安定性に関連するあらゆる種類の迷惑なバグに遭遇しました(Linux Mint上のシナモン)、または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を構築するためのライブラリとしても使用することを意味します。