INSTALL(1)

名称
install - バイナリのインストール

書式
install [-bCcMpSsv] [-B suffix] [-f flags] [-g group] [-m mode] [-o owner] file1 file2 install [-bCcMpSsv] [-B suffix] [-f flags] [-g group] [-m mode] [-o owner] file1 ... fileN directory install -d [-v] [-g group] [-m mode] [-o owner] directory ...

解説
ファイルを指定したファイルもしくはディレクトリへコピーします。 もしもターゲットがディレクトリであれば、 file は元のファイル名のままで directory の中にコピーされます。 もし指定ファイルがすでに存在している場合、 -b オプションが指定されていれば file.old にリネームし、そうでない場合には パーミッションが許せば上書きされます。 バックアップ用の別のサフィックスを、 -B オプションの引数で指定可能です。

次のオプションを使用可能です:

-b  既存のファイルに上書きする前に、 file.old へリネームして、バックアップします。 バックアップ用の別のサフィックスについては -B を参照してください。

-B suffix
    -b 指定時に、 suffix をバックアップのサフィックスとして使用します。

-C  ファイルをコピーします。 コピー先ファイルがすでに存在しかつ内容が同一である場合には、 ターゲットの修正時刻を変更しません。 ターゲットのファイルフラグとモードを変更する必要がない場合、 ターゲットの inode 変更時刻もまた変更されません。

-c  ファイルをコピーします。 これがデフォルトです。 -c オプションは、後方互換性のためだけに含まれています。

-d  ディレクトリを作成します。 必要であれば、無い親ディレクトリも作成されます。

-f  ターゲットファイルのファイルフラグを指定します; 指定可能なフラグのリストとその意味は chflags(1) を参照して下さい。

-g  グループを指定します。数値指定の GID が利用できます。

-M  mmap(2) の使用を全面的に禁止します。

-m  モードを指定します。 デフォルトのモードは rwxr-xr-x (0755) にセットされます。 モード指定は 8 進数もしくは シンボリックな値のどちらでも可能です; 指定可能なモードの値については chmod(1) を参照して下さい。

-o  所有者を指定します。数値指定の UID が利用できます。

-p  アクセス時刻および修正時刻を保存します。 -C (比較してコピー) オプションが指定された場合のようにコピーを行いますが、 ターゲットファイルが存在しないもしくは内容が異なる場合、 ファイルのアクセス時刻と修正時刻を保存します。

-S  安全モード。 通常、 install は、新規ファイルをインストールする前に、 既存のターゲットをアンリンクします。 -S フラグを付けると、一時ファイルを使用し、これがターゲットにリネームされます。 こちらの方が安全な理由は、コピーまたはリネームが失敗した場合、 既存のターゲットはそのまま残ることです。

-s  install は strip(1) コマンドを実行してバイナリをストリップします。 strip コマンドを別に起動するため、多くのシステムやバイナリ形式に対して 移植性のある方法となっています。 他のプログラムを使いバイナリをストリップする方法をどのようにして install に教えるかは、以下を参照して下さい。

-v  install を冗長にし、インストールもしくはバックアップされるファイルを表示します。

デフォルトでは install は全てのファイルフラグを保存します。 ただし “nodump” フラグは例外です。

install ユーティリティは、ファイルをそれ自身に移動しないように試みます。

/dev/null をインストールすると、空のファイルを作ります。

診断

環境変数
install ユーティリティは、環境変数 STRIPBIN の存在をチェックし、存在する場合、代入された値を -s オプションが指定された場合に実行させるプログラムとして使用します。

関連ファイル
INS@XXXX
    -S オプションが使われているか、もしくは、 -s オプションとともに -C, -p オプションのいずれかが使われている時は、一時ファイル名を INS@XXXX とします。 ここで、 XXXX 部分は mkstemp(3) で決定され、ターゲットディレクトリに作成されます。

互換性
歴史的に、デフォルトでは install はファイルを移動していました。 デフォルトがコピーに変更されたのは、 FreeBSD 4.4 です。

関連項目
chflags(1), chgrp(1), chmod(1), cp(1), mv(1), strip(1), mmap(2), chown(8)

歴史
install ユーティリティは 4.2BSD から登場しました。

バグ
install が異常終了した場合に、 一時ファイルがターゲットディレクトリに残るかも知れません。

NFS ファイルシステム経由では fchflags(2) でファイルフラグを設定できません。 他のファイルシステムはフラグの概念がありません。 フラグをサポートしないファイルシステムにおいてフラグ設定に失敗した場合には、 install ユーティリティは警告だけ行います。

install ユーティリティに -v を指定すると、 -C がハードリンクを扱うときに、コピーをしたと嘘をつきます。