2.5. 任意のアーティファクトのインストール
UNIX のようなシステムでは、ファイルシステム階層標準 (FHS) を使用して、特定のファイルに適したディレクトリーを指定します。
RPM パッケージからインストールしたファイルは、FHS に従って配置されます。たとえば、実行ファイルは、システム $PATH
変数のディレクトリーに置く必要があります。
このドキュメントのコンテキストでは、任意アーティファクト は RPM からシステムにインストールされたものを意味します。RPM およびシステムの場合は、スクリプト、パッケージのソースコードからコンパイルしたバイナリー、事前にコンパイルしたバイナリー、またはその他のファイルを意味します。
本セクションでは、システムに 任意アーティファクト を配置する一般的な 2 つの方法を説明します。
2.5.1. install コマンドの使用
パッケージャーは、GNU make などのビルド自動化ツールが最適ではない場合に install
コマンドを使用することがよくあります。たとえば、パッケージ化したプログラムに余分なオーバーヘッドが必要ない場合などが考えられます。
coreutils により、install
コマンドをシステムで利用できます。このコマンドは、指定のパーミッションセットで、ファイルシステム内の指定したディレクトリーにアーティファクトを配置します。
以下の手順では、このインストール方法に、任意アーティファクトとして以前に作成された bello
ファイルを使用します。
手順
install
コマンドを実行して、実行可能スクリプトに共通のパーミッションを持つ/usr/bin
ディレクトリーにbello
ファイルを配置します。$ sudo install -m 0755 bello /usr/bin/bello
これにより、
bello
は、$PATH
変数にリスト表示されているディレクトリーに置かれます。完全パスを指定せずに、任意のディレクトリーから
bello
を実行します。$ cd ~ $ bello Hello World
2.5.2. make install コマンドの使用
make install
コマンドを使用することで、ビルドしたソフトウェアをシステムに自動的にインストールできます。この場合、開発者が作成する Makefile
内のシステムにおいて、任意アーティファクトをシステムにインストールする方法を指定する必要があります。
この手順では、システム上の任意の場所にビルドアーティクトをインストールする方法を説明します。
手順
Makefile
にインストール
セクションを追加します。makefile
cello: gcc -g -o cello cello.c clean: rm cello install: mkdir -p $(DESTDIR)/usr/bin install -m 0755 cello $(DESTDIR)/usr/bin/cello
cello:
、clean:
、およびinstall:
の行は、行頭にタブスペースを追加する必要があります。注記$(DESTDIR) 変数は GNU make の組み込みで、一般的には、root ディレクトリーとは異なるディレクトリーへのインストールを指定するために使用されます。
これで、
Makefile
を使用してソフトウェアを構築するだけでなく、ターゲットシステムへのインストールも可能になります。cello.c
プログラムを構築してインストールします。$ make gcc -g -o cello cello.c $ sudo make install install -m 0755 cello /usr/bin/cello
これにより、
cello
変数に記載されているディレクトリーにcello
が置かれます。完全パスを指定せずに、任意のディレクトリーから
cello
を実行します。$ cd ~ $ cello Hello World