/ usr / bin / installはコピー以外に何をしますか?


11
  1. make install時間コールのほとんどのMakefileで/usr/bin/install

  2. /usr/bin/installコンパイルしたばかりのファイルをにコピーする以外に必要な作業は何/usr/bin/localですか?

  3. manページには、/usr/bin/installファイルのコピーと属性の設定が記載されています。設定するのにとても重要な属性は何ですか?

  4. 必要のない許可モードと所有者/グループを設定するだけですか?

「Makefileを使用したmake installは、ほとんどの場合/ usr / bin / installを呼び出しますか?」いいえ、必要なことは何でもします。メイク対象です。インストール実行可能ファイルについての質問ですか?またはメイクについて?はっきりしない。
Faheem Mitha 14

どちらも。@FaheemMitha
Tim

さて、まあ、1と2は異なる質問です。1への回答はおそらくそうではありませんが、「ほとんどの場合」を定義します。とにかく、1のポイントがよくわかりません。
Faheem Mitha 14

回答:


17

install は、ファイルをディレクトリにコピーすることに加えて、いくつかの機能を提供します。

  • この-sオプションは、実行可能ファイルからシンボルテーブルを削除し、スペースを節約します。
  • -mオプションは、許可ビットを設定します。開発者のディレクトリにあるファイルは、開発者のumaskに従って作成されたため、他のユーザーがそれらを実行できない可能性があります。install -m 755 file1 /usr/local/bin誰もがファイルを実行できることを保証します。これは、開発者が共有ディレクトリ内のファイルに対して望んでいることです。
  • -oおよび-gオプションは、所有者とグループを設定します。cp先のファイルの所有者とグループは、uidと走った誰のGIDに設定されるだろうcp、としてcp -p、コピー先のファイルの所有者とグループは、ビルドディレクトリ内のファイルと同じになり、どちらもかもしれませんの開発者が望むものである。wallプログラムは、グループ内にする必要がありttyscreenグループとしてのプログラムのニーズをutmpなど、
  • makefileレシピに入れる必要があるコマンドの数が減ります。install -s -m 755 -o root -g bin file1 file2 lib/* $(DESTDIR)4つのコマンドよりも簡潔でcpstripchmod、とchown

最後の箇条書きは、installコマンドが発明された理由と、多くのメイクファイルがそれを使用する理由です。

Installただし、常に使用されるわけではありません。cp -r lib $(DESTDIR)/libコピーするものでいっぱいのツリー全体があるとき、そして./install.sh開発者がカスタムスクリプトを使用することを好むかどうかを見てきました。多くのパッケージには、install.shX11に付属するパッケージから派生したパッケージがあります。これは、指定した方法で宛先ファイルの名前を変更installする-t(変換)オプションに似ていますが、サポートしています。


2
  1. makefileで使用されるコマンドは基本的にプロジェクト開発者次第なので、ここで明確な答えを出すのは困難です。一般にinstall、2で説明したインストールプロセスでは、makefileでコマンドを使用することをお勧めしますが、installPOSIXではないため、常に使用することは、最も移植性の高い方法ではない可能性があります。

    私の知る限りほとんどのツールのは、自動的にのようなmakefileを生成するために使用することができますautomakeし、cmake使用しますinstall

  2. 一般的にinstall、ファイルのコピーと、パーミッション/所有者/グループの設定に、あなたが言うように1つのコマンドで使用されます。もう1つの一般的に使用される機能は、不要になったバイナリから不要なシンボル(デバッグシンボルなど)を取り除くことです。また、SELinuxコンテキスト内にインストールして作業する前にバックアップを作成するなどの便利なオプションがいくつかあります。

選択する権限は、ファイル自体によって異なります。ほとんどの場合、インストールされたファイルは誰でも読み取り可能ですが、rootのみが書き込み可能です(誰もがアクセスできるが改ざんできない場所にプログラムファイルを配置するという考えです)。これはすべてに当てはまるわけではありません。ファイルに機密データが含まれている場合は、グループまたはルートのみへのアクセスを制限するのが一般的です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.