복사 외에 / usr / bin / install은 무엇을합니까? install시간 호출

  1. 합니까 make install시간 호출 대부분의 메이크로 /usr/bin/install?

  2. /usr/bin/install방금 컴파일 한 파일을 복사하는 것 외에 필요한 작업은 무엇입니까 /usr/bin/local?

  3. 매뉴얼 페이지는 /usr/bin/install파일 복사 및 속성 설정을 말합니다 . 어떤 속성을 설정해야합니까?

  4. 필요하지 않은 권한 모드와 소유자 / 그룹 만 설정합니까?


답변

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)네 개의 명령보다 더 간결하다 cp, strip, chmod,와 chown.

마지막 글 머리 기호는 install명령이 발명 된 이유와 많은 makefile이이를 사용하는 이유 일 수 있습니다.

Install항상 사용되는 것은 아닙니다. cp -r lib $(DESTDIR)/lib복사 할 물건으로 가득 찬 전체 트리 ./install.sh가 있고 개발자가 사용자 정의 스크립트를 사용하는 것을 선호하는 경우 를 보았습니다 . 많은 패키지에는 install.shX11과 함께 제공되는 패키지가 있으며, 지정된 방식으로 대상 파일의 이름을 바꾸는 (변환) 옵션을 install지원합니다 -t.


답변

  1. 메이크 파일에서 사용되는 명령은 기본적으로 프로젝트 개발자에게 달려 있으므로 여기서 명확한 대답을하기가 어렵습니다. 일반적으로 install2에서 언급 한 모든 설치 프로세스에 대해 makefile 에서 명령 을 사용하는 것이 좋지만 다시 installPOSIX가 아니므로 항상 사용하는 것이 가장 휴대용 접근 방법이 아닐 수 있습니다

    AFAIK는 도구의 대부분은 자동으로 같은 메이크 파일을 생성하는 데 사용할 수 있습니다 automakecmake사용합니다 install.

  2. 일반적으로 install말한 것처럼 하나의 명령으로 파일을 복사하고 권한 / 소유자 / 그룹을 설정하는 데 사용됩니다. 일반적으로 사용되는 다른 기능 중 하나는 불필요한 심볼 (예 : 디버깅 심볼)을 더 이상 필요없는 바이너리에서 제거하는 것입니다. 또한 SELinux 컨텍스트 내에서 설치 및 작업하기 전에 백업을 만드는 등 유용한 추가 옵션이 있습니다.

선택할 권한은 파일 자체에 따라 다릅니다. 대부분 설치된 파일은 누구나 읽을 수 있지만 루트 만 쓸 수 있습니다 (모든 사람이 액세스 할 수 있지만 조작 할 수없는 위치에 프로그램 파일을 배치하는 것이 좋습니다). 파일에 중요한 데이터가 포함되어 있으면 그룹 또는 루트로의 액세스를 제한하는 것이 일반적입니다.