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

/usr/bin/installはコピー以外に何をしますか?
  1. make installほとんどの場合、Makefileを使用して呼び出されますか/usr/bin/install

  2. /usr/bin/installコンパイルされたファイルをコピーするだけでなく、どのような必要な作業を行う必要がありますか/usr/bin/local

  3. マニュアルページには、ファイルの/usr/bin/installコピーとプロパティの設定が表示されます。どの属性を設定することが重要ですか?

  4. 不要な特権モードと所有者/グループのみを設定しますか?

ベストアンサー1

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つのコマンドよりも簡潔です。cpstripchmodchown

この最後のポイントは、おそらくinstallこのコマンドが発明された理由と、多くのメイクファイルがこのコマンドを使用する理由です。

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

おすすめ記事