260 likes | 458 Views
압축 , 업그레이드 , aptitude. 08 진 준호 _ Wheel Seminar. 파일 묶기 & 압축하기. 파일 묶기 : 이동이나 백업 작업 등의 편의를 위해 여러 파일을 하나로 만드는 작업 (tar) 압축하기 : 특정 혹은 여러 파일의 저장 공간을 줄이는 작업 ( compress, gzip ). gzip. 압축 속도가 빠르고 효율적 gzip garbage.txt -> garbage.gz 의 형태로 압축 내용 저장 !!
E N D
압축, 업그레이드, aptitude 08 진 준호 _ Wheel Seminar
파일 묶기 & 압축하기 • 파일 묶기 : 이동이나 백업 작업 등의 편의를 위해 여러 파일을 하나로 만드는 작업 (tar) • 압축하기 : 특정 혹은 여러 파일의 저장 공간을 줄이는 작업 ( compress, gzip)
gzip • 압축 속도가 빠르고 효율적 • gzipgarbage.txt -> garbage.gz의 형태로 압축 내용 저장 !! (압축 성공 시 원본 파일 ㅂㅂ//) • gzip으로 압축할 파일 여러 개 지정 시 -> 각각 gz확장자를 가진 파일로 저장 !!
gunzip • 원본 파일을 얻고 싶을 땐? -> gunzip (gzip –d) !! • gunzip으로 나온 파일은 원본 파일과 동일 (이번엔 압축 파일 ㅂㅂ//) • gunzip –N : 원래의 파일명으로 압축 파일 풀어줌 ex) gzipgarbage.txt mvgarbage.txt.gzrubbish.txt.gz gunzip –N rubbish.txt.gz -> garbage.txt !!
gzip • gzip은 표준 입/출력으로 데이터를 압축/해제 가능 ex) ls –laR $HOME | gzip.filelist.gz ex) gunzip –c filelist.gz | more (gunzip –c : 압축된 파일 삭제 no, 내용 확인 가능) -> zcat
gzip • -1 ~ -9 까지의 옵션 -1 : 빠르지만 비효율적 -9 : 느리지만 최고의 압축 효율 -6 : 기본값 -> 하지만 gunzip은 어떤 옵션으로 파일을 압축했는지 그런거 신경 안 씀 !!
compress • Filename.Z • 좀 더 효율적인 알고리즘 • gzip은 .Z 포맷의 압축을 풀 수 있다 !!
bzip2 • gzip보다 평균 10~20% 뛰어난 압축률 !! • 하지만 시간이 오래 걸린다 ...... ㅇ<-< • Filename.bz2 • gzip으로 압축한 것은 bunzip2로 풀 수 없다 !!!!! (그 반대도 마찬가지)
tar • tar functionoptions files … • Function : 수행할 작업을 지시하는 단일 명령 -> 자주 쓰이는 것 c : 새로운아카이브의 생성 x :아카이브로부터 파일 추출 t : 아카이브에 담긴 내용 나열 -> 그 외 r : 아카이브의 마지막 부분에 파일 추가 u : 아카이브에 있는 기존 파일보다 새로운 파일 갱신 d : 아카이브에 있는 파일과 비교
tar • Option : 기능에서처리할 기능(단일문자)의 목록 -> 자주 쓰이는 옵션 v : 파일을묶거나 풀 때 다양한 정보 출력 k : 기존의 파일 보존 (덮어쓰기 no) f filename : 읽거나기록할 tar 파일 정의 z : gzip으로 압축하도록 지시 j : bzip2로 압축하도록 지시 (구버전x) • Ex) tar cfmt.tarmt(* : 디렉토리 저장 x) • tar xvfmt.tar
gip, bzip2& tar • tar cvf- files … | gzip -9 > tarfile.tar.gz • tar c(or x)vzftarfile.tar.gz files … • Bzip2를 사용하고 싶을 때 : 압축프로그램 지정 : tar cvftarfile.tar.bz2 –use-compress-program=bzip2 files … -> tar cvjftarfile.tar.bz2 files • bash : .bashrc파일에 다음 함수 포함시킨다 • tarc () { tar czvf $1.tar.gz $1 } • tarx () { tar xzvf $1 } • tart () { tar tzvf $1 }
tar 트릭 • cd from-stuff tar cf - . | (cd ../to-stuff; tar xvf -) • From-stuff 디렉토리에서to-stuff디렉토리로미러 • 이 트릭을 사용, 한 머신의디렉토리트리를 다른 머신으로 전송 가능하다 !
소프트웨어 업그레이드 • 하루가 다르게 나오는 패치들 eee • 다받을 순 없다 ? 다 받을 필요가 없다 ! • When? : 중요한 버그 수정 or 해당 애플리케이션 업그레이드 등등…. • http://www.freshmeat.net or CD_ROM구독 !!
업그레이드 방법 ? • 라이브러리 업그레이드 • 공유 라이브러리 • 정적 라이브러리(디버깅 위해 라이브러리 루틴 복사본 갖도록 컴파일) <-> 동적 라이브러리 • 정적 라이브러리 교체 • library.a : 새로운 버전으로 복사 • 동적 라이브러리 교체 • Library.so.version 1. 우선 .a 파일 덮어쓰기 2. 새로운 이미지 파일을 /lib에 복사 3. 새로운 라이브러리 가리키도록 심볼릭 링크 갱신 : ln –sf /lib/libncurses.so.5.4 /lib/libncurses.so.5 -> 심볼릭 링크를 먼저 삭제하지 않도록 주의 ! or 패망
업그레이드 방법 ? • 컴파일러 업그레이드 : C 컴파일러와 관련 유틸리티 -> ftp://ftp.gnu.org/pub/Linux/GCC -> root 권한으로 몇 개의 tar 파일 풀고 기타 파일 삭제 -> gcc –v 로 현재 컴파일러 버전 확인 !
업그레이드 절차 • 다양한 방식 ~ RPM 패키지 시스템, 데비안 패키지 시스템, 수동으로 하기. • 패키지 • 장점 • 내려 받은 하나의 파일 안에 모든 것이 들어 있다 ! • 다른 패키지 건드리지 않고 한 패키지 완전 삭제 가능 ! • 의존성 데이터베이스 유지 및 자동 의존성 검사 ! • 단점 • 모든 것을 패키지를 통해 설치해야 한다 ! • 서로 다른 패키지 시스템 섞어 쓰는 것도 좋지 않다 ! -> 의존성 유지를 위해서…
dpkg & apt • dpkg : 가장 널리 쓰이는 패키지 관리자 (.deb패키지 관리), 저수준인터페이스 • 대부분의 기능은 apt 통합 프로그램으로 처리
dpkg • -i : 설치 (의존성에 문제 있다면 경고 메시지 띄움) • 패키지 설치 & 업그레이드 모두 i(install) 옵션 사용 !! • -r : 삭제 ** -P : 또한 삭제 ! 하지만 –r 은 설정파일을 남기는 반면, -P는 모두 지운다 !! • -l : 어떤 패키지들이 설치되어 있는지 확인 • --audit : 시스템에서 잘못된 점과 수정 방법 확인 • --search : 특정 파일이 속한 패키지 검색 • --status : 패키지 정보 표시 • --info : .deb에 대한 정보 표시 • --contents : .deb안에 있는 파일과 디렉토리 목록 나열
apt • Advanced Package Tool • 가장 중요한 기능 : 의존성 해결 • 가장 유용한 명령 : apt-get • 사용 가능한 패키지 목록(패키지 캐시) 관리 • 의존성 문제 해결 • 패키지 설치 • apt-get update : 갱신 내용 알려 준다. • apt-get upgrade : 자동으로 업그레이드 • 하지만 자동으로 업그레이드가 안 된다면 ?????
apt • apt-get install upgrade 실패한 패키지 이름 • 업그레이드 완료 및 의존성 문제 해결 ! • 또 다른 기능 apt-cache : 저장 공간에 들어 있는 패키지 정보를 찾을 수 있게 해주는 기능. • apt-cache search “~~~” : 키워드 검색 • apt-cache show : 더 자세히 보고 싶을 때 !
기타 소프트웨어 업그레이드 • 최신 배포판 필요 : 바이너리 배포판, 소스 배포판 • 1. 바이너리 배포판-> tar 파일을 풀어서 사용 ** 예전 버전의 파일과 지원 파일(새로운 tar 파일에 의해 덮어쓰기되지 않은 파일들)은 반드시 지워준다 !! or 예전 버전 실행 !! • 2. 소스 배포판 • 바이너리에 비해 더 쉽고 좋은 방법 : 코드 검사 가능
소스 배포판 • 바이너리에 비해서 귀찮다; 1. 소스를 별도 디렉토리에 푼다. 2. README, INSTALL 파일 읽거나 설치 지시 파일 읽는다. 3. 기본적인 프로그램 빌드 방법 - Makefile점검 (컴파일러를 제어하는 make에 대한 지시사항, 시스템에 맞게 일부 편집 필요) - 프로그램과 관련된 다른 파일 편집 - 설정 스크립트 실행 : Makefile없고 Makefile.in과 configure라는 파일이 있는 경우 -> autoconf시스템을 사용하여 빌드->./configure - make 실행 (man install : 컴파일후 시스템에 실행 파일과 지원 파일을 설치)
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 : 패키지를 현재의 버전으로 유지하며, 업그레이드 하지 않는다.