私はGentooを自宅のメインのデスクトップOSとして使っています。2004年頃から使っています。emerge
ソースベースのOSを管理するコマンドが優れている点が気に入っています。時々他のディストリビューションもチェックしますが、特に気に入っているのはLinux をゼロから学ぶ - 知らない人のために確かに、私は Gentoo を使っていたせいでその点では甘やかされてしまったので、この本を最後まで読んだことはありません。私は Gentoo を LFS + パッケージ マネージャーだと考えています。私はついにこの本を読み終えることに決めたので、新しさをシミュレートするために VM に XUbuntu を貼り付けました。
私はリリース候補版をフォローしていますバージョン 3 - CLFS の Systemdそして私は第6章 - 一時的なシステム - 作成。 ユーザーがmake
Makeのバージョンをコンパイルする必要がある場合、鶏と卵の因果関係問題登場 これが私の次の論理的な疑問につながります。
いつスチュアート・フェルドマン1976 年に作成された
make
このプログラムを、OS に OS 依存関係が含まれていない場合、コンピューター ユーザーはどのようにコンパイルしたのでしょうかmake
。以下の WikiPedia の記事はすべての OS に当てはまると想定してよいでしょうか。1 を完成させるには、OS に依存するすべてのバージョンの make を含めるように make をパッケージ化する必要がありましたか?(以下を参照してください)
プログラム A が必要だったが、OS A でしかコンパイルできない場合、OS B を使用する場合でも OS A を購入する必要があるのでしょうか? (可能であれば、ここでは Windows を無視してください。)
アップデート
- jimmijのコメントによると、make が OS に依存していたのと同じように、OS 固有のコンパイラは存在していましたか?
ウィキペディア言う:
Make が導入される前、Unix ビルド システムは、プログラムのソースに付随するオペレーティング システムに依存する「make」および「install」シェル スクリプトから構成されるのが一般的でした。さまざまなターゲットのコマンドを 1 つのファイルに結合し、依存関係の追跡とアーカイブ処理を抽象化できることは、最新のビルド環境に向けた重要なステップでした。
また、私は 1976 年生まれなので、ここでは歴史的な観点を求めていることに留意してください。
答え1
Make は単に利便性のためです。Make がなくてもソフトウェアを構築できますが、より困難になります。
何かを構築するために実行するとmake
、実行中のコマンドが表示されます。これらのコマンドを手動で実行して、同じ効果を得ることができます。
$ echo "int main() {}" > test.c
$ make test
cc test.c -o test
これにより、 というファイルが作成されますtest
。
次のようにするだけで同じ結果を得ることができます。
cc test.c -o test
make が存在しない場合は、ユーザーにこのcc
コマンドを手動で実行するように指示するか、シェル スクリプトを配布してそのスクリプトを実行するように指示することができます。