16. 패키지_RPM, YUM
패키지는 일종의 서비스로 프로그램이라고 생각하면 된다. 프로그램은 여러 개의 패키지로 이루어져 있으며, 어떤 프로그램이 실행되려면 이에 필요한 모든 패키지가 설치되어야 한다.
(1) 리눅스 패키지 설치 방법
1. tar & make: 소스 - 컴파일 - 환경설정 - 설치 - 실행
2. rpm: 설치 - 실행
3. yum: 인터넷
=> rpm과 yum은 인터넷 연결이 필요하다.
(2) 패키지 파일 구조
ex)
vim-enhanced-7.0.109-3.i386.rpm
1 2 3 4 5 6 7
1. 패키지명(버전 앞의 -를 기준으로 왼쪽 문자열) //vim: 대표 패키지명
2. 주 버전(major) //version up
3. 보조 버전(minor): 치명적인 결함(오류,버그) 수정 횟수 //upgrade
4. 수정 버전(patch): 사소한 오류, 버그 수정 횟수 //update
5. 배포 버전(release): 배포한 횟수
6. 아키텍쳐
-> 32bit: i386, i586, i686
-> 64bit: x86-64
-> 아무거나: noarch
7. 확장자
=> 패키지를 설치할 때 모든 버전을 맞춰서 설치하는 것이 좋다.
=> 모든 버전이 맞지 않다면 주, 보조 버전이라도 맞춰서 설치해야 한다.
(3) RPM 사용 형식
윈도우는 setup.exe을 통해 자동으로 프로그램을 설치하는 반면, 리눅스에서 RPM 설치는 사용자가 패키지의 개별적인 부분을 직접 설치해야 하는 수동적인 방법이다.
또한, RPM은 패키지 사이에 의존성이 있어 어떤 패키지를 설치하기 위해서는 다른 패키지가 설치되어 있어야 하는 경우가 있다. 이를 의존성 오류라고 한다.
*확인
rpm -qa | grep [package]
-> qa: 시스템에 설치되어 있는 전체 패키지 목록 조회
-> grep: 패턴 검색
<query 옵션> 기본적으로 패키지 조회 시에는 -q 옵션을 사용한다.
-qf: 파일을 포함하는 패키지 조회 -qi: 패키지 정보 출력 -qR: 패키지가 의존하고 있는 파일 또는 패키지 출력 -qc: 설정 파일들만 출력 -qs: 패키지에 속한 파일들의 상태 표시 |
*설치
rpm -ivh [package].rpm
-> i=install, v=visual, h=hash(#)
-> U옵션: 무조건 설치 (없는 패키지는 설치, 있던 패지는 업데이트)
-> package는 확장자까지 다 써야 한다.
// 윈도우에서 rpm 파일 설치 -> ftp를 통해 리눅스로 이동 -> rpm 파일이 있는 곳으로 이동한 다음 설치 진행
//설치 시 충돌이 발생한다면(이미 더 좋은 버전이 깔려있는 경우) 무시하고 진행한다(--nodeps 사용해서 설치).
*삭제
rpm -e [package]
-> e=erase
-> package는 패키지명만 쓰면 된다.
(4) RPM 유의사항
1. 의존성 오류(Failed dependencies)를 절대 무시하지 말자.
2. 의존성 오류가 제기된다면 의존성 오류를 제기한 것들부터 먼저 작업한다.
3. 디렉토리 구조로 표시되는 것들은 대부분 무시한다.
-> lib으로 시작하고 중간에 so가 들어간 것들은 대부분 무시한다.(예외는 있음)
4. 가급적 의존성 오류 무시 옵션(--nodeps)을 사용하지 말자.
(5) YUM
-rpm 기반의 시스템에서 사용하는 패키지 설치/제거 도구
-rpm과 달리 의존성을 시스템에서 스스로 해결한다. //rpm과 차이점
-인터넷 연결이 되어야만 사용이 가능하다. //rpm과 공통점
-작업할 패키지명을 알고 사용해야 한다.
*yum update
시스템에서 업데이트 가능한 패키지 목록 조회 후 업데이트 작업 진행 //리눅스 설치 후 초기 설정 작업 중 하나
-패키지 설치: yum install [package]
-패키지 삭제: yum remove [package]