소프트웨어 패키지 관리 (계속)
3. 파일 압축 관리
1) tar (Tape ARchive)
- 파일과 디렉토리를 하나의 파일로 묶어주는 아카이브(archive)를 생성해주는 도구
- 원래 테이프 장치에서 아카이브를 생성하기 위해 설계
- 압축 기능이 없는 것은 아니지만, 단순히 파일들을 꾸러미 형태로 묶는 것이 주된 기능
- 형식
$ tar Function + Options 아카이브명.tar 디렉토리/파일
- Function
- c : 새로운 아카이브 생성
- x : 아카이브 해제
- u : 아카이브 비교하여 새로운 파일 추가
- t : 아카이브에 있는 파일 확인
- Options
- f : tar 아카이브 파일 지정
- v : 아카이브 생성 및 해제시 정보 출력
- z : tar.gz 형태로 압축 또는 해제 (확장자는 붙여줘야 함)
- j : tar.bz2 형태로 압축 또는 해제 (확장자는 붙여줘야 함)
[root@localhost ~]# mkdir /test
[root@localhost ~]# cd /test
[root@localhost test]#
[root@localhost test]# cat > test
I love you.
You love me.
[root@localhost test]# ls -al
합계 12
drwxr-xr-x 2 root root 4096 5월 30 09:49 .
dr-xr-xr-x. 20 root root 4096 5월 30 09:49 ..
-rw-r--r-- 1 root root 25 5월 30 09:49 test
[root@localhost test]# tar cf test.tar *
[root@localhost test]# ls -al
합계 24
drwxr-xr-x 2 root root 4096 5월 30 09:50 .
dr-xr-xr-x. 20 root root 4096 5월 30 09:49 ..
-rw-r--r-- 1 root root 25 5월 30 09:49 test
-rw-r--r-- 1 root root 10240 5월 30 09:50 test.tar
[root@localhost test]#
[root@localhost test]# rm -f test.tar
[root@localhost test]#
[root@localhost test]# tar cvf test.tar *
test
[root@localhost tar]#
[root@localhost test]# mkdir tar
[root@localhost test]# mv test.tar tar/
[root@localhost test]# cd tar/
[root@localhost tar]# ls -al
합계 20
drwxr-xr-x 2 root root 4096 5월 30 10:19 .
drwxr-xr-x 3 root root 4096 5월 30 10:19 ..
-rw-r--r-- 1 root root 10240 5월 30 09:55 test.tar
[root@localhost tar]# pwd
/test/tar
[root@localhost tar]#
[root@localhost tar]# tar xf test.tar
[root@localhost tar]# ls -al
합계 24
drwxr-xr-x 2 root root 4096 5월 30 10:20 .
drwxr-xr-x 3 root root 4096 5월 30 10:19 ..
-rw-r--r-- 1 root root 25 5월 30 09:49 test
-rw-r--r-- 1 root root 10240 5월 30 09:55 test.tar
[root@localhost tar]#
[root@localhost tar]# tar rvf test.tar /usr/bin/telnet
tar: Removing leading `/' from member names
/usr/bin/telnet
[root@localhost tar]# ls -al
합계 124
drwxr-xr-x 2 root root 4096 5월 30 10:20 .
drwxr-xr-x 3 root root 4096 5월 30 10:19 ..
-rw-r--r-- 1 root root 25 5월 30 09:49 test
-rw-r--r-- 1 root root 112640 5월 30 10:29 test.tar
[root@localhost tar]# tar xf test.tar
[root@localhost tar]# ls -al
합계 128
drwxr-xr-x 3 root root 4096 5월 30 10:30 .
drwxr-xr-x 3 root root 4096 5월 30 10:19 ..
-rw-r--r-- 1 root root 25 5월 30 09:49 test
-rw-r--r-- 1 root root 112640 5월 30 10:29 test.tar
drwxr-xr-x 3 root root 4096 5월 30 10:30 usr
[root@localhost tar]#
[root@localhost tar]# mkdir tar2/
[root@localhost tar]# tar xvf test.tar -C tar2/
test
usr/bin/telnet
[root@localhost tar]# ls -al tar2/usr/bin
합계 112
drwxr-xr-x 2 root root 4096 5월 30 10:33 .
drwxr-xr-x 3 root root 4096 5월 30 10:33 ..
-rwxr-xr-x 1 root root 102608 5월 7 2013 telnet
[root@localhost tar]#
※ tar에서 가장 중요한 것, cvf와 xvf
[root@localhost tar]# rm -f test.tar
[root@localhost tar]# tar cfz test.tar.gz *
[root@localhost tar]# ls -al
합계 112
drwxr-xr-x 4 root root 4096 5월 30 10:36 .
drwxr-xr-x 3 root root 4096 5월 30 10:19 ..
drwxr-xr-x 3 root root 4096 5월 30 10:33 tar2
-rw-r--r-- 1 root root 25 5월 30 09:49 test
-rw-r--r-- 1 root root 91534 5월 30 10:36 test.tar.gz
drwxr-xr-x 3 root root 4096 5월 30 10:30 usr
[root@localhost tar]# tar xfz test.tar.gz
[root@localhost tar]# ls -al
합계 112
drwxr-xr-x 4 root root 4096 5월 30 10:37 .
drwxr-xr-x 3 root root 4096 5월 30 10:19 ..
drwxr-xr-x 3 root root 4096 5월 30 10:33 tar2
-rw-r--r-- 1 root root 25 5월 30 09:49 test
-rw-r--r-- 1 root root 91534 5월 30 10:36 test.tar.gz
drwxr-xr-x 3 root root 4096 5월 30 10:30 usr
[root@localhost tar]#
2) gzip & gunzip
- gzip 유틸리티는 파일을 압축하고 푸는 데 사용되는 GNU 압축 유틸리티
- gzip에 의해서 압축되는 파일은 .gz 확장자
3) bzip2 & bunzip2
- gzip보다 높은 압축률, gzip에 비해 압축 해제 속도는 느림.
4. RPM(Redhat Package Manager)을 이용한 패키지 관리
1) 명령
- -i 패키지명 : 설치
- -U 패키지명 : 업그레이드
- -e 패키지명 : 제거
- -q 패키지 목록 : 질의
- -V 패키지 목록 : 검증
- -y 패키지 목록 : 검증
- -b 패키지명 : 패키지 생성
5. YUM(Yellowdog Updater Modified)을 이용한 패키지 관리
1) RPM의 패키지 의존성 문제 해결
- RPM 패키지 설치 시 자동으로 의존성 문제 처리
- RPM 패키지를 안전하게 설치, 제거, 업그레이드
# yum install <패키지 명>