컴파일된 실행파일을 설치해주는 install이란?
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 1,967 조회
- 0 추천
-
목록
본문
컴파일된 실행파일을 설치해주는 install이란?
리눅스에서 어플리케이션 설치작업의 마지막은 항상 “make install”을 실행한다.
이 작업은 make의 결과로 생성된 실행파일들을 지정된 위치로 복사하는 역할을 한다.
이 작업 즉 “make install”작업에 사용되는 것이 바로 install이라는 명령어이다.
즉 install은 특정 파일의 권한, 속성, 소유자, 그룹명등의 속성으로 지정한 위치에 복사하는 명령어라고 정의 할 수 있다.
물론 install이라는 것이 “make install”에서만 사용되는 것은 아니다.
당연히 그 자체로 명령어이기 때문에 일반 명령어들 처럼 쉘에서 바로 사용가능하다.
하지만 가장 많이 사용되는 곳에 “make install”이라는 것이다.
자, 그럼 install에 대해서 좀 더 근본적인 것을 알아보도록하자.
man페이지를 확인해보면 “copy files and set attributes”라고 install명령어의 목적이 설명되어있다.
즉 install명령어는 파일들을 복사하고 복사된 파일들의 속성들을 부여하는 명령어라는 의미이다.
좀 더 자세히 설명하면 install은 파일복사와 동시에 파일의 권한, 속성, 소유자, 그룹명등을 설정할 수 있는 명령어라는 것이다.
앞서 설명하였듯이 대부분의 경우 install명령어는 Makefile과 같은 쉘스크립트파일 내에서 주로 사용된다.
Makefile은 make실행시에 실행될 수행내용들이 차례대로 정의된 make작업파일이다.
따라서 install명령어는 Makefile내에 흔하게 설정되어 있는 것을 확인할 수 있다.
어떻게 보면 cp명령어와 유사한 명령이지만 cp명령어에 비해 다양한 복사 옵션들이 있다는 점이 좀 특이하다.
즉 install명령어에는 복사되는 파일의 소유자, 소유그룹, 퍼미션등 다양한 옵션들을 지정할 수가 있다.
다음은 install에서 사용되는 유용한 옵션들이다.
-c
전통 유닉스 버전과 호환을 위한 옵션으로서 별다른 의미는 없다.
-d, --directory
지정한 파일이 복사될 경로를 지정하는 옵션으로서 만약 지정한 경로명의 디렉토리가 존재하지
않는다면 직접 만들어서 복사한다.
-g, --group group
지정한 파일 복사시에 이 옵션으로 지정한 그룹명을 복사되는 파일의 소유그룹으로 지정하여 복사한다.
기본값으로는 현재 그룹명을 그대로 사용한다.
-m, --mode mode
지정한 파일 복사시에 이 옵션으로 지정한 펴미션을 복사되는 파일의 퍼미션으로 설정한다.
기본값은 0755이다.
-o, --owner owner
지정한 파일복사시에 이 옵션으로 지정한 소유자를 복사되는 파일의 소유자로 설정한다.
기본값은 root이다.
(초기값은 root)
-s, --strip
지정한 파일복사시에 이 옵션이 사용되면 strip명령을 수행한다.
심볼릭테이블이 삭제되므로 파일의 크기가 줄어든다.
install명령어의 사용방법은 때론 복잡해 보이지만, 사실은 매우 간단하다.
그냥 cp명령어를 사용한다 개념에서 복사되어 생성되는 파일의 소유자, 소유그룹, 퍼미션등을 직접 지정해 준다는 것으로 이해하면 매우 쉽다.
그럼 install의 실제예를 보겠다.
자, 그럼 install명령어를 직접 사용해보도록 하겠다.
먼저 ls명령어로 복사할 파일을 확인한다.
그리고 install명령어로 ftpcount라는 파일을 /usr/local/proftpd/bin 디렉토리에 복사하였다.
[root@sulinux ~]# ls -l ftpcount -rwxr-xr-x 1 root root 18620 Mar 25 18:50 ftpcount [root@sulinux ~]# [root@sulinux ~]# install -c -s -o root -g root -m 0755 ftpcount /usr/local/proftpd/bin/ftpcount [root@sulinux ~]# |
위의 예에서 사용한 install명령어를 보면 알겠지만 cp명령어의 형식과 거의 유사하다.
단지 사용하는 옵션이 좀 많을 뿐이다.
그럼 위의 install명령에서 사용한 옵션을 살펴보겠다.
-c : 전통유닉스버전과 호환하기 위한 옵션으로 별 의미 없음.
-s : strip이라는 명령을 수행한다.
-o root : 복사되는 ftpcount파일의 소유주를 root로 지정한 것이다.
-g root : 복사되는 ftpcount파일의 그룹명을 root로 지정한 것이다.
-m 0755 : 복사되는 ftpcount파일의 퍼미션을 0755로 지정한 것이다.
위와 같은 조건으로 현재디렉토리에 있는 ftpcount라는 파일이 /usr/local/proftpd/bin 디렉토리에 복사되었다.
다음은 복사된 파일을 확인한 것이다.
[root@sulinux ~]# ls -l /usr/local/proftpd/bin/ftpcount -rwxr-xr-x 1 root root 18620 Mar 28 17:15 /usr/local/proftpd/bin/ftpcount [root@sulinux ~]# |
위에서 확인한 파일의 소유주, 소유그룹, 퍼미션등이 install명령행의 옵션에서 지정한 대로 설정되어 있는가를 확인해보기 바란다.
그리고 이번에는 /bin/ping 실행파일을 /home/bible/bin으로 복사하는 예이다.
[root@sulinux ~]# install -o bible -g wheel -m 4755 /bin/ping /home/bible/bin/ping [root@sulinux ~]# [root@sulinux ~]# ls -l /home/bible/bin/ping -rwsr-xr-x 1 bible wheel 42360 2008-12-2319:53 /home/bible/bin/ping [root@sulinux ~]# |
위의 예에서 install명령어로 복사를 하면서 다음과 같은 옵션을 사용하였다.
-o bible : 소유자를 bible로 설정한다.
-g wheel : 그룹소유를 wheel그룹으로 설정한다.
-m 4755 : 퍼미션을 4755로 설정한다.
이상과 같은 옵션으로 복사한 후에 ls로 복사된 파일을 확인한 결과 bible소유, wheel그룹소유, 그리고 퍼미션이 4755인 /home/bible/bin/ping파일이 생성되었음을 알 수 있다.
관련자료
-
이전
-
다음