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  ファイルをコピーします。 コピー先ファイルがすでに存在しかつ内容が同一である場合には、 ターゲットの修正時刻を変更しません。

-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 コマンドを別に起動するため、多くのシステムやバイナリ形式に対して 移植性のある方法となっています。

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

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

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

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

正常終了時は 0 が返ります。他の場合は 1 が返ります。

診断

関連ファイル
INS@XXXX
    -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 がハードリンクを扱うときに、コピーをしたと嘘をつきます。