시스템 관리 및 실습 #8
1. 패키지 및 압축 파일 종류
- 패키지 파일 종류
- 압출 파일 종류
.alz : 이스트소프트에서 개발한 압축 형식입니다. 분할 압축을 할 경우 확장자는 (ALZip으로 생성) alz, a00, a01...형식으로 생성됩니다.
.ace : ACE, WinAce에서 이용하는 압축 형식입니다. 분할 압축을 할 경우 확장자는 ace, c00, c01, ... 형식으로 생성됩니다.
.alx : 이스트소프트에서 개발한 디지털 콘텐츠 권리 관리 (DRM - Digital Rights Management)파일 형식입니다.
.arc : DOS용 프로그램 pkarc.com, pkxarc.com에서 사용되는 압축 형식입니다.
.arj : DOS용 프로그램 arj.exe, 윈도우용 프로그램 WinArj에서 이용하는 압축 형식 입니다. 분할 압축을 할 경우 확장자는 arj, a01, a02,... 형식으로 생기게 됩니다.
.b64 : 인터넷에서 문서를 주고 받을 때 사용하는 형식으로 BASE64MIME 형식으로 인코딩된 파일입니다.
.bh : BlackHole Format.
.bh : BinHex Format. E-Mail 로 이진(binary)형태의 파일을 보내기 위해 사용하는 형식입니다.
.bhx : 인터넷에서 문서를 주고 받을 때 사용하는 형식으로 BASE64MIME 형식으로 인코딩된 파일입니다.
.bin : 바이너리 파일
.bz2 : UNIX용의 bzip2에서 사용하는 압축 형식 입니다. 파일 하나만 압축 할 수 있으므로 주로 .tar와 함께 사용되며 이 경우 .tar.bz2 의 확장자를 갖습니다. (bzip2로 생성)
.cab : Microsoft Cabinet 파일. 마이크로소프트에서 사용하는 압축 형식입니다.
.ear : 내부적으로 zip 압축 알고리즘을 사용하는 파일 형식입니다.
.enc : E-Mail로 이진(binary)형태의 파일을 보내기 위해 사용하는 형식입니다.
.gz : UNIX용의 gzip에서 사용하는 압축 형식 입니다. 파일 하나만 압축 할 수 있으므로 주로 .tar와 함께 사용되며 이 경우 .tar.gz 의 확장자를 갖고 줄여서 .tgz확장자를 사용하기도 합니다.
.ha : PPMC를 개선한 압축 파일 형식입니다.
.hqx : 맥에서 제작된 파일을 인터넷에서 문서를 주고 받을 때 사용하는 형식입니다. (BinHex로 생성)
.ice : DOS용 프로그램 ice.exe에서 사용하는 압축 형식입니다. 실제 파일 내용은 lha와 동일합니다.
.iso : ISO 9660 CD-ROM 파일시스템 표준에 기반을 둔, CD-ROM 상의 파일 목록
.jar : 자바의 jar.exe에서 사용하는 압축 형식입니다. 내부적으로 zip 압축 알고리즘을 사용합니다.
.lcd : CD Space, CD이미지 파일
.lha, lzh : DOS용 프로그램 lha.exe, lharc.exe에서 사용하던 압축 형식입니다. Lempel-Ziv 알고리즘을 사용합니다.
.mim : 인터넷에서 문서를 주고 받을 때 사용하는 형식입니다.
.pak : DOS용 프로그램 pak.exe에서 사용하던 압축 형식입니다.
.rar : DOS용 프로그램 rar.exe와 윈도우용 프로그램 winrar.exe에서 사용하는 압축 형식입니다. 분할 압축을 할 경우 확장자는 rar, r00, r01,... 형식으로 생기게 됩니다.
.tar : UNIX 명령 tar를 이용해 생성되는 파일 형식으로 실제로는 압축은 되지 않고 여러 파일을 하나로 묶어주기만 합니다. 보통 tar로 묶은 후 gz으로 압축하며 이 경우 .tar.gz 의 확장자를 갖고 줄여서 .tgz확장자를 사용하기도 합니다.
.tgz : UNIX에서 tar로 묶은 파일을 gzip으로 압축한 파일 형식입니다.
.uue : UU Encoded Format. E-Mail 로 이진(binary)형태의 파일을 보내기 위해 사용하는 형식입니다.
.war : 내부적으로 zip압축 알고리즘을 사용하는 파일 형식입니다.
.xxe : XXEncode Format. E-Mail로 이진(binary)형태의 파일을 보내기 위해 사용하는 형식입니다.
.z : UNIX용의 compress, uncompress에서 사용하는 파일 형식입니다.
.zip : 도스용 프로그램 pkzip.exe, pkunzip.exe에서 사용하는 파일 형식입니다. 알집에서는 zip 형식을 default로 지원하고 있습니다.
.zoo : DOS용 프로그램 zoo.exe에서 사용되는 파일 형식입니다.
.001 : rzjoin으로 분할된 파일 형식입니다. 압축이 아닌 단순히 001, 002...... 순서로만 분할된 파일입니다.
.7z : LZMA 알고리즘을 사용하는 7Zip 파일형식입니다. GNU LGPL 규약에 따른 오픈 소스 파일 형식입니다.
2. tar 기능 및 옵션
사용법: tar [-] c|r|t|u|x [bBefFhilmopvwX014578] [tarfile] [blocksize] [exclude-file] [-I include-file] filename1 filename2 ... -C directory filenameN ...
이와같이 상당히 복잡한데 대부분은 잘 쓰이지 않고 보통은 묶을때는 $tar -cvf filename1 filename2... [tarfile]을 풀때는 $tar -xvf [tarfile] 의 두가지를 보통 잘 쓴다.
tar는 여러개의 파일을 타르파일이라고하는 하나의 파일에 묶어주며 이들 가운데 특정 파일들을 끄집어 내거나 또는 tar 파일에 새로운 파일을 추가한다. tar가 수행할 작업은 첫번째 매개변수로 주어지는 선택사항(crtux 중 하나)에 의해 결정된다. 또다른 매개변수는 tar를 수행할 파일이나 디렉토리로써, 디렉토리가 주어지면 서브디렉토리 모두까지를 포함하게 된다.

옵션
 -c : 지정된 화일들에 대해 새로운 타르화일을 생성
 -r : 지정된 파일들을 기존의 타르파일의 끝에 추가
 -t : 타르파일이 저장하고 있는 파일의 리스트를 출력
 -u : 지정된 파일들이 타르파일에 없거나 혹은 변경된 경우 타르파일에 추가 혹은 수정
 -x : 지정된 파일들을 타르파일로부터 그집어냄
 -b : 테이프를 이용할 때의 블럭크기를 지정
 -B : 여러번 읽어들임. 파이프나 소켓을 이용할 경우 한번 읽어들일때 원하는 크기의 데이타 양을 읽기 위해 여러번 읽도록 해줌
 -e : 예상치 않은 에러 발생시 정상종료 상태를 반환하며 종료
 -f : 다음의 매개변수를 타르 파일 이름으로 지정. 생략시 환경변수 TAPE를 참조. 지정이 되지 않은 경우 /dev/rmt8을 기본적으로 이용. - 문자가 지정된 경우 표준 입출력을 이용
 -F : 하나의 F 문자 지정시 SCCS 디렉토리를 모두 배제. 두개의 FF 문자 지정시 .o로 끝나는 파일, errs, core, a.out 파일들을 모두 배제
 -h : 심볼릭 링크인 경우 실제의 화일 내용을 이용
 -i : 디렉토리 checksum 에러를 무시
 -m : 타르파일을 풀 때 각 파일의 수정 시간을 타르 파일을 푸는 현재 시간으로 설정.
 -p : umask 값을 무시하고 원래의 파일 접근 권한을 이용한다. 수퍼 유저인 경우 setuid, sticky bit 값도 복구된다.
 -v : tar의 작업진행 상황을 보여준다.
 -w : tar 작업 수행시 각각의 작업을 수행할 지의 여부를 물어본다. y 이외의 문자를 입력하면 해당 파일에 대한 작업을 수행하지 않는다.
 -X : 다음의 매개변수를 해당 작업을 수행하지 않을 파일 리스트를 가진 파일로 인식
 -I : 다음의 매개변수를 해당 작업을 수행할 파일 리스트를 가진 파일로 인식
 -C : c 혹은 r 선택사항에서, 타르파일 안에 묶기 전에 해당 디렉토리로 이동을 한다. 결과적으로 타르파일 안에 묶이는 파일들의 경로명이 단축된다.
3. gzip/gunzip, bzip2/bunzip2, zip/unzip
- gzip, gunzip
GNU zip을 의미하는 gzip은 압축률이 매우 뛰어난 프로그램으로서, 기존의 유닉스 compress 명령보다 휠씬 우월하며 리눅스의 기본 압축 명령으로 사용되고 있다.
gzip을 모르고 리눅스를 사용하기란 불가능하다.
거의 모든 소스와 바이너리들이 모두 gzip을 이용하여 압축되어 제공되기 때문이다.
무엇보다도 compress 명령은 특허가 걸려있는 압축루틴을 사용하는데 비해, gzip은 특허가 걸려있지않은 Lempel-Ziv 코딩(LZ77)이라는 기법을 사용하여 압축하고 있다.
명령 사용법은 매우 간단하다.
gzip 명령 다음에 압축할 파일명을 원하는 만큼 적어준다.
gzip [-9] file1 file2 ...
만약, gzip이 압축에 성공한다면 기존의 file1, file2는 사라지고 file1.gz, file2.gz과 같이 파일명이 .gz로 끝나는 파일이 만들어진다.
허가권과 모드는 모두 보존된다.
compress 명령은 .Z, 즉 대문자 Z로 끝나는 파일명을 갖는다.
-9 옵션을 주면 시간은 많이 걸리지만, 최대의 압축을 수행한다.
이와 반대로 -l 또는 --fast 옵션을 주면 압축률보다는 속도를 우선한다.
만약, 파일명이 주어지지 않는다면 gzip은 자료가 표준입력으로 들어오기를 기다리며( " - " 가 올때도 마찬가지다), 압축된 자료는 표준출력으로 나아간다.
gzip 압축된 것을 풀고 싶을때는 다음과 같이 명령한다.
gunzip file.gz
gzip -d file.gz
gzip에 압축해제(decompress)를 뜻하는 -d 옵션을 붙이거나, 또는 편리명령인 gunzip을 사용한다.
압축할때 -9 옵션을 주었는지 여부는 알아서 풀어준다. 또한, compress로 압축한 것도 풀어준다.
압축을 풀때는 반대로 file.gz을 삭제하고 file 만 남긴다.
여기에 -c 옵션을 주면 압축이 풀린 자료가 표준출력으로 나아가게 된다.
파이프를 통해 압축을 푼 자료를 다른 프로그램에 넘길때 빈번하게 사용하는 옵션이다.
gzip은 전형적인 '작은 기능'의 유닉스 철학을 보여주는 명령이다.
도스에서 사용하는 압축 명령과는 달리 gzip은 오로지 압축 기능만을 지원하며, 묶기기능은 지원하지 않는다.
묶기 기능은 tar 에서 지원한다.

- bzip2, bunzip2
최근에 커널소스를 압축하는데 gzip과 같이 사용되고 있어 인기를 끌고 있는 엄청난 압축률의 소유자인 bzip2가 있다.
bzip2는 Burrows-Wheeler 블록정렬 텍스트 압축 알고리즘과 허프만(Huffman) 코딩을 사용하고 있다고 한다.
특히, 텍스트 압축에서 두각을 보인다.
bzip2의 사용법은 gzip과 거의 유사하다고 보면 된다.
 bzip2 file

압축을 성공적으로 마치면 역시 gzip과 마찬가지로 원래의 파일은 사라지고 file.bz라는 파일이 생긴다.
파일명 뒤에 .bz2가 붙는다.
압축을 풀때는 bzip2 -d 또는 bunzip2를 사용하며, 압축풀린 내용을 파일이 아니라 표준출력으로 보내어 파이프로 연결된 다른 프로그램이 사용하게 하길 원할때는 역시 -c 옵션을 준다.
bzip2로 압축된 파일을 푸는 시간은 gzip 압축된 파일을 푸는 시간보다 훨씬 더 많이 걸린다.
이는 고압축률에 대비되는 피할 수 없는 단점일지 모른다.
교체가능한 작은 기능의 유닉스 개발철학의 장점을 보여주는 명령이다.
기존에 gzip으로 하던일을 다른 기능의 수정없이 그대로 그 자리를 대신할 수 있게 된 명령이다.
 ZIP -r -F 저장파일명.zip 디렉토리/
압축 옵션
 -r 서브디렉토리 포함
 -F 한글파일 포함

압축해제
unzip 파일이름.zip / jar xvf 파일이름.zip
4. make 기능
5. 소스코드 컴파일 및 설치 절차
7. pkg 관련 명령어
1) 패키지 정보
# pkginfo | more (전체 보기)
# pkginfo | grep SUNWman (특정 패키지 설치여부)
# pkginfo -l SUNWman (특정 패키지의 자세한 정보)
# pkginfo -d /cdrom/solarisxxx/Solaris_8/Product | more (CDROM 내의 패키지 정보)
# pkginfo -d /cdrom/solarisxxx/Solaris_8/Product -l SUNWaudio (CDROM 내의 특정 패키지 정보)
# pkginfo | wc -l ( 설치된 총 패키지 수)
# grep /usr/bin/audioplay /var/sadm/install/contents (audioplay 의 패키지 이름 알아내기1)
# pkgchk -l -p /usr/bin/audioplay (audioplay의 패키지 이름 알아내기2)
# pkgchk SUNWaudio ( 설치 성공 여부 확인, 성공 시 메시지 없음)
# pkgchk -v SUNWaudio (특정 패키지에 대한 자세한 설치 위치)
# pkgchk -p /etc/passwd (특정 파일에 대한 초기 패키지 설치후의 변경 정보)

2) 패키지 추가
# pkgadd -d /cdrom/solxxxx/Solaris_8/Product SUNWaudio
# pkgadd -d /cdrom/solxxxx/Solaris_8/Product -s spool SUNWaudio ( /var/spool/pkg에 패키지 스풀)
# pkgadd -d /cdrom/solxxxx/Solaris_8/Product -s /export/pkgs SUNWaudio ( /export/pkgs에 패키지 스풀)
* GUI의 어드민 툴(admintool)을 이용하여 설치할 수도 있다.(cf. sysadmin(14) 가능)

3) 패키지 제거
# pkgrm SUNWaudio
# pkgrm -s spool SUNWaudio (/var/spool/pkg 의 스풀 패키지 제거)
# pkgrm -s /export/pkgs SUNWaudio (/export/pkgs의 스풀 패키지 제거)
* GUI의 어드민 툴(admintool)을 이용하여 제거할 수도 있다.(cf. sysadmin(14) 가능)
 
맨위로
1.패키지 및 압축 파일 종류
2.tar 기능 및 옵션
3.gzip/gunzip, bzip2/bunzip2, zip/unzip
4.make 기능
5.소스코드 컴파일 및 설치
7.pkg 관련 명령어
 
맨아래로
이동