makeself를 이용하여 실행파일 형태의 installer를 만드는 방법에 대해 알아 본다.

makeself 프로젝트 공식사이트 주소 :

https://makeself.io/

1. makeself 설치

[root@pyhost ~]# yum install -y makeself

2. 파일 배치

특정 디렉토리를 만들 고 install 파일들을 배치

[root@pyhost ~]# mkdir /opt/MyProject

[root@pyhost ~]# cd /opt/MyProject

[root@pyhost MyProject]# ls -la
-rw-r--r--  1 root root  82768 Sep 28 16:15 mypro.conf
-rwxr-xr-x  1 root root 116068 Sep 28 16:15 mypro.py

3. install 할 파일들 압축

[root@pyhost MyProject]# tar zcvf mypro.tar.gz mypro.conf mypro.py --remove-files

4. install 스크립트 작성

[root@pyhost MyProject]# vim install-mypro.sh
#!/bin/bash

## decompress files
tar zxvf mypro.tar.gz 
rm -f mypro.tar.gz
chmod 755 mypro.py 

## moving conf file into /etc
if [ ! -d /etc/mypro-conf ]; then
    mkdir -p /etc/mypro-conf
fi

mv mypro.conf /etc/mypro-conf

## remove install-mypro.sh file
rm -f $0

-> install-mypro.sh는 run을 통해 실행되는 스크립트
1) mypro.tar.gz 압축 해제
2) mypro.tar.gz 파일 삭제
3) mypro.py 를 /usr/sbin/mypro 디렉토리에 위치 시킴
4) mypro.conf 를 /etc/mypro-conf 에 위치 시킴 (먼저 디렉토리를 생성하고)
5) install-mypro.sh는 수행 후 삭제 됨

5. run 파일 작성

[root@pyhost MyProject]# cd ..

[root@pyhost opt]# makeself --target /usr/sbin/mypro ./MyProject ./mypro-install.run "SFX installer for mypro" ./install-mypro.sh
ls-Header is 500 lines long

About to compress 44 KB of data...
Adding files to archive named "./mypro-install.run"...
./
./mypro.tar.gz
./install-mypro.sh
CRC: 2930672434
MD5: 15a4f86e589194981ae7dd1e46541594

Self-extractable archive "./mypro-install.run" successfully created.

-> --target : run 파일을 만들 때 이 옵션을 지정 하지 않으면 만들어진 run 파일을 실행하는 시점에 --target을 지정해 줘야만 함.
-> ./MyProject : 소스 파일들을 포함하는 디렉토리
-> ./mypro-install.run : 생성될 run 파일 이름
-> "SFX installer for mypro" : mypro-install.run 이 수행될 때 표시되는 내용
-> ./install-mypro.sh : MyProject 디렉토리안에 위치. mypro-install.run이 수행될 때 실행되는 스크립트

6. run 파일 수행 테스트

mypro-intall.run 파일을 다른 서버에서 진행해 본다.

[root@indigoNAS ~]# ./mypro-install.run 
Creating directory /usr/sbin/mypro
Verifying archive integrity... All good.
Uncompressing SFX installer for nShortURL  100%  
mypro.conf
mypro.py

[root@indigoNAS ~]# ls -la /usr/sbin/mypro/
합계 132
drwxr-xr-x  2 root root   4096 2020-09-28 19:33 .
dr-xr-xr-x. 3 root root  12288 2020-09-28 19:33 ..
-rwxr-xr-x  1 root root 116068 2020-09-28 16:15 mypro.py

[root@indigoNAS ~]# ls -la /etc/mypro-conf/
합계 92
drwx------   2 root root  4096 2020-09-28 19:33 .
drwxr-xr-x. 79 root root  4096 2020-09-28 19:33 ..
-rw-r--r--   1 root root 82768 2020-09-28 16:15 mypro.conf

-> 수행 결과,
1) makeself 빌드 시 지정한 '--target /usr/sbin/mypro' 옵션대로 /usr/sbin/mypro 디렉토리가 생성되고 mypro.py 파일이 위치함
2) mypro-install.sh 스크립트 내용대로 /etc/mypro-conf 디렉토리가 생성되고 mypro.conf 파일이 해당 디렉토리에 위치함

 

making install file by makeself for linux

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다