Rpm

From 탱이의 잡동사니
Revision as of 13:10, 11 August 2016 by Pchero (talk | contribs) (→‎--test)
Jump to navigation Jump to search

Overview

RPM 패키지 매니저(RPM Package Manager- Red Hat Package Manager) 사용법 소개

rpmbuild

RPM 패키지를 생성하는 명령어이다.

Change working directory

rpmbuild 사용시, 기본적으로 자신의 홈디렉토리에 rpmbuild 디렉토리가 생기고, 그 안에서 RPM 패키징 작업이 시작되는데, 다음의 명령어를 사용하면 작업 root 디렉토리를 옮길 수 있다.

$ rpmbuild --define "_topdir `pwd`" -bb SPECS/sample.spec

rpm

RPM 패키지를 Install/Uprade/Remove/Search/Verify 할 때 사용하는 명령어

Install/Upgrade Options

RPM 패키지 업그레이드 명령어. 보통은 -vh 옵션을 붙여서 사용한다.

$ rpm -Uvh <package name>
$ rpm -ivh <package name>

특정 패키지를 재설치 해야할 경우(해킹을 당해서 패키지 내용이 변경된 경우..), 대부분은 삭제 -> 설치를 하면 해결이 된다.하지만 의존성이 심한 패키지같은 경우, 재설치를 위해 삭제를 할 경우, 원치않은 다른 패키지까지 주루룩 삭제되는 경우가 있다. 이런 경우, 다음과 같이 --force 옵션을 함께 사용해주면 된다.

$ rpm -Uvh --force <package name>

의존성 검사를 무시하고 설치하고자 할때는 --nodeps 를 붙여서 사용해주면 된다.

$ sudo rpm -Uvh --nodeps voicemail-1-21.fc12.x86_64.rpm 
Preparing...                ########################################### [100%]
	package voicemail-1-21.fc12.x86_64 is already installed

--test

실제로 패키지를 설치하지 않는다. 의존성 검사와 같은 테스트만 수행한다.

$ rpm -Uvh --test test_package-1.0.0-0.el6.x86_64.rpm 
error: Failed dependencies:
	sample-package is needed by test_package-1.0.0-0.el6.x86_64
	sample-package-devel is needed by test_package-1.0.0-0.el6.x86_64

Erase Options

Remove

RPM 패키지 삭제 명령어

$ rpm -e <package name>

Verify

RPM 패키지 검증 명령어

rpm -V or (--verify, or -y)
  • Package Selection Options
pkg1 … pkgN    Verify named package(s)
-p <file>      Verify against package file <file>
-f <file>      Verify package owning <file>
-a             Verify all installed packages
-g <group>     Verify packages belonging to group <group>
  • Verify-specific Options
--noscripts    Do not execute verification script
--nodeps       Do not verify dependencies
--nofiles      Do not verify file attributes
  • General Options
-v                 Display additional information
-vv                Display debugging information
--root <path>      Set alternate root to <path>
--rcfile <rcfile>  Set alternate rpmrc file to <rcfile>
--dbpath <path>    Use <path> to find the RPM database

See more