합니까
make install
시간 호출 대부분의 메이크로/usr/bin/install
?/usr/bin/install
방금 컴파일 한 파일을 복사하는 것 외에 필요한 작업은 무엇입니까/usr/bin/local
?매뉴얼 페이지는
/usr/bin/install
파일 복사 및 속성 설정을 말합니다 . 어떤 속성을 설정해야합니까?- 필요하지 않은 권한 모드와 소유자 / 그룹 만 설정합니까?
합니까 make install
시간 호출 대부분의 메이크로 /usr/bin/install
?
/usr/bin/install
방금 컴파일 한 파일을 복사하는 것 외에 필요한 작업은 무엇입니까 /usr/bin/local
?
매뉴얼 페이지는 /usr/bin/install
파일 복사 및 속성 설정을 말합니다 . 어떤 속성을 설정해야합니까?
답변:
install
파일을 디렉토리에 복사하는 것 외에도 다양한 기능을 제공합니다.
-s
옵션은 실행 파일에서 심볼 테이블을 제거하여 공간을 절약합니다.-m
옵션은 권한 비트를 설정합니다. 개발자의 디렉토리에있는 파일은 자신의 umask에 따라 작성되어 다른 사용자가 파일을 실행하지 못하게 할 수 있습니다. install -m 755 file1 /usr/local/bin
모든 사람이 파일을 실행할 수 있도록합니다. 개발자가 공유 디렉토리에있는 파일을 원할 것입니다.-o
및 -g
옵션 소유자와 그룹을 설정합니다. 로 cp
, 대상 파일의 소유자와 그룹은 UID로 설정하고를 실행 누구의 gid가 될 것이다 cp
, 그리고 함께 cp -p
대상 파일의 소유자와 그룹, 빌드 디렉토리도 힘의에서 파일과 같은 것 개발자가 원하는 것이어야합니다. wall
프로그램 그룹에 있어야 tty
의 screen
프로그램이 될 그룹이 필요 utmp
등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.sh
X11과 함께 제공되는 패키지가 있으며, 지정된 방식으로 대상 파일의 이름을 바꾸는 (변환) 옵션을 install
지원합니다 -t
.
메이크 파일에서 사용되는 명령은 기본적으로 프로젝트 개발자에게 달려 있으므로 여기서 명확한 대답을하기가 어렵습니다. 일반적으로 install
2에서 언급 한 모든 설치 프로세스에 대해 makefile 에서 명령 을 사용하는 것이 좋지만 다시 install
POSIX가 아니므로 항상 사용하는 것이 가장 휴대용 접근 방법이 아닐 수 있습니다
AFAIK는 도구의 대부분은 자동으로 같은 메이크 파일을 생성하는 데 사용할 수 있습니다 automake
및 cmake
사용합니다 install
.
일반적으로 install
말한 것처럼 하나의 명령으로 파일을 복사하고 권한 / 소유자 / 그룹을 설정하는 데 사용됩니다. 일반적으로 사용되는 다른 기능 중 하나는 불필요한 심볼 (예 : 디버깅 심볼)을 더 이상 필요없는 바이너리에서 제거하는 것입니다. 또한 SELinux 컨텍스트 내에서 설치 및 작업하기 전에 백업을 만드는 등 유용한 추가 옵션이 있습니다.
선택할 권한은 파일 자체에 따라 다릅니다. 대부분 설치된 파일은 누구나 읽을 수 있지만 루트 만 쓸 수 있습니다 (모든 사람이 액세스 할 수 있지만 조작 할 수없는 위치에 프로그램 파일을 배치하는 것이 좋습니다). 파일에 중요한 데이터가 포함되어 있으면 그룹 또는 루트로의 액세스를 제한하는 것이 일반적입니다.