압축 , 업그레이드 , aptitude

26
압압 , 압압압압압 , aptitude 08 압 압압 _ Wheel Seminar

Upload: shilah

Post on 07-Feb-2016

76 views

Category:

Documents


0 download

DESCRIPTION

압축 , 업그레이드 , aptitude. 08 진 준호 _ Wheel Seminar. 파일 묶기 & 압축하기. 파일 묶기 : 이동이나 백업 작업 등의 편의를 위해 여러 파일을 하나로 만드는 작업 (tar) 압축하기 : 특정 혹은 여러 파일의 저장 공간을 줄이는 작업 ( compress, gzip ). gzip. 압축 속도가 빠르고 효율적 gzip garbage.txt -> garbage.gz 의 형태로 압축 내용 저장 !! - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 압축 ,  업그레이드 , aptitude

압축 , 업그레이드 , aptitude

08 진 준호 _ Wheel Seminar

Page 2: 압축 ,  업그레이드 , aptitude

파일 묶기 & 압축하기

파일 묶기 : 이동이나 백업 작업 등의 편의를 위해 여러 파일을 하나로 만드는 작업 (tar)

압축하기 : 특정 혹은 여러 파일의 저장 공간을 줄이는 작업 ( compress, gzip)

Page 3: 압축 ,  업그레이드 , aptitude

gzip 압축 속도가 빠르고 효율적

gzip garbage.txt -> garbage.gz 의 형태로 압축 내용 저장

!! ( 압축 성공 시 원본 파일 ㅂㅂ //)

gzip 으로 압축할 파일 여러 개 지정 시 -> 각각 gz 확장자를 가진 파일로 저장 !!

Page 4: 압축 ,  업그레이드 , aptitude

gunzip 원본 파일을 얻고 싶을 땐 ? -> gunzip (gzip –d) !!

gunzip 으로 나온 파일은 원본 파일과 동일 ( 이번엔 압축 파일 ㅂㅂ //)

gunzip –N : 원래의 파일명으로 압축 파일 풀어줌 ex) gzip garbage.txt

mv garbage.txt.gz rubbish.txt.gz

gunzip –N rubbish.txt.gz -> garbage.txt !!

Page 5: 압축 ,  업그레이드 , aptitude

gzip gzip 은 표준 입 / 출력으로 데이터를 압축 / 해제 가능

ex) ls –laR $HOME | gzip.filelist.gz

ex) gunzip –c filelist.gz | more

(gunzip –c : 압축된 파일 삭제 no, 내용 확인 가능 )-> zcat

Page 6: 압축 ,  업그레이드 , aptitude

gzip -1 ~ -9 까지의 옵션

-1 : 빠르지만 비효율적 -9 : 느리지만 최고의 압축 효율 -6 : 기본값

-> 하지만 gunzip 은 어떤 옵션으로 파일을 압축했는지 그런거 신경 안 씀 !!

Page 7: 압축 ,  업그레이드 , aptitude

compress Filename.Z

좀 더 효율적인 알고리즘

gzip 은 .Z 포맷의 압축을 풀 수 있다 !!

Page 8: 압축 ,  업그레이드 , aptitude

bzip2 gzip 보다 평균 10~20% 뛰어난 압축률 !!

하지만 시간이 오래 걸린다 ...... ㅇ <-<

Filename.bz2

gzip 으로 압축한 것은 bunzip2 로 풀 수 없다 !!!!!( 그 반대도 마찬가지 )

Page 9: 압축 ,  업그레이드 , aptitude

tar tar functionoptions files …

Function : 수행할 작업을 지시하는 단일 명령-> 자주 쓰이는 것 c : 새로운 아카이브의 생성 x : 아카이브로부터 파일 추출 t : 아카이브에 담긴 내용 나열-> 그 외 r : 아카이브의 마지막 부분에 파일 추가 u : 아카이브에 있는 기존 파일보다 새로운 파일 갱신 d : 아카이브에 있는 파일과 비교

Page 10: 압축 ,  업그레이드 , aptitude

tar Option : 기능에서 처리할 기능 ( 단일문자 ) 의 목록

-> 자주 쓰이는 옵션v : 파일을 묶거나 풀 때 다양한 정보 출력k : 기존의 파일 보존 ( 덮어쓰기 no)f filename : 읽거나 기록할 tar 파일 정의z : gzip 으로 압축하도록 지시j : bzip2 로 압축하도록 지시 ( 구버전 x)

Ex) tar cf mt.tar mt(* : 디렉토리 저장 x)

tar xvf mt.tar

Page 11: 압축 ,  업그레이드 , aptitude

gip, bzip2 & tar tar cvf- files … | gzip -9 > tarfile.tar.gz tar c(or x)vzf tarfile.tar.gz files …

Bzip2 를 사용하고 싶을 때 : 압축프로그램 지정 : tar cvf tarfile.tar.bz2 –use-compress-program=bzip2 files …

-> tar cvjf tarfile.tar.bz2 files

bash : .bashrc 파일에 다음 함수 포함시킨다 tarc () { tar czvf $1.tar.gz $1 } tarx () { tar xzvf $1 } tart () { tar tzvf $1 }

Page 12: 압축 ,  업그레이드 , aptitude

tar 트릭 cd from-stuff

tar cf - . | (cd ../to-stuff; tar xvf -)

From-stuff 디렉토리에서 to-stuff 디렉토리로 미러

이 트릭을 사용 , 한 머신의 디렉토리 트리를 다른 머신으로 전송 가능하다 !

Page 13: 압축 ,  업그레이드 , aptitude

소프트웨어 업그레이드 하루가 다르게 나오는 패치들 eee

다 받을 순 없다 ? 다 받을 필요가 없다 !

When? : 중요한 버그 수정 or 해당 애플리케이션 업그레이드 등등… .

http://www.freshmeat.net or CD_ROM 구독 !!

Page 14: 압축 ,  업그레이드 , aptitude

업그레이드 방법 ? 라이브러리 업그레이드

공유 라이브러리 정적 라이브러리 ( 디버깅 위해 라이브러리 루틴 복사본 갖도록

컴파일 ) <-> 동적 라이브러리 정적 라이브러리 교체

library.a : 새로운 버전으로 복사 동적 라이브러리 교체

Library.so.version 1. 우선 .a 파일 덮어쓰기2. 새로운 이미지 파일을 /lib 에 복사3. 새로운 라이브러리 가리키도록 심볼릭 링크 갱신 : ln –sf /lib/libncurses.so.5.4 /lib/libncurses.so.5

-> 심볼릭 링크를 먼저 삭제하지 않도록 주의 ! or 패망

Page 15: 압축 ,  업그레이드 , aptitude

업그레이드 방법 ? 컴파일러 업그레이드

: C 컴파일러와 관련 유틸리티-> ftp://ftp.gnu.org/pub/Linux/GCC-> root 권한으로 몇 개의 tar 파일 풀고 기타

파 일 삭제-> gcc –v 로 현재 컴파일러 버전 확인 !

Page 16: 압축 ,  업그레이드 , aptitude

업그레이드 절차 다양한 방식 ~ RPM 패키지 시스템 , 데비안 패키지

시스템 , 수동으로 하기 .

패키지 장점

내려 받은 하나의 파일 안에 모든 것이 들어 있다 ! 다른 패키지 건드리지 않고 한 패키지 완전 삭제 가능 ! 의존성 데이터베이스 유지 및 자동 의존성 검사 !

단점 모든 것을 패키지를 통해 설치해야 한다 ! 서로 다른 패키지 시스템 섞어 쓰는 것도 좋지 않다 !

-> 의존성 유지를 위해서…

Page 17: 압축 ,  업그레이드 , aptitude

dpkg & apt

dpkg : 가장 널리 쓰이는 패키지 관리자 (.deb 패키지 관리 ), 저수준 인터페이스

대부분의 기능은 apt 통합 프로그램으로 처리

Page 18: 압축 ,  업그레이드 , aptitude

dpkg -i : 설치 ( 의존성에 문제 있다면 경고 메시지 띄움 )

패키지 설치 & 업그레이드 모두 i(install) 옵션 사용 !!

-r : 삭제** -P : 또한 삭제 !하지만 – r 은 설정파일을 남기는 반

면 , -P 는 모두 지운다 !! -l : 어떤 패키지들이 설치되어 있는지 확인 --audit : 시스템에서 잘못된 점과 수정 방법 확인 --search : 특정 파일이 속한 패키지 검색 --status : 패키지 정보 표시 --info : .deb 에 대한 정보 표시 --contents : .deb 안에 있는 파일과 디렉토리 목록 나열

Page 19: 압축 ,  업그레이드 , aptitude

apt Advanced Package Tool

가장 중요한 기능 : 의존성 해결

가장 유용한 명령 : apt-get 사용 가능한 패키지 목록 ( 패키지 캐시 ) 관리 의존성 문제 해결 패키지 설치

apt-get update : 갱신 내용 알려 준다 . apt-get upgrade : 자동으로 업그레이드

하지만 자동으로 업그레이드가 안 된다면 ?????

Page 20: 압축 ,  업그레이드 , aptitude

apt apt-get install upgrade 실패한 패키지 이름

업그레이드 완료 및 의존성 문제 해결 !

또 다른 기능 apt-cache : 저장 공간에 들어 있는 패키지 정보를 찾을 수 있게 해주는 기능 .

apt-cache search “~~~” : 키워드 검색 apt-cache show : 더 자세히 보고 싶을 때 !

Page 21: 압축 ,  업그레이드 , aptitude

기타 소프트웨어 업그레이드 최신 배포판 필요 : 바이너리 배포판 , 소스 배포판

1. 바이너리 배포판 -> tar 파일을 풀어서 사용 ** 예전 버전의 파일과 지원 파일 ( 새로운 tar 파일에 의해

덮어쓰기되지 않은 파일들 ) 은 반드시 지워준다 !! or 예전 버전 실행 !!

2. 소스 배포판 바이너리에 비해 더 쉽고 좋은 방법 : 코드 검사 가능

Page 22: 압축 ,  업그레이드 , aptitude

소스 배포판 바이너리에 비해서 귀찮다 ;

1. 소스를 별도 디렉토리에 푼다 .

2. README, INSTALL 파일 읽거나 설치 지시 파일 읽는다 .

3. 기본적인 프로그램 빌드 방법- Makefile 점검 ( 컴파일러를 제어하는 make 에 대한

지시사항 , 시스템에 맞게 일부 편집 필요 )

- 프로그램과 관련된 다른 파일 편집- 설정 스크립트 실행 : Makefile 없고 Makefile.in 과 configure 라는 파일이

있는 경우 -> autoconf 시스템을 사용하여 빌드 ->./configure

- make 실행 (man install : 컴파일 후 시스템에 실행 파일과 지원 파일을 설치 )

Page 23: 압축 ,  업그레이드 , aptitude

Aptitude - 패키지 관리 명령

Page 24: 압축 ,  업그레이드 , aptitude

Aptitude aptitude install/remove : 패키지 설치 / 제거

참고 ) aptitude purge: 패키지 제거 (환경 설정 파일도 함께 삭제 )

aptitude search : 로컬 apt 패키지 리스트 검색 aptitude update : 로컬 apt 패키지 리스트 갱신 aptitude upgrade : 설치된 모든 패키지 업그레이드 aptitude clean : 패키지 캐쉬디렉토리에서 기존에 다운로드한 모든

패키지 파일들 삭제 aptitude dist-upgrade : 설치된 모든 패키지 업그레이드 ( 필요하다면

특정 패키지를 제거하거나 설치 ) aptitude show : 패키지에 대한 자세한 정보 보여줌 aptitude autoclean : 기존에 다운로드 받은 패키지 파일들 중 구식

패키지 파일들 삭제 aptitude hold : 패키지를 현재의 버전으로 유지하며 , 업그레이드

하지 않는다 .

Page 25: 압축 ,  업그레이드 , aptitude

Aptitude

Page 26: 압축 ,  업그레이드 , aptitude