"install"コマンドの目的は何ですか?

"install"コマンドの目的は何ですか?

install私はこのコマンドが多くのMakefileで使用されており、その存在と使い方が少し混乱しています。マンページで見ると機能が少ないレプリカのようですがcp、それよりも強力でなければcp…何が起こりますか?

答え1

installファイルをコピーするだけでなく、所有権と権限も変更し、オプションで実行可能ファイルからデバッグシンボルを削除します。 、およびcpと結合されます。これは、さまざまな一般的な基本操作を実行できる便利な高度なツールです。chownchmodstrip

install実行可能ファイルのインストールの1つの利点cpは、ターゲットがすでに存在する場合は、ターゲットファイルを削除して新しいファイルを作成することです。これは、利点と欠点に見えるアクセス制御リストや機能などの現在の属性を削除します。実行可能ファイルを更新すると、実行可能ファイルがすでに実行されている場合は影響を受けずに実行され続けます。代わりに、cpファイルが存在する場合、ファイルはその場所で更新されます。ほとんどのUnixバリアントでは、ターゲットが実行中の実行可能ファイルの場合、エラーEBUSY1で失敗します。場合によっては、コードセクションを動的にロードしてファイルを変更するため、ターゲットがクラッシュする可能性があります。意味のないコードがロードされます。

installBSDコマンドです(次に追加)。4.2BSDつまり、1980年代初頭)。 POSIXでは採用されていません。

1 「テキストファイルを使用中」。この場合、「テキストファイル」とは「バイナリ実行ファイル」を意味する。未知の歴史的理由

答え2

単一のコマンドでファイルをコピーしたりディレクトリを作成したりするときに、ファイルまたはディレクトリの所有権と権限を操作する標準化された方法を提供します。

答え3

コマンドを使用して、install必要な権限でファイルをコピーできます。

LDAP 設定時に使用する主な例

install -o ldap -g ldap /etc/openldap/DB_CONFIG_EXAMPLE  /var/lib/ldap/DB_CONFIG

これにより時間が節約されます。使用するためにコピーする場合は、chown ldap. /var/lib/ldap/DB_CONFIGこの場合もcpこれを行う必要があります。chown

答え4

マニュアルページを参照してくださいinstall

$ man install

抜粋

SYNOPSIS
       install [OPTION]... [-T] SOURCE DEST
       install [OPTION]... SOURCE... DIRECTORY
       install [OPTION]... -t DIRECTORY SOURCE...
       install [OPTION]... -d DIRECTORY...


DESCRIPTION
       This  install  program  copies  files  (often just compiled) into 
       destination locations you choose.  If you want to download and
       install a ready-to-use package on a GNU/Linux system, you should instead 
       be using a package manager like yum(1) or apt-get(1).

       In the first three forms, copy SOURCE to DEST or multiple SOURCE(s) to 
       the existing DIRECTORY, while  setting  permission  modes and 
       owner/group.  In the 4th form, create all components of the given 
       DIRECTORY(ies).

       Mandatory arguments to long options are mandatory for short options too.

特定の所有権、権限でのインストール、元のファイルタイムスタンプの保存などの他の便利な機能もinstall

   -g, --group=GROUP
          set group ownership, instead of process' current group

   -m, --mode=MODE
          set permission mode (as in chmod), instead of rwxr-xr-x

   -o, --owner=OWNER
          set ownership (super-user only)

   -p, --preserve-timestamps
          apply access/modification times of SOURCE files to corresponding 
          destination files

引用する

関連情報