GNU/Linux >> Znalost Linux >  >> Linux

Účel příkazu „install“?

Viděl jsem install příkaz používaný v mnoha Makefiles a jeho existence a použití jsou poněkud matoucí. Z manuálových stránek to vypadá jako vyřazení cp s méně funkcemi, ale předpokládám, že by se nepoužil, pokud by neměl nějakou výhodu oproti cp . Jaká je dohoda?

Přijatá odpověď:

install nejen kopíruje soubory, ale také mění své vlastnictví a oprávnění a volitelně odstraňuje ladicí symboly ze spustitelných souborů. Kombinuje cp s chown , chmod a strip . Je to pohodlný nástroj vyšší úrovně, který provádí běžnou sekvenci základních úkolů.

Výhoda install přes cp pro instalaci spustitelných souborů je to, že pokud cíl již existuje, odstraní cílový soubor a vytvoří nový. Tím se zbavíte všech aktuálních vlastností, jako jsou seznamy řízení přístupu a schopnosti, což lze považovat za výhodu i nevýhodu. Při aktualizaci spustitelných souborů, pokud existují spuštěné instance tohoto spustitelného souboru, zůstanou spuštěny bez ovlivnění. Naproti tomu cp aktualizuje soubor na místě, pokud existuje. Na většině unixových variant to selže s chybou EBUSY¹, pokud je cílem běžící spustitelný soubor; u některých může způsobit zhroucení cíle, protože dynamicky načítá části kódu a úprava souboru způsobí načtení nesmyslného kódu.

install je příkaz BSD (přidán v 4.2BSD, tj. na začátku 80. let). Nebylo přijato POSIX.

¹ „Textový soubor je zaneprázdněn“. V tomto kontextu „textový soubor“ znamená „binární spustitelný soubor“ z nejasných historických důvodů.


Linux
  1. Jak nainstalovat software z příkazového řádku Linuxu

  2. Vyhledejte příkaz v Linuxu

  3. Příkaz pip install --upgrade pip, nainstalujte všechny verze pip

  1. Zvládněte příkaz Linux ls

  2. Úvod do příkazu diff

  3. Je nástroj příkazového řádku pdftotext pro Mac?

  1. Účel hash příkazu?

  2. Jak nainstalovat a používat příkaz Ping v Linuxu

  3. bc:příkaz nenalezen