강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

RPM 설치(install)와 업그레이드(Upgrade)

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

RPM 설치(install)와 업그레이드(Upgrade)

 

 

무엇보다 가장 중요한 RPM의 기능은 프로그램의 설치이다.

 

 

 

 

RPM 패키지를 설치하는 옵션은 i, U, F 3 가지 옵션이 있다.

 

 

 

 

세 가지 옵션 모두 RPM 패키지를 설치하는데 필요한 옵션이지만 약간의 차이점이 있다.

 

 

 

 

 

 

 

처음 설치시

업그레이드 설치시

-i

O

X

-U

O

O

-F

X

O

 

설치의 방법은 처음 설치와 업그레이드 설치의 2가지로 나눌 수 있다.

 

 

 

 

만약 -i 옵션을 이용하여 설치를 시도하였을 때 기존에 같은 패키지가 설치되어 있다면 원칙적으로는 프로그램 패키지의 설치를 할 수 없다.

 

 

 

 

-v 옵션은 상세 정보를 출력하도록 하고, -h 옵션은 해시(#)를 마크를 사용하여 설치 진행 상황을 보여준다.

 

 

 

 

 

 

 

 

 

 

[root@sulinux ~]# rpm -ivh xz-libs-4.999.9-0.3.beta.20091007git.el5.x86_64.rpm

준비중.. ########################################### [100%]

1:xz-libs ########################################### [100%]

[root@sulinux ~]#

 

 

 

 

 

그리고 -U 옵션을 통한 프로그램 패키지 설치의 경우 기존에 동일한 패키지 혹은 하위 버전의 패키지가 있다면 업그레이드를, 없다면 초기 설치를 진행하게 된다.

 

 

 

 

기존의 패키지를 업그레이드 할 때 기존의 설정 파일은 .rpmsave 확장자가 붙어서 보존된다.

 

 

 

 

다음과 같이 한다.

 

 

 

 

 

# rpm -Uvh xz-libs-4.999.9-0.3.beta.20091007git.el5.x86_64.rpm

 

 

 

 

 

이에 대해 -F 옵션을 통한 설치의 경우 기존에 설치된 패키지가 반드시 있어야 한다.

 

 

 

 

만약 기존에 하위 버전의 패키지가 없다면 -F 옵션을 통한 설치는 불가능할 것이다.

 

 

 

 

그렇다면 왜 -F 옵션을 통한 패키지의 설치를 제공하는가? 만약 FTP 사이트에서 각종 RPM 파일을 다운로드 한 뒤 자신의 시스템에서 불필요한 패키지를 설치하지 않으면서 업그레이드 할 부분만을 업그레이드하고 싶을 때, 이것은 유용하게 사용할 수 있는 옵션이다.

 

 

 

 

다음은 패키지명을 *.rpm로 지정하여 모든 RPM 패키지를 설치하도록 한 것이다.

 

 

 

 

 

 

 

[root@sulinux /root]# rpm Fvh *.rpm

foo ####################################

……

……

……

 

 

 

 

 

다음은 RPM 설치 명령어와 같이 쓰이는 옵션들이다.

 

 

 

 

여기에서 --nodeps --force 의 경우는 반드시 기억해 두기 바란다.

 

 

 

 

전자는 패키지 설치 시에 의존성 검사를 하지 않도록 하는 것이고, 후자는 설치 도중 발생하는 에러를 무시하고 강제로 설치하도록 하는 것이다.

 

 

 

 

패키지를 다수 설치하면 설치 순서를 무시할 필요가 있는 경우가 있고, 의존성이 있는 패키지가 호환성은 있지만 단순히 버전이 맞지 않는 경우도 있을 수 있다.

 

 

 

 

이런 경우에 이 옵션들은 설치 작업을 유연하게 할 수 있도록 한다.

 

 

 

 

패키지가 이미 설치되어 있는 경우에 이를 무시하고 새로 설치를 진행하고자 한다면 --replacepkgs 옵션을 사용한다.

 

 

옵 션

옵션 설명

--nodeps

패키지 설치시 의존성 검사를 하지 않는다.

 

 

 

 

 

--force

설치 도중 발생하는 에러를 무시하고 강제로 설치하는 옵션이다.

--replacepkgs --replacefiles --oldpackage를 동시에 사용한 것과 같은 효과를 보여준다.

--oldpackage

새로운 패키지를 지우고 구 버전을 설치할 때 사용한다.

 

 

 

 

 

--replacepkgs

이미 같은 패키지가 설치되어있어도 다시 설치할 때 사용한다.

--root <directory>

RPM 패키지를 설치할 때 설정한 디렉토리의 위치를 기준으로 설치가 된다.

--test

패키지를 실제로 설치하지 않고 가상으로 설치해 본 뒤 충돌사항이 있는지 점검하고 보고한다.

--noscripts

preinstall, postinstall 스크립트를 실행하지 않는다.

--excludedocs

문서 파일(man page, info page)를 설치하지 않는다.

 

 

 

 

 

-h --hash

해시(#) 마크를 사용하여 패키지 설치 진행 상황을 알려준다.

 

 

 

 

-v를 함께 사용하면 조금 더 상세한 정보를 출력 한다.

--percent

패키지 설치시 %로 완료를 표시한다.

 

 

 

 

이는 FTP 설치시 유용하다.

 

 

 

설치를 위해 우선 설치할 프로그램의 설치 패키지를 프로그램의 웹사이트에서 다운로드하거나 CD-ROM에서 복사한다.

 

 

 

 

 

 

다음은 압축 프로그램인 xz를 설치하는 예이다(리눅스 배포판에서 xz 압축 프로그램을 제공하지 않는다는 가정 하에 설치를 진행한다.

 

 

 

 

물론, 삭제 후에 재설치하는 것도 좋다). RPM 패키지는 의존성이 있는 패키지들을 설치해야 완전한 설치가 가능하다(의존성을 무시하고 설치하는 경우 정상적인 작동이 안 되는 경우가 대부분이다).

 

 

따라서 사용하고 있는 리눅스 배포판에 맞춰서 제공되는 RPM이 아닌 경우에는 호환되는 리눅스 배포판 중에서 적정 버전의 RPM 패키지를 다운로드하여 사용한다.

 

 

 

 

SULinux 2.x의 경우 CentOS 5.x 대 그리고 SULinux 2014의 경우 CentOS 6.x 대에 맞춰 제공되는 RPM 패키지를 다운로드하여 설치하면 된다.

 

 

 

 

 

 

xz 프로그램에 관한 패키지들은 다음과 같다.

 

 

xz-4.999.9-0.3.beta.20091007git.el5.x86_64.rpm

xz-libs-4.999.9-0.3.beta.20091007git.el5.x86_64.rpm

xz-lzma-compat-4.999.9-0.3.beta.20091007git.el5.x86_64.rpm

xz-devel-4.999.9-0.3.beta.20091007git.el5.x86_64.rpm

 

 

 

설치는 의존성 문제를 고려하여 순서에 맞게 설치한다(만약 이것들 외의 패키지들과의 의존성이 없고, 이들 패키지들 상호간의 의존성만이 문제되는 경우라면 --nodeps 옵션을 이용하여 의존성을 무시하고 그냥 설치해도 좋다).

 

 

 

아래는 의존성 문제로 오류 메시지가 출력되었다(경고 문구는 삭제했다).

 

 

 

 

 

 

 

[root@sulinux ~]# rpm -ivh xz-4.999.9-0.3.beta.20091007git.el5.x86_64.rpm

오류: Failed dependencies:

liblzma.so.0()(64bit) is needed by xz-4.999.9-0.3.beta.20091007git.el5.x86_64

xz-libs = 4.999.9-0.3.beta.20091007git.el5 is needed by xz-4.999.9-0.3.beta.20091007git.el5.x86_64

[root@sulinux ~]#

 

 

 

 

 

 

 

아래는 의존성을 고려하여 설치 순서를 맞춰서 패키지를 설치한 것이다.

 

 

 

 

 

 

 

[root@sulinux ~]# rpm -ivh xz-libs-4.999.9-0.3.beta.20091007git.el5.x86_64.rpm

준비중.. ########################################### [100%]

1:xz-libs ########################################### [100%]

[root@sulinux ~]# rpm -ivh xz-4.999.9-0.3.beta.20091007git.el5.x86_64.rpm

준비중.. ########################################### [100%]

1:xz ########################################### [100%]

[root@sulinux ~]# rpm -ivh xz-lzma-compat-4.999.9-0.3.beta.20091007git.el5.x86_64.rpm

준비중.. ########################################### [100%]

1:xz-lzma-compat ########################################### [100%]

[root@sulinux ~]#

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  97 명