프로그래밍/운영체제

[리눅스] Shell script와 Make 파일 이용하여 설치 간소화하기

포도알77 2019. 7. 4. 09:30

1. 서론

  개인적인 개발 요청이 들어와 리눅스 기반으로 프로그램을 개발했고 전원이 인가되면 항상 자동으로 프로그램이 동작해야했기 때문에, 이전 글([라즈베리파이 / 리눅스] init.d 서비스 스크립트 작성을 통한 시작 프로그램 만들기)에서와 같이 init.d에 등록해서 시스템 시작시에 동작하도록 최초 1회 설정해야 한다.

 처음에는 install.sh와 같이 쉘 스크립트를 작성해서 전달해주었는데, 알고보니 프로그램을 압축해제한 다음 실행 권한을 주어야 동작한다.

 당연하게도 이 경우를 대비해서 실행 권한을 주는 명령어를 전달해주었지만, 제대로 사용하지 못할게 불 보듯 뻔하니 코드를 조금 수정해서 간단하게 프로그램을 설치할 수 있도록 했다.

 

2.install.sh에 실행 권한 부여하기

 쉘 스크립트에 실행 권한을 부여하는 방법은 간단하다. 

sudo chmod +x install.sh

 

그러나 내 경우는 설치 스크립트를 여러 개로 구분해 두었고, 이를 찾아서 하나씩 실행 권한을 주라는 것은 조금 애매했다. 

그래서 디렉터리에 포함된 스크립트를 모두 찾아 실행 권한을 부여하는 명령어를 구글링 했다.

sudo find . -name "*.sh" | xargs chmod -v +x

 

3. Makefile 만들기

 더 간단하게 설치를 수행할 수 있도록 간단한 Makefile을 만들기로 했다. 사용자 입장에서는 설치 후 make 한번만 입력하면 되도록, 차례로 쉘 스크립트를 실행하도록 작성했다.

install :
	sudo find . -name "*.sh" | xargs chmod -v +x
	sudo ./scripts/a.sh
	sudo ./scripts/b.sh
	sudo ./scripts/c.sh
	sudo ./scripts/d.sh
init :
	sudo ./scripts/e.sh
clean :
	sudo find . -name "__pycache__" | xargs rm -rf 

 

 참고로 나는 배시 스크립트와 Makefile을 잘 모른다. 정말 예제 중에 가장 기초적인 예제 수준만 사용할 줄 안다.

install에는 쉘 스크립트에 권한 주고 각 스크립트를 실행 (실행 후 다시 권한을 뺏는 것도 보안상 좋을듯?)

init은 그냥 프로그램을 초기화하는 명령을 담고 있는 쉘 스크립트를 실행한다.

마지막으로 clean은 내가 개발할 때 편하려고 캐시 삭제하는 코드다.

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사