방법
1. 배포업체의 패키지 설치
2. 소스코드 컴파일
데비안 계열
-배포 업체: 데비안, 우분투, ...
-패키지 툴: dpkg, apt-get, aptitude
레드햇 계열
-배포 업체: 페도라, CentOS, RHEL
-패키지 툴: rpm, yum
RPM (Redhat Package Manager)
-레드햇 사에서 만들어낸 패키지 관리툴
-윈도우의 setup.exe 와 유사함
-패키지 확장자 명은 .rpm
"패키지명-버전-배포번호-페도라버전-아키텍처".rpm 순으로 파일명이 구성됨
"패키지명-버전-배포번호-CentOS버전-아키텍처".rpm
rpm [옵션] "패키지 파일"
-i: install
-h: hash, 패키지를 풀 때 해쉬(#)마크 표시
-U: Upgrade
-e: eliminate
-q: question, 패키지 설치 여부 확인
-v: 진행 과정을 메시지로 표시
-vv: 메시지를 상세히 명시
--nodeps: 의존성 관계를 무시하고 설치
--force: 강제로 설치 (--replacepkgs, --replacefiles, --oldpackage를 모두 사용)
--oldpackage: 다운그레이드
--replacepkgs: 패키지 재설치
--replacefiles: 다른 패키지 파일을 덮어쓰면서라도 패키지를 강제로 설ㄹ치
-V: Verify, 패키지 검증 시 사용하는 기본 옵션
-a: 모든 패키지를 검사
RPM 검증 코드
5: MD5 해쉬 변경
S: Size, 파일 크기 변경
L: Link, 심볼릭 링크 변경
T: Time, 파일의 수정일 변경
D: Device, 장치파일 변경
U: User, 사용자,소유자 변경
G: Group, 파일 그룹 변경
M: Mode, 파일 모드 변경
yum
-네트워크를 통해 기존 RPM패키지 업데이트, 설치, 제거를 수행
-RPM의 의존성 문제를 해결
yum install/remove "패키지명",
yum groupinstall/groupremove "패키지명"
yum update "패키지명"
yum localinstall "패키지 명" ## 현재 디렉터리내 *.rpm 파일을 설치
yum info "패키지 명" ## 패키지 요약 정보 확인
yum [group]list ## 전체 패키지 정보 출력
yum search "문자열" ## 문자열이 포함된 패키지 검사
dpkg
-데비안의 low레벨 패키지 관리 툴
-*.deb 파일이 데비안 패키지 파일
"패키지 명-버전-배포 번호-리버전-아키텍처".deb 로 패키지 명이 구성됨
-루트 권한으로 패키지 설치와 삭제가 가능
-RPM 처럼 의존성 문제가 있음
-i: install, 의존성 문제로 정상 실행이 안되는 경우가 있다.
-r: remove, 설치된 패키지만 삭제
-P: Purge, 패키지와 설정 정보 모두 삭제
-s: show, 패키지 상황 정보 출력
-L: List, dpkg가 설치한 모든 파일 목록 확인
apt-get (Advanced Packaging Tool GET)
-데비안 계열 패키지 관리툴
-의존성과 충돌문제를 해결하기 위해 "/etc/apt/source.list" 파일을 참조
apt-get install "패키지 명"
apt-get dist-update "패키지 명" ## 패키지 의존성을 검사하며 설치
apt-get update ## /etc/apt/source.list 파일 업데이트,
apt-get upgrade
apt-get remove "패키지 명"
-y: 모두 yes로 처리
-u: 업그레이드한 패키지 목록 표시
-V: 자세한 버전 표시
aptitude
-우분투의 패키지 관리 유틸리티
-apt 처럼 패키지 관리를 자동으로 함
파일 아카이브(Archive)
-다수의 파일이나 디렉터리를 하나의 파일로 묶는 것
tar [옵션] 파일명
c: create, 새로운 아카이브 파일 tar 생성
x: extrace, tar파일 압축 해제
d: diff, 아카이브에 있는 파일과 비교
r: 아카이브된 파일에 마지막 부분에 파일 추가
t: 아카이브 파일 안에 있는 파일 목록 나열
u: update, 아카이브 파일에 있는 기존 파일보다 새로운 파일로 업데이트
f: 아카이브 파일명을 지정, 생략하면 디폴트 파일명으로 지정
v: 처리하고 있는 파일의 정보를 화면에 출력
P: 절대 경로 정보 유지
--exclude: 특정 디렉터리를 제외하고 묶음
z: gzip형식에 대해서
j: bzip2형식에 대해서
J: xz옵션(gzip extract), tar.xz에 사용
가급적 f 옵션을 주어서 아카이브 파일명을 지정해주는 것이 좋다.
그 밖에 파일 압축 명령에는 compress, gzip, bzip2, xz 가 있으며,
gzip, bzip2 가 많이 사용되며,
압축률은 xz가 가장 높고, compress가 가장 낮다.
compress
-*.Z 형식 압축 파일에 대한 명령어
압축
compress [옵션] 파일명
-c: 기본 생성 파일은 .Z 가 아닌 지정 파일로 생성
-d: 압축 해제,
-v: 과정을 화면에 표시
-V: 버전 정보
압축 해제
uncompress 파일명
gzip
-*.gz 형식 압축 파일에 대한 명령어
압축
gzip [옵션] 파일명
-d: 압축 해제
-I: 압축된 파일의 정보
-v: 압축 해제 과정을 표시
압축 해제
gunzip 파일명
zcat
-압축 파일의 내용 출력
bzip2
-*.bz2 형식 압축 파일에 대한 명령어
압축
bzip2 [옵션] 파일명
-gzip 옵션과 동일
압축 해제
bunzip2 파일명
bzcat 파일명
xz
-*.xz 형식 압축파일에 대한 명령어
압축
xz [옵션] 파일명
-z: 강한 파일로 압축
-d: 강한 파일 압축 해제
-v: 압축 과정 진행 표시
해제
unxz 파일명
파일명 하나만 입력하면, 해당 파일을 압축하고, 원본은 삭제하는 거 같다.
일반적인 소스 코드로 소프트웨어 설치 방법
1 - ./configure
-환경 설정을 위해
2. make
3. make install
CMake(Cross Platform Make)
-멀티 플랫폼으로 사용 할 수 있는 Make를 위한 오픈소스 프로젝트
-지정한 운영 체제에 맞는 Make 파일의 생성만을 수행
-독자적 설정 스크립트 사용
-비주얼 스튜디오 지원
-크로스 컴파일 가능
-다양한 플랫폼 지원
출처: https://testkernel.tistory.com/184?category=851880 [test_kernel]