320x100
320x100

Chapter 4. 패키지 관리

 

배포판별 패키지 관리 (기본 패키지 관리 / 온라인 패키지 관리)

래드햇 : RPM / YUM

데비안 : Dpkg / apt-get

수세 : YaST / Zypper

 

 

소스파일 설치 단계

configure : 소스 프로그램의 환경설정. 컴파일을 위한 컴파일러, 라이브러리, 유틸리티 등을 찾아내 Makefile 생성

make : Makefile을 읽어 소스코드에서 실행 가능한 프로그램과 라이브러리를 자동 빌드.

: 타겟과 의존성 관련 작업 후 최종 실행파일 생성

make install : 컴파일된 실행파일을 지정한 속성으로 지정된 디렉터리에 설치

ex) ./configure prefix=/usr/local/apache (설치되는 디렉터리 설정)

ex) make \ make clean \ make install

 

 

 

RPM : 래드햇 계열의 패키지 관리 기법 (패키지이름-버전-릴리즈.리눅스버전.아키텍쳐.rpm 형식)

ex) httpd-2.4.41-5.fc29.x86_64.rpm

 

 

tar [option] [파일명] : tape archive. 파일을 묶기 위한 명령어 (인자값이 여러개인 옵션사용의 경우 -사용)

c : tar 파일 생성

x : tar 파일 압축해제

v : 명령 실행시 대상 파일 출력

-f 파일명 : 작업 대상이 되는 tar파일 지정 (--file=)

r : 기존 tar 파일에 파일 추가

t : tar 파일 내 파일 목록 출력

h : 심볼릭 링크가 가리키고 있는 원본 파일 저장

C : 디렉터리 변경 (--directory=)

p : 파일 생성시의 권한 유지 설정

Z : .Z 관련 옵션 (--compress, --uncompress)

z : gzip 관련 옵션 (--gzip)

j : bz2 관련 옵션 (--bzip2)

J : xz 관련 옵션 (--xz)

ex) tar Jxvf php-5.5.4.tar.xz C /usr/local/src

 

 

compress [option] 파일명 / uncompress [option] 파일명

: .Z 파일의 압축 관련. 현재는 비주류. (래드햇의 경우 ncompress 설치 필요)

-c : tar과 병행시 사용하는 표준 출력 지정 옵션

-v : 압축 관련 정보 출력

 

 

gzip [option] 파일명 / gunzip [option] 파일명 : .gz파일에 대한 압축

-d : 압축해제 (--decompress / --uncompress)

-1 / -9 : 빠른 압축. (--fast) / 최대 압축 (--best)

-c : tar과 병행시 표준출력

-l : 압축 파일에 대한 정보 출력 (--list)

-r : 하위 디렉터리까지 처리 (--recursive)

-v : 진행과정을 이름과 퍼센트로 출력 (--verbose)

bzip2 [option] 파일명 / bunzip2 [option] 파일명 : 블록정렬 알고리즘과 허프만 부호화를 이용한 .bz2 압축

-gzip과 동일 (-d, -1, -9, -c, -f)

 

 

xz [option] 파일명 / unxz [option] 파일명 : 가장 높은 압축률을 가지는 xz 압축

-z : 압축시 기본옵션.

-d : 압축 해제 (--decompress, --uncompress)

 

 

zip [option] 압축파일명 파일명 / unzip 압축파일명 : zip파일에 대한 압축

-r : 하위 디렉터리 포함

 

 

gcc [option] 파일명 : GNU 프로젝트에 의해 개발된 C컴파일러 도구

-o : 실행 파일 이름 지정

-c : 목적파일만 생성. .o 파일

 

rpm [option] [패키지_파일명] : 래드햇의 패키지 관리 도구

rpm 설치 및 갱신옵션

-i : 패키지 설치

-U : 패키지 업그레이드

-F : 이전 버전이 설치되어 있는 경우에만 설치

-v : 자세한 내용

-h : 설치상황을 #으로 표시

--force : 강제 설치

--nodeps : 의존성 관계 무시

-vv : 아주 자세한 내용

--test : 패키지 실제 설치 전 테스트

--rebuilddb : rpm 데이터베이스 업데이트

 

 

rpm 제거 옵션

-e : 패키지 제거 ()

--nodpes : 의존성 무시

--test : 실제 제거 전 테스트

--allmatches : 중복 설치된 동명의 패키지 삭제

 

 

rpm 질의 옵션

-q : 질의 (--query)

-i : 설치된 패키지 정보 출력 (--info)

-l : 패키지에서 설치한 모든 파일 정보 출력 (--list)

-a : 시스템에 설치된 모든 패키지 목록 출력 (--all)

-p 패키지_파일명 : rpm 패키지 파일에 대한 정보 출력 (--package)

-f 파일명 : 지정한 파일을 설치한 패키지 이름 출력 (--file)

-c : 해당 패키지의 설정파일 혹은 스크립트 파일 출력 (--configfiles)

-d : 해당 패키지의 문서 파일 출력 (--docfiles)

-R : 패키지의 의존성 출력 (--requires)

--changelog : 특정 패키지의 바뀐 내역 출력

--scripts : 설치 및 제거 관련 스크립트 출력

--filesbypkg : rpm패키지가 많을 경우 파일 앞에 패키지명 붙이고 출력

--queryformat : 질의의 결과를 원하는 형태로 출력 (--qf)

 

 

rpm 검증모드 : -V (--verify) 옵션 사용

S / M / 5 / D

 

 

rpmbuild [option] 소스패키지 : rpm 소스파일인 .src.rpm 파일을 패키지로 생성

--rebuild : rpm 패키지 생성

ex) rpmbuild rebuild gftp-2.0.19-8.fc18.src.rpm

 

 

yum : rpm 패키지 설치시 의존성 자동으로 해결해주는 패키지 관리 도구

 

/etc/yum.conf : yum 환경설정 파일

 

/etc/yum.repos.d : 설치 및 업데이트를 위한 관련 파일 모음 디렉터리

 

/var/cahce/yum/x86_64/6/base : 작업 관련 정보

 

/var/log/yum.log : yum 관련 작업로그

 

CentOS-Base.Repo : 네트워크 작업용 저장소 파일

base : yum 패키지 서버의 기본 경로 설정

updates : 업데이트 된 패키지를 위한 경로 설정

extras : 유용하게 쓸 수 있는 추가 패키지 경로 설정

centosplus : 존재하는 패키지들의 기능적 확장과 관련 있는 패키지 설정

contrib : CentOS 사용자들에 의해 제작된 패키지 경로 설정

 

 

 

yum [option] [command] [패키지_파일명]

-y : 모든 질의에 yes (--assumeyes)

-v : 자세한 정보 출력 (--verbose)

 

 

yum [command]

list [항목] : 전체 패키지에 대한 정보 출력

info [package] : 패키지에 대한 정보

check-update : 업데이트가 필요한 패키지 출력

update [package] : 패키지 업데이트

install [package] : 패키지 설치

search [string] : 검색

remove / erase : 패키지 삭제

grouplist : 패키지 그룹에 대한 정보 출력

groupinfo / groupupdate / groupinstall / groupremove 패키지그룹명

: 지정한 패키지 그룹 정보 검색, 업데이트, 설치, 삭제

whatprovides : 특정한 파일이나 기능과 관련된 패키지 정보 검색

clean [] : yum관련 저장된 정보 삭제. all, packages, rpmdb, dbcache

history [sub-command] : yum 작업이력. list, info, summary

 

 

 

정적 링크 라이브러리 : 컴파일시 실행파일에 포함되어 배포 되는 방식의 라이브러리 (빠르지만 무거움)

동적 링크 라이브러리 : 필요 할 때만 메모리에 적재되어 작동하는 라이브러리

 

공유 라이브러리 : 메모리 낭비를 줄이기 위해 응용프로그램에 동적으로 링크되어 공유되는 라이브러리 (.so)

ㆍ의존성 : 동적으로 링크된 프로그램이 실행되기 위해 공유 라이브러리가 필요한 경우

ㆍ링크 : 동적으로 링크된 파일의 실행을 위한 동적 링커인 ld.so에 지정된 라이브러리 탐색

/lib, /usr/lib : 공유 라이브러리 디렉터리. 기본명령어 및 응용프로그램

/etc/ld.so.conf : 추가적인 라이브러리 관련 디렉터리 등록 파일

/etc/ld.so.cache : ld.so.conf 파일을 기반으로 라이브러리 파일 목록 정보 저장

 

 

 

ldconfig [option] [라이브러리] : 공유 라이브러리 관련 정보 갱신 및 설정

-p : 현재 캐시에 저장되어 있는 공유 라이브러리 목록 출력

-v : 명령 실행과 관련된 자세한 정보 출력

-f : /etc/ld.so.conf 파일 대신 다른 환경 설정 파일 지정

 

 

 

ldd [option] 파일명 : 특정 파일이나 프로그램이 의존하고 있는 공유 라이브러리 정보 출력

-v : 관련 라이브러리 정보를 자세히 출력 (--verbose)

-f : /etc/ld.so.conf 파일 대신 다른 환경 설정 지정

 

300x250
728x90