리눅스 - RPM, YUM

OS/Linux 2016. 2. 12. 08:00

<RPM이란?>

Redhat Package ManagerWindow "setup.exe"와 비슷하다. , 프로그램을 설치한 후에 바로 실행할 수 있는 설치 파일을 제작하게 되었다. 이러한 설치파일의 확장명은 *.rpm이며, 이를 패키지라고 부른다.

RPM의 단점은 무엇일까?

RPM이 나오면서 리눅스에서의 설치는 편리해 졌지만 RPM의 가장 큰 문제점은 '의존성'이다.

예로 페도라의 기본 웹 브라우저인 FirefoxX윈도우에서 가동된다. X윈도우가 설치되지 않은 상태에서 firefox를 설치한다면? 의존성 때문에 설치가 되지 않을 것이다.

 


<RPM 파일 형식>

rpm 파일 형식을 예로 알아보자.

gedit-2.6.1-1.fc11.i586.rpm

패키지 이름-버전-릴리즈번호.페도라버전.아키텍처.rpm

 

1. 패키지 이름 : gedit

2. 버전 : 2.6.1

주버전, 부버전, 패치버전이며 높을 수록 최신임.

3. 릴리즈번호 : 1

문제점을 개선할 때 마다 붙여지는 번호

4. 페도라버전 : fc11

페도라에서 배포할 경우 붙여진다. fc11은 페도라 11용을 의미.

5. 아키텍처 : i586

CPU를 의미하는데, 이 파일이 설치 가능한 CPU를 의미한다.

 


<RPM 명령어>

rpm [옵션] [패키지파일]

 

U : 기존에 패키지가 설치되어 있지 않다면, 설치를 하고 기존에 패키지가 설치되어 있다면 업그레이드를 한다.

v : 설치과정을 출력

h : 설치진행과정을 특수문자"#"으로 표시한다.

e : 설치된 rpm삭제

qa : 시스템에 패키지가 설치되어 있는지 확인

qf : 이미 설치된 파일이 어느 패키지에 포함된 것인지 확인

ql : 특정 패키지에 어떤 파일들이 포함되었는지 확인

qi : 패키지 상세정보 출력

 


<YUM이란?>

리눅스에서 RPM은 유용하다. 하지만 의존성 문제때문에 불편한 점이 있다. 이런 의존성 문제를 완전히 해결한 것이 yum이다. Yellowdog Updater Modified라고 단순히 RPM을 설치할 때 편리하게 해주는 툴이라고 생각하자.

rpm같은 경우는 사용자가 직접 설치하고자 하는 파일을 인터넷에서 *.rpm을 다운받아 의존성을 따져가며 차례대로 설치하여야 했다. 하지만 yum은 어떤 특정 rpm파일을 다운받고자 할 때, 의존성을 가지는 다른 *.rpm파일들도 알아서 인터넷을 통해 Fedorarpm 파일이 저장된 저장소(Repository)에서 설치하고자 하는 rpm파일을 다운로드 한 다음에 설치까지 자동으로 해준다. (물론 자동으로 인터넷을 통해 다운로드 하기 때문에 네트워크가 꼭 연결된 상태에서만 yum을 사용해야 한다.)

그렇다면 저장소의 URL은 어떻게 알아 차리고 자동으로 다운로드를 하는것일까?

그것에 대한 정보는 /etc/yum.repos.d/ 디렉토리에 저장되어 있다.

 


<YUM 명령어>

yum install [패키지 이름]

-> 패키지 설치 (기본 설치 명령어)

yum -y install [패키지 이름]

-> 무조건 yes로 모두 설치할 때 사용한다. 편리함

yum check-update

-> 현재 시스템에 설치된 패키지 중에서 업데이트가 가능한 패키지의 목록을 출력한다.

yum update [패키지 이름]

-> 업데이트 해준다.

yum remove [패지키 이름]

-> 삭제하는 명령어

 


<yum 설정파일>

yum/etc/yum.conf/etc/yum.repos.d/ 디렉토리가 있다.

/etc/yum.conf는 사용자들이 특별히 설정할 것이 없다.

/etc/yum.repos.d/ 디렉토리는 아까 말했다 시피 yum명령을 입력했을 때 검색하게 되는 네트워크 주소가 들어있다.

 

<실습>

이번 실습은 /etc/yum.repos.d/ 디렉토리에 있는 파일을 backup파일에 모두 옮겨놓고(네트워크 URL파일들을 임시로 지우는 것이다.)

fedora-local.repo라는 빈 파일을 생성해서 yum명령을 실행하며 자동으로 이 파일만 확인하게끔 할 것이다.

우선 /etc/yum.repos.d/에 있는 파일들을 backup 디렉토리를 만들어 옮겨놓자.

그 후에, fedora-local.repo에 있는 내용은 mount시켜놓은 cdrom에서만 rpm파일을 찾을 수 있게 해보자. (원래 네트워크로만 정의되어 있는 경로를 cdrom으로 축소시켜서 범위를 제한하는것이다.)



 

우선 네트워크가 안되는 상황을 연출하기 위해 ifdown eth0를 입력해 네트워크를 다운시키자.



 

이제부터 yum install명령어를 사용하여 패키지를 설치하면 cdrom에서만 찾아서 설치할 것이다.



posted by 경원구