Linux From Scratch

Linux From Scratch

現在、Linux From Scratch を実行しています。いくつかのパッケージをダウンロードしました。「tar」コマンドを使用してそれらを解凍し、抽出したパッケージ内で次の操作を実行します。

  1. 構成、設定
  2. 作る
  3. テストする
  4. インストールする

もう一つ、makefile とは何ですか?

これらのコマンドの目的を、特に LFS の観点から説明してください。よろしくお願いします。

答え1

それが何をするのかは(ある程度)わかっていますが、どのように説明すればよいかわかりません。

基本的に、あなたが言及した一連のコマンドでは、ソース コード (つまり、プログラミング言語で記述されたコード) からバイナリ実行可能形式 (プログラム、ライブラリ) で何かを作成し、それをオペレーティング システムにインストールします (適切なフォルダーに移動し、構成ファイルを設定するなど)。

makefile は、make コマンドが使用するテキスト ファイルです。これは、タスクの実行 (自動化) に役立ちます。1 つの makefile には、make が実行する複数のタスクまたはアクションの情報が含まれる場合があります。makefile がなければ、作業を完了するために多くの複雑な手動手順を実行する必要があります。

「configure」: (説明はここ) ソフトウェアがインストールされるマシンに関する詳細をチェックします。このスクリプトは、システム上の多くの依存関係をチェックします。特定のソフトウェアが適切に動作するには、マシン上にすでに多くのものが存在している必要があります。主要な要件のいずれかがシステムに不足している場合、configure スクリプトは終了し、必要なものが揃うまでインストールを続行できません。そうでない場合は、次のステップで使用する Makefile を作成します。

パラメータなしの「make」: makefile 内のデフォルトのアクション (ルール) を実行するように make に指示します。これは通常、作成しようとしているバイナリ (つまり、プログラムまたはライブラリ) をコンパイル、リンク、および生成します。これには通常、ソース コードをオブジェクト ファイル (通常は拡張子が.o) に変換し、それらを最終的なバイナリ ファイルにリンクすることが含まれます (Linux プログラムの場合は通常拡張子が なし、Linux ライブラリの場合は通常.soまたは.a拡張子が )。私は Java プログラマーであり、これらの手順をあまり実行しないため、手順についてはよくわかりません。

「make test」: そのバイナリに対してテストを実行します。

「make install」: 基本的にバイナリを適切なフォルダーの場所に移動します。

この説明は、もちろん大幅に改善できる可能性がありますが、ここでは一般的なプロセスの概要を説明しようとしているだけです。

この短いチュートリアルさらに詳しい情報を提供できるかもしれません。

答え2

を使用すると、Makefile開発者とエンド ユーザーの作業が楽になります。基本的に、これは特定のソフトウェアを構築する方法のカンニング ペーパーです。単純な「Hello world」であれば、 をg++ hw.cpp -o hello_world使用できます。ただし、はるかに複雑なソフトウェアの場合は、多くの場合、部分 A を部分 B の前に構築する必要があり、この 2 つが完了したら部分 C を構築できます。これらを手動で入力すると、また、含まれているライブラリ、一時出力ファイル、最終的なインストール パスなど (通常はスクリプトのconfigure実行時に決定されます) へのパスを挿入すると、エラーが発生する可能性があります。

関連情報