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


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

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

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

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

"/ usr / bin / install을 호출하면 대부분 Makefile로 설치합니까?" 아니요, 원하는대로합니다. 메이크 대상입니다. 설치 실행 파일에 대한 질문이 있습니까? 아니면 만들기에 대해? 명확하지 않습니다.
Faheem Mitha

양자 모두. @FaheemMitha
Tim

자, 1과 2는 서로 다른 질문이며, 1에 대한 대답은 아마도 대부분이 아니라 "대부분의 시간"을 정의합니다. 어쨌든 1의 요점을 잘 모르겠습니다.
Faheem Mitha

답변:


17

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.


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

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.