2.5. 임의의 아티팩트 설치
UNIX와 유사한 시스템은 파일 시스템 계층 구조 표준(FHS)을 사용하여 특정 파일에 적합한 디렉터리를 지정합니다.
RPM 패키지에서 설치된 파일은 FHS에 따라 배치됩니다. 예를 들어 실행 가능한 파일은 시스템 $PATH
변수에 있는 디렉터리로 이동해야 합니다.
이 설명서의 컨텍스트에서 Arbitrary Artifact 는 RPM에서 시스템에 설치된 모든 것입니다. RPM 및 시스템의 경우 이는 스크립트일 수 있으며 패키지의 소스 코드, pre-ECDHE 바이너리 또는 기타 파일에서 컴파일된 바이너리일 수 있습니다.
이 섹션에서는 시스템에서 Arbitrary Artifacts 를 배치하는 두 가지 일반적인 방법에 대해 설명합니다.
2.5.1. 설치 명령 사용
패키지 관리자는 종종 GNU make 와 같은 빌드 자동화 툴이 최적이 아닌 경우(예: 패키지 프로그램에 추가 오버헤드가 필요하지 않은 경우) install
명령을 사용합니다.
install
명령은 coreutils 를 통해 시스템에 제공되며, 이 명령은 지정된 권한 세트를 사용하여 파일 시스템에 지정된 디렉터리에 아티팩트를 배치합니다.
다음 절차에서는 이전에 생성된 bello
파일을 이 설치 방법의 대상으로 임의의 아티팩트로 사용합니다.
절차
실행 가능한 스크립트에 공통된 권한이 있는
bello
파일을/usr/bin
디렉터리에 배치하려면install
명령을 실행합니다.$ sudo install -m 0755 bello /usr/bin/bello
결과적으로
bello
는 이제$PATH
변수에 나열된 디렉터리에 있습니다.전체 경로를 지정하지 않고 모든 디렉터리에서
bello
를 실행합니다.$ cd ~ $ bello Hello World
2.5.2. make install 명령 사용
make install
명령을 사용하는 것은 시스템에 빌드된 소프트웨어를 설치하는 자동화된 방법입니다. 이 경우 일반적으로 개발자가 작성한 Makefile
의 시스템에 임의의 아티팩트를 설치하는 방법을 지정해야 합니다.
이 절차에서는 빌드 아티팩트를 시스템의 선택한 위치에 설치하는 방법을 설명합니다.
절차
설치
섹션을Makefile
에 추가합니다.Makefile
cello: gcc -g -o cello cello.c clean: rm cello install: mkdir -p $(DESTDIR)/usr/bin install -m 0755 cello $(DESTDIR)/usr/bin/cello
cello 아래에 있는 행(예:
,clean:
,install:
)은 탭 공간으로 시작해야 합니다.참고$(DESTDIR) 변수는 GNU make built-in이며 일반적으로 루트 디렉터리와 다른 디렉터리에 설치를 지정하는 데 사용됩니다.
이제
Makefile
을 사용하여 소프트웨어를 빌드할 뿐만 아니라 대상 시스템에 설치할 수도 있습니다.cello.c
프로그램을 빌드하고 설치합니다.$ make gcc -g -o cello cello.c $ sudo make install install -m 0755 cello /usr/bin/cello
결과적으로
cello
는 이제$PATH
변수에 나열된 디렉터리에 있습니다.전체 경로를 지정하지 않고 모든 디렉터리에서
cello
를 실행합니다.$ cd ~ $ cello Hello World