Linuxユーザーがアプリケーションをインストールするためにソースコードをコンパイルする必要がある理由を理解できません。 Windowsプラットフォームのようにすべてがバイナリパッケージで準備できないのはなぜですか?
もちろん、私はコンパイルと実行について文句を言っていると誤解しないでください。私は本当にそれをとても好きで、コマンドラインを練習し、プログラミングプロセスの理解を深めるのに役立ちます。しかし、私の友人や家族はそうは思いません。まあ、彼らのポイントは、彼らがプログラマーではないということです。実際、Ubuntuやそのシリーズなど、アプリケーションを簡単にインストールできるいくつかのディストリビューションがあります。ただし、インターネット上のすべてのアプリケーションがこれを実行できるわけではありません。 UbuntuやMintでも同様です。
それでは、アプリケーションをインストールするためにソースコードをコンパイルする必要があるのはなぜですか? (「バイナリパッケージを使用せずにソースコードをコンパイルすると、どのような利点がありますか?」への追加の回答を得ることができれば幸いです。)
答え1
誰が必要だと言いましたか?さて、主にLinux From ScratchとGentooを必要とするいくつかのディストリビューションがあることをお伝えします。
ただし、98%の場合は、デプロイメントリポジトリとパッケージマネージャを介して、またはサードパーティのリポジトリ(Javaのwebupd8teチームなど)を介して必要なものを入手できます。
利点を得るために、特定のアーキテクチャ(i686 対 i486 命令)をコンパイルしてターゲットにするか、特定のオプションを含めるか削除することができます。あるいは、あなたのバージョンで特別な機能を実行したいかもしれないので、ソースコードをインポートしていくつかの変更、コンパイル、インストールを行うことができます。
答え2
@ivanivanが答えたように、ソースでコンパイルする必要があるディストリビューションはほとんどありません(Gentooはこれを自動的に行います)。伝統的にソースコードを好む主な理由は、Unixシステム間のUnixスタイルとアーキテクチャの大きな違いによるものです。 V対。 BSD、またはMIPS vs。 Intelなど)、最初からコンパイルする必要がある最大の理由は、インストールするプログラムがリポジトリに含まれていない場合、何かを修正したり、特定の項目を追加するパッチがある場合です。特徴。
特定のパッケージは、プログラムがリポジトリにない場合でも、ほとんどのディストリビューションから頻繁にダウンロードしてインストールできます.deb
。.rpm
これはJavaの例です。その後、ディストリビューションは依存関係を追跡し、必要に応じて更新する困難なタスクを実行します。 Linux と Windows でこれらのパッケージをインストールする主な違いは、インストーラが通常 Linux のパッケージから分離され、機能的に独立していることです。 Windows(Windowsインストールシステムを使用しても、MSIインストーラはWindowsインストーラを直接使用します。)