'install'명령의 목적은 무엇입니까?


49

install많은 Makefile에서 사용되는 명령을 보았 으며 그 존재와 사용법은 혼란 스럽습니다. 맨 페이지에서 cp기능이 적을 때 나타나는 것처럼 보이지만에 비해 이점이 없다면 사용하지 않을 것이라고 가정합니다 cp. 거래는 무엇입니까?

답변:


50

install파일을 복사 할뿐만 아니라 소유권과 권한을 변경하고 선택적으로 실행 파일에서 디버깅 기호를 제거합니다. 이 결합 cp으로 chown, chmod그리고 strip. 일반적인 일련의 기본 작업을 수행하는 데 편리한 고급 도구입니다.

의 장점 install을 통해 cp실행 파일을 설치하기위한 대상이 이미 존재하는 경우는 대상 파일을 제거하고 새로운 하나를 만드는 것입니다. 이것은 액세스 제어 목록 및 기능과 같은 현재 속성을 제거합니다. 실행 파일을 업데이트 할 때이 실행 파일의 실행중인 인스턴스가 있으면 계속 실행됩니다. 반대로 cp파일이있는 경우 파일을 업데이트합니다. 대부분의 Unix 변형에서 대상이 실행중인 실행 파일 인 경우 EBUSY¹ 오류와 함께 실패합니다. 코드 섹션을 동적으로로드하고 파일을 수정하면 무의미한 코드가로드되기 때문에 대상에서 충돌이 발생할 수 있습니다.

installBSD 명령입니다 ( 4.2BSD에 추가됨 , 즉 1980 년대 초). POSIX에서는 채택되지 않았습니다.

¹ “텍스트 파일 사용 중”. 이와 관련하여“텍스트 파일”은 역사적인 이유로 인해 “이진 실행 파일”을 의미 합니다.


중요한 점 (내가 이해할 수있는 한)은와 rm함께 결합된다는 것 입니다 cp. 즉, 사용중인 파일을 rm먼저 연결 해제하여 파일을 덮어 쓸 수 있습니다 ( ). cp혼자서도 오류가 발생합니다.
code_fodder

10

단일 명령으로 파일을 복사하거나 디렉토리를 작성하는 동안 파일 또는 디렉토리의 소유권 및 권한을 조작하는 표준화 된 방법을 제공합니다.


9
원자가 아닙니다. 원자는 다른 프로세스가 볼 수있는 중간 상태가 없음을 의미합니다. install복사 후 chown 및 chmod, 모든 별도의 syscall을 수행하고 제자리로 이름 바꾸기를 사용하지 않습니다 (적어도 coreutils 8.13에서 GNU 버전에서는 그렇지 않습니다). 모든 것이 원자 적으로 발생한다고 가정하면, 놀랄만 한 결과를 얻을 수 있습니다.

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있습니다.


1

에 대한 매뉴얼 페이지를 참조하십시오 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

참고 문헌


4
질문에서 말했듯이 메인 페이지를 읽었습니다. 이것이 cp의 기능에 추가되는 것에 대해 깨달 지 않았습니다.
azernik

slm은 두 기능을 구분하는 특정 기능을 강조했습니다. install기존 권한을 유지하는 대신 대상 파일에 대해 특정 소유자, 그룹 및 모드를 설정할 수 있습니다.cp
Joshua Miller
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.