install
предлагает ряд функций в дополнение к копированию файлов в каталог.
-s
опция удаляет таблицу символов из исполняемого, экономя пространство
-m
опция устанавливает биты разрешения. Файлы, находящиеся в каталоге разработчика, были созданы с учетом его или ее маски, что может помешать другим выполнить их. install -m 755 file1 /usr/local/bin
гарантирует, что каждый может выполнить файл, что вполне вероятно, что разработчик хочет для файла в общем каталоге.
-o
и -g
опции установить владельца и группу. При cp
этом для владельца и группы целевого файла будут заданы uid и gid того, кто их запускал cp
, а с cp -p
владельцем и группой целевого файла будут те же, что и у файла в каталоге сборки, ни один из которых не может будь тем, что хочет разработчик. wall
Программа должна быть в группе tty
, то screen
программа должна быть группа utmp
, и т.д.
- это уменьшает количество команд, которые нужно поместить в рецепт make-файла.
install -s -m 755 -o root -g bin file1 file2 lib/* $(DESTDIR)
более емкий , чем четыре команд cp
, strip
, chmod
, и chown
.
Последний пункт, вероятно, объясняет, почему install
команда была изобретена и почему многие make-файлы ее используют.
Install
не всегда используется, хотя Я видел, cp -r lib $(DESTDIR)/lib
когда есть целое дерево, полное материалов для копирования, и ./install.sh
если разработчик предпочитает использовать собственный скрипт. Многие пакеты имеют install.sh
производные от того, который поставляется с X11, который похож, install
но поддерживает -t
(трансформировать) опцию для переименования файлов назначения указанным способом.