'리눅스'에 해당되는 글 1건

  1. 2008/07/23 리눅스/유닉스용 자동 압축풀림(Self Extra) 파일 만들기
2008/07/23 12:00

리눅스/유닉스용 자동 압축풀림(Self Extra) 파일 만들기

리눅스나 유닉스용 java 배포파일을 보면 *.bin 형식으로 배포되는데 해당 파일은 어떻게 작성되어 지는걸까요? InstallAnyWhere 같이 전문적 저작툴도 판매되고 있으나 금전적 여유가 없다면 손이 좀 고달프면 되겠지요?

리눅스 환경에서 배포되는 bin 형태의 자동 압축풀림 파일을 만들어 보도록 하겠습니다.

1. 설치파일 압축하기
[root@svr ~]# tar cvfz mypkg.tar.gz mypkg/*

2. 헤더파일 만들기
---------------------------------------------------------------------------

[root@svr ~]# cat > sfx-header << EOF
#!/bin/sh

while true
do
        DEFAULTDIR="/opt/mypkg"

        echo ""
        echo "In which directory do you want to install the binary files?"
        echo "ENTER an absolute path, or press <ENTER> to accept the default."
        echo -n "[/opt/mypkg]: "

        read RDEFAULTDIR; clear

        case $RDEFAULTDIR in
                "")
                        DEFAULTDIR=$DEFAULTDIR;
                        ;;
                *)
                        DEFAULTDIR=$RDEFAULTDIR
                        CHKABS=${DEFAULTDIR:0:1}

                        if [ $CHKABS != "/" ]; then
                                echo ""
                                echo "The path \"$DEFAULTDIR\" is a relative path."

                                echo "Please enter an absolute path."
                                continue
                        fi
                        ;;
        esac

        if test -d $DEFAULTDIR; then
                break
        else
                echo ""
                echo "The path \"$DEFAULTDIR\" does not exist currently. This program is"
                echo "going to create it, including needed parent directories."
                echo -n "Is this what you want? [yes]: "

                read YESORNO; clear

                case $YESORNO in
                        "")
                                break
                                ;;
                        [Yy]|[Yy][Ee][Ss])
                                break
                                ;;
                        [Nn]|[Nn][Oo])
                                ;;
                        *)
                                ;;
       esac
        fi

done

tail -n +60 $0 | tar xz -C $DEFAULTDIR

exit 0
EOF
---------------------------------------------------------------------------

중요 내용은 tail 명령인데 tail -n +60은 60번째 줄 부터 출력을 하라는 명령 입니다. 즉 60번째 줄 부터 출력하여 tar로 압축을 해제하는 명령이 됩니다. 60번째 줄은 cat으로 넘긴 mypkg.tar.gz이 있으니, 최종적으로 입력받은 $DEFAULTDIR에 mypkg.tar.gz의 압축을 해제하게 됩니다.

3. bin 파일 생성
[root@svr ~]# cat sfx-header mypkg.tar.gz > mypkg-install.bin

4. bin 파일 실행하기
[root@svr ~]# chmod 755 mypkg-install.bin
[root@svr ~]# ./mypkg-install.bin

In which directory do you want to install the binary files?
ENTER an absolute path, or press <ENTER> to accept the default.
[/opt/mypkg]: 

<ENTER>를 누르게 되면 /opt/mypkg 디렉토리에서
압축해제된 파일을 확인 하실 수 있겠습니다.

"기타 유용한 기술정보" 카테고리의 다른 글

2008/07/23 12:00 2008/07/23 12:00
받은 트랙백이 없고 댓글이 없습니다.