[리눅스] Shell script와 Make 파일 이용하여 설치 간소화하기
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은 내가 개발할 때 편하려고 캐시 삭제하는 코드다.