🦇 Linux

리눅스 - rpm, yum

ji-hyun 2021. 8. 29. 17:20

rpm (Red Hat Package Manager)

레드햇 사에서 만든 패키지 관리 기법으로 프로그램을 .rpm 형태의 파일로 배포하고, rpm 명령을 사용하여 손쉽게 설치 및 갱신, 제거, 검증, 질의 등의 관리를 할 수 있다. 

 

 

배포되는 rpm 파일 구성 형식

패키지이름-버전-릴리즈-아키텍처.rpm

 

 

+ )

참고 : root 관리자 권한에서 사용이 가능하다. 일반 사용자에서 관리자 권한으로 변경하려면 다음과 같이 su - 명령을 입력하면 된다.

 

암호는 root 관리자의 비번을 입력해주면 된다.

 

 

 

 

설치 및 갱신 모드

설치하기 전에 인터넷 연결이 되어있어야 설치가 가능하다. 네트워크 테스트를 위한 명령어를 다음과 같이 입력해준다.

# ping -c3 8.8.8.8

 

 

-i 새로운 패키지를 설치할 때 사용한다. 기본적으로 이전 버전의 같은 패키지가 있을 경우 설치가 되지 않는다. (--install)
-U 기존의 패키지를 새로운 버전의 패키지로 업그레이드할 때 사용한다.
-F 이전 버전이 설치되어 있는 경우에만 설치한다. (--freshen : 새롭게 하다)
-v 메시지를 자세히 보여준다.
-h 설치 상황을 # 기호로 표시해 준다. (--hash)
-force 기존 버전이 설치되었을 경우처럼 강제로 설치한다.
-nodeps 의존성 관계를 무시하고 설치한다. rpm 설치 시에 의존성 관계에 있는 패키지가 존재하지 않을 경우에는 설치가 되지 않는데, 그런 경우 강제로 설치할 때 사용한다.
-vv 메시지를 아주 자세히 보여준다.
--test 패키지를 실제 설치하기 전에 제대로 설치되는지 테스트해 볼 경우에 사용한다.

 

 

 

 

제거 모드

 

설치된 패키지를 제거한다. 패키지를 제거할 때는 -e 옵션을 사용하는데, 다른 패키지에 대한 의존성이 발생한 경우에는 제거되지 않는다. 의존성이 발생한 패키지를 제거하기 위해서는 먼저 의존성 관련 패키지를 제거하거나 추가로 --nodeps 옵션을 지정해야 한다.

 

 

 

 

질의 모드

 

패키지 관련 정보를 알아내기 위해 -q 옵션을 사용한다. -q 옵션만 사용하면 패키지 설치 유무나 간단한 버전 정보만 출력한다. 더욱 정확한 정보 출력을 위해서 -i, -a, -l, -d 등의 옵션과 연동해서 쓴다.

 

 

-q (--query) 질의 시에 꼭 사용해야 하는 옵션이다. 패키지를 찾으면 패키지 이름과 버전만 표시한다.
-i (--info) 설치된 패키지의 정보를 출력한다. -p 옵션과 같이 사용하면 rpm 패키지 파일에 대한 정보를 알 수 있다.
-l (--list) 패키지에서 설치한 모든 파일 정보를 출력한다. 역시 -p 옵션과 사용하면 rpm 패키지 파일이 설치되는 목록 파일을 알 수 있다.
-a (--all) 시스템에 설치된 모든 패키지 목록을 출력한다
-p 패키지파일명 rpm 패키지의 파일에 대한 정보를 보여준다. 이 옵션을 사용하려면 패키지 파일의 정확한 이름을 입력해야 한다.
-f 파일명(--file) 지정한 파일을 설치한 패키지 이름을 출력한다 
-c (--configfiles) 해당 패키지의 설정 파일이나 스크립트 파일을 출력한다.
-d (--docfiles) 해당 패키지의 문서 파일을 출력한다 
-R  어떤 패키지에 의존하고 있는지 보여준다. 
--changelog 특정 패키지의 바뀐 내역을 최근부터 연대순으로 보여준다.
--scripts 설치 및 제거 관련 스크립트를 보여준다. 
--queryformat 질의의 결과를 원하는 형태로 출력할 때 쓴다. C언의 printf()함수의 동작 방법과 유사합니다. 

 

 

 

<사용 예시>

 

$ rpm -qa | nl

시스템에 설치된 모든 패키지 정보를 출력, 그리고 nl (number line = 행번호 붙이기) 명령 실행

실행 결과 일부 캡처 (거의 300개 정도 나옴)

 

$ rpm -qi python

python 패키지에 대한 정보를 출력

 

 

$ rpm -ql python

python 패키지가 설치한 파일 목록을 출력

 

$ rpm -qf /bin/ls

/bin/ls 파일을 설치한 패키지 정보를 출력

 

 

 

$ rpm qlp python

python 패키지 파일에 설치되는 파일 목록의 정보들을 출력

 

 

 

 

검증 모드 생략..

 

 

 

 

yum

 

rpm 패키지 설치 시에 가장 많이 발생하는 의존성 문제를 자동으로 해결해준다.

 

의존성이 서로 얽히고 얽히고 뭉쳐있다면? 나중에는 왜 설치가 안되는지 어떤걸 위해 뭘 설치했더니 얘를 설치하려면 또 딴게 있어야한다면?

 

그래서 나온 명령어가 데비안 계열에서는 apt-get, 래드햇 계열에서는 yum이다.

 

* 레드햇 계열 : yum

- YUM 나오기 이전에는 주로 RPM이 사용되었으나, YUM은 RPM의 개념과 기능을 포함하기 때문에 최신 버전에서는 YUM을 사용하면 된다.. 

 

yum 명령어는 rpm 명령어의 패키지 의존성 문제를 완전하게 해결해준다.

또한 yum은 페도라 프로젝트가 제공하는 rpm 파일 저장소에서 설치할 rpm 파일은 물론이고 해당 파일과 의존성이 있는 다른 rpm 파일까지 인터넷을 통해 모두 알아서 다운로드한 후 자동으로 설치까지 해준다. 저장소의 url은 /etc/yum.repos.d/ 디렉터리 파일에 저장되어 있다.

 

 

 

 

패키지 설치방법

▶ yum install 패키지이름

→ 패키지를 설치한다. 의존성 관련 패키지도 자동으로 설치해준다.

 

▶ yum -y install 패키지이름

→ 설치할 때 ~~~ 확인하시겠습니까? 이런식으로 중간중간 물어봐서 yes를 체크해줘야하는 경우들이 있는데 내가 뭔가 따로 입력하지 않아도 yes로 설치하겠다는 뜻이다.

 

실행 결과 일부를 캡처했으며 ftp 패키지를 다운 받는 중인 모습

 

 

 

업데이트 관련

▶ yum check-update

→ 업데이트 가능한 목록 보기

 

▶ yum update 패키지이름

→ 업데이트 (사실 yum install 패키지이름이 기존에 설치되어 있다면 업데이트를 해주기 때문에 딱히 필요는 없다)

 

 

 

삭제

▶ yum remove 패키지이름

→ 패키지 삭제

 

 

 

정보 확인

▶ yum info 패키지이름

패키지에 대한 정보를 출력

 

▶ yum list installed

→ 설치된 패키지 에 대한 정보를 출력

 

▶ yum search player music

→ player와 music이라는 문자열이 들어있는 패키지를 찾아줌

 

 yum history

→ yum 관련한 작업 이력을 출력

 

 

 

 

 

출처 :

 

 

 

 

 

'🦇 Linux' 카테고리의 다른 글

리눅스 tar  (0) 2021.08.29
리눅스 - ftp  (0) 2021.08.29
[내가 보려고 쓴] 리눅스 프로세스 개념  (0) 2021.08.29
[내가 보려고 쓴] 리눅스 - du, df  (0) 2021.08.25
리눅스 - bashrc, bash_profile  (0) 2021.08.25