RPM 패키지 매니저
RPM Package Manager![]() | |
원저작자 | 에릭 트로안, 마크 유잉,[1] 레드햇 |
---|---|
개발자 | 커뮤니티 및 레드햇[2][3] |
초기 릴리즈 | [1] | 전(
안정된 릴리스 | 4.17.0 / 2021년 9월 3일; 전( |
프리뷰 릴리즈 | 4.18.0 alpha 2 / 2022년 5월 5일, 전( |
저장소 | |
기입처 | C, Perl[4] |
운영 체제 | Linux, Unix와 같은 |
이용가능기간: | 40개[5] 언어 |
유형 | 패키지 관리 시스템 |
면허증. | GPL |
웹 사이트 | rpm |
RPM(RPM) (원래 Red Hat Package Manager, 현재는 재귀 약어)는 무료 오픈 소스 패키지 관리 [6]시스템입니다.RPM이라는 이름은.rpm
파일 형식 및 패키지 관리자 프로그램 자체입니다.RPM은 주로 Linux 배포용입니다.파일 형식은 Linux Standard Base의 베이스라인 패키지 형식입니다.
Red Hat Linux에서 사용하기 위해 작성되었지만 RPM은 현재 PCLinuxOS, Fedora, AlmaLinux, CentOS, OpenSUSE, OpenMandriva 및 Oracle Linux와 같은 많은 Linux 디스트리뷰션에서 사용되고 있습니다.또한 Novell NetWare(6.5 SP3 버전), IBM의 AIX(4 [7]버전 기준), IBM [8]i 및 ArcaOS와 [9]같은 일부 다른 운영 체제에도 이식되었습니다.
RPM 패키지에는 임의의 파일세트를 포함할 수 있습니다.대부분의 RPM 파일은 일부 소프트웨어의 컴파일 버전을 포함하는 "바이너리 RPM"(또는 BRPM)입니다.바이너리 패키지 구축에 사용되는 소스 코드를 포함하는 "소스 RPM"(또는 SRPM)도 있습니다.파일 헤더에 일반(B) RPM과 구별되는 적절한 태그가 있기 때문에 설치 시 /usr/src로 압축 해제됩니다.SRPM은 통상적으로 파일 확장자 ".src.rpm" (.spm)을 사용합니다.파일 시스템의 확장자는 3자로 제한됩니다(예: 오래된 DOS FAT).
역사
RPM은 Erik Troan과 Marc Ewing에 [1]의해 1997년에 처음 작성되었으며, 그 기반은 다음과 같습니다.pms
,rpp
,그리고.pm
경험.
pm
Rik Faith와 Doug Hoffman이 1995년 5월에 Red Hat Software를 위해 작성했으며, 그 설계와 구현은 크게 영향을 받았다.pms
1993년 가을 Faith와 Kevin Martin이 Bogus Linux Distribution을 위해 작성한 패키지 관리 시스템. pm
'Pristin Sources + patches' 패러다임을 유지하다pms
기능을 추가하고 구현에 존재하는 임의의 제한을 없앱니다. pm
는 설치된[4][10][11] 패키지를 추적 및 검증하기 위한 데이터베이스 지원을 대폭 강화합니다.
특징들
소프트웨어 설치 및 유지보수를 수행하는 시스템 관리자는 수동 구축이 아닌 패키지 관리를 사용하면 단순성, 일관성 및 이러한 프로세스를 자동화 및 비인터랙티브화할 수 있는 등의 이점이 있습니다.rpm은 2019년 4.15 이후 Berkeley DB를 백엔드 데이터베이스로 사용합니다.RPM 패키지 (Berkeley DB 미포함)–disable-bdb
).
RPM의 특징은 다음과 같습니다.
- RPM 패키지는 GPG 및 MD5를 사용하여 암호화 검증 가능
- 원본 아카이브(예:
.tar.gz
,.tar.bz2
)가 SRPM에 포함되어 있어 검증이 용이함 - 델타 업데이트: 패치 RPM 및 패치 파일과 동등한 RPM인 Delta RPM은 RPM 설치 소프트웨어를 증분 업데이트할 수 있습니다.
- 자동 빌드 타임 의존성 평가.
로컬 운영
패키지는 특정 디스트리뷰션(예: Red Hat Enterprise Linux) 내에서 제공되거나 다른 당사자(예: RPM Fusion for Fedora Linux)[12]에 의해 구축될 수 있습니다.상호의존 RPM 간의 순환 의존성(이른바 '의존성 지옥')은 문제가 [13]될 수 있습니다.이 경우 단일 설치 명령으로 모든 관련 패키지를 지정해야 합니다.
저장소
RPM 은, 대부분의 경우, 인터넷상의 1 개 이상의 저장소에 일원적으로 수집됩니다.사이트에는 대부분의 경우 자체 RPM 저장소가 있으며 이러한 인터넷 저장소의 로컬 미러 역할을 하거나 유용한 RPM의 로컬 유지보수를 할 수 있습니다.
프런트 엔드
몇 개의 프론트 엔드에서 RPM을 저장소에서 가져와 설치하는 프로세스를 용이하게 하여 RPM의 의존관계를 해결합니다.여기에는 다음이 포함됩니다.
- Fedora Linux, CentOS 5 이상, Red Hat Enterprise Linux 5 이상, Scientific Linux, Yellow Dog Linux 및 Oracle Linux에서 사용되는 yum
- DNF, Fedora Linux 18 (22 이후 기본값), Red Hat Enterprise Linux 8, AlmaLinux 8 및 Cent에서 도입OS Linux 8.
- Red Hat Enterprise Linux, CentOS 3 및 4 및 Oracle Linux에서 사용되는 up2date
- Mer(및 Sailfish OS), MeeGo,[14] openSUSE 및 SUSE Linux Enterprise에서 사용되는 Zypper
- Mandriva Linux, ROSA Linux 및 Mageia에서 사용되는 urpmi
- Ak Linux,[15] PCLinuxOS 및 ALT Linux에서 사용되는 Debian Advanced Packaging Tool(APT) 포트인 apt-rpm
- Unity Linux에서 사용되는 Smart Package Manager는 Fedora Linux를 포함한 많은 배포에서 사용할 수 있습니다.
rpmquery
(예를 들어) Red Hat Enterprise Linux에서 사용할 수 있는 명령줄 유틸리티입니다.libzypp
, Sailfish OS용
로컬 RPM 설치 데이터베이스
패키지 매니저의 배후에서 작업하는 것은 RPM 데이터베이스입니다./var/lib/rpm
Berkeley DB를 백엔드로 사용합니다.1개의 데이터베이스(Packages
설치된 RPM의 모든 메타 정보를 포함합니다. 인덱싱 목적으로 여러 데이터베이스가 생성되어 쿼리 속도를 높이기 위해 데이터를 복제합니다.이 데이터베이스는 사용자가(RPM을 사용하여) 패키지를 설치할 때 변경 및 생성된 모든 파일을 추적하는 데 사용됩니다. 따라서 사용자는 RPM을 통해 변경 내용을 되돌리고 나중에 패키지를 제거할 수 있습니다.데이터베이스가 파손된 경우(RPM 클라이언트가 정지된 경우 가능), 인덱스 데이터베이스를rpm --rebuilddb
명령어를 [16]입력합니다.
묘사
RPM 형식은 Linux 디스트리뷰션마다 동일하지만 자세한 규칙과 가이드라인은 Linux 디스트리뷰션마다 다를 수 있습니다.
패키지 파일 이름 및 라벨
RPM 은, 1 개의 파일로 송신됩니다.보통 파일명은 다음과 같습니다.
<name>-<version>-<release>.src.rpm
소스 패키지의 경우 또는<name>-<version>-<release>.<architecture>.rpm
바이너리용.
예를 들어 패키지 파일 이름에서libgnomeuimm-2.0-2.0.0_3.i386.rpm
,그<name>
이libgnomeuimm
,그<version>
이2.0
,그<release>
이2.0.0_3
, 및<architecture>
이i386
연관된 소스 패키지에 이름이 지정됩니다.libgnomeuimm-2.0-2.0.0_3.src.rpm
RPM (탑재시)noarch.rpm
확장은 특정 CPU 아키텍처에 의존하지 않습니다.예를 들어, 이러한 RPM에는 다른 프로그램에서 사용할 수 있는 그래픽과 텍스트가 포함될 수 있습니다.또한 셸 스크립트나 Python과 같은 다른 해석된 프로그래밍 언어로 작성된 프로그램을 포함할 수도 있습니다.
RPM 컨텐츠에는 패키지 라벨도 포함되어 있습니다.이 라벨에는 다음과 같은 정보가 포함되어 있습니다.
- 소프트웨어명
- 소프트웨어 버전(소프트웨어의 원래 업스트림소스로부터 취득한 버전)
- 패키지 릴리스(같은 버전의 소프트웨어를 사용하여 패키지를 재구축한 횟수).이 필드는 "mdv"(이전의 "mdk"(Mandriva Linux), "mga"(Mageia), "fc4"(Fedora Core 4), "rhl9"(Red Hat Linux 9), "suse100"(SUSE 10Linux) 등의 문자열을 추가하여 패키지의 특정 배포를 나타낼 때도 자주 사용됩니다.
- 패키지가 작성된 아키텍처(i386, i686, x86_64, ppc 등)
패키지 라벨 필드는 파일 이름과 일치할 필요가 없습니다.
라이브러리 패키지
라이브러리는 버전별로 두 개의 개별 패키지로 배포됩니다.하나는 런타임에 사용할 수 있도록 미리 컴파일된 코드를 포함하고, 다른 하나는 헤더 등의 관련 개발 파일을 포함합니다.이러한 패키지는 이름 필드에 "devel"이 추가됩니다.시스템 관리자는 바이너리 패키지와 개발 패키지의 버전이 일치하는지 확인해야 합니다.
바이너리 포맷
형식은 바이너리이며 다음 4개의 [6]섹션으로 구성됩니다.
- 리드: 파일을 RPM 파일로 식별하고 오래된 헤더를 포함합니다.
- 무결성 및/또는 신뢰성을 확보하기 위해 사용할 수 있는 시그니처.
- 헤더: 패키지 이름, 버전, 아키텍처, 파일 목록 등을 포함한 메타데이터를 포함합니다.
- 파일 아카이브(payload)는 보통 cpio 형식으로 gzip으로 압축됩니다.그
rpm2cpio
툴을 사용하면 RPM [17]패키지를 설치하지 않고도 cpio 파일을 가져올 수 있습니다.
SPEC 파일
RPM 패키지를 작성하기 위한 "레시피"는 사양 파일입니다.스펙 파일은 .spec 접미사로 끝나며 패키지 이름, 버전, RPM 리비전 번호, 패키지 빌드, 설치 및 클리닝 단계 및 changelog가 포함됩니다.필요에 따라서, 1개의 RPM 사양 파일로부터 복수의 패키지를 작성할 수 있습니다.RPM 패키지는 rpmbuild 도구를 사용하여 RPM 스펙 파일에서 생성됩니다.
스펙 파일은 보통 소스 코드와 함께 패키지된 스펙 파일을 포함하는 SRPM 파일 내에 배포됩니다.
SRPM
일반적인 RPM은 직접 설치할 수 있도록 미리 컴파일된 소프트웨어입니다.대응하는 소스 코드를 배포할 수도 있습니다.이 작업은 SRPM에서 이루어집니다.SPEC 파일에는 소프트웨어 및 소프트웨어 구축 방법을 설명하는 "SPEC" 파일도 포함됩니다.SRPM을 사용하면 코드 자체를 컴파일하거나 변경할 수도 있습니다.
소프트웨어 패키지에는 플랫폼에 의존하지 않는 스크립트만 포함할 수 있습니다.이 경우 개발자는 설치 가능한 RPM인 SRPM만 제공할 수 있습니다.
NOSRC
이것은 SRPM의 특별한 버전입니다.「SPEC」파일과 패치(옵션)가 포함되어 있습니다만, 소스(통상은 [20]라이센스 때문에)는 포함되어 있지 않습니다.
포크
2010년 6월[update] 현재 개발 중인 RPM 버전은 2개입니다.하나는 Fedora Project와 Red Hat이 주도하고 다른 하나는 Red Hat의 전 직원인 RPM의 이전 유지보수가 주도하고 있습니다.
RPM.org
rpm.org 커뮤니티의 첫 번째 주요 코드 리비전은 2007년 7월에 있었습니다.버전 4.8은 2010년 1월에, 버전 4.9는 2011년 3월에, 4.10은 2012년 5월에, 4.11은 2013년 1월에, 4.12는 2014년 9월에, 4.13은 2015년 7월에 출시되었습니다.
이 버전은 Fedora Linux, Red Hat Enterprise Linux 및 파생 모델, Open SUSE, SUSE Linux Enterprise, Unity Linux, Mageia,[21] Open Embedded, Tizen 및 OpenMandriva Lx(구 Mandriva) 등의 배포판에서 사용됩니다.
RPM v5
1999년부터 RPM을 유지해온 Jeff Johnson은 다른 여러 유통업체의 참가자들과 함께 개발을 계속했습니다.RPM 버전5는 2007년 5월에 출시되었습니다.
이 버전은 Wind River Linux(Wind River Linux 10까지), Rosa Linux 및 OpenMandriva Lx(2011년에[22] rpm5로 전환된 이전 Mandriva Linux) 등의 배포 및 기타 일반적인 UNIX 플랫폼용 패키지를 제공하는 OpenPKG 프로젝트에서 사용됩니다.
OpenMandriva Lx는 4.0 릴리즈에서 [needs update]rpm[23].org으로 돌아갑니다.
RPM5의 마지막 주요 사용자인 Open Embedded는 RPM5의 문제로 [24][25]인해 rpm.org으로 다시 전환되었습니다.
「 」를 참조해 주세요.
- 자동 패키지 - "보완적인" 패키지 관리 시스템
- 델타 ISO - RPM 패키지 매니저 파일을 포함하는 ISO 이미지
- dpkg : Debian 및 그 파생 모델에 의해 사용되는 패키지 관리 시스템
- RPM 기반의 Linux 디스트리뷰션 목록
- pkg-config : 소스 코드에서 소프트웨어를 컴파일하기 위해 라이브러리를 쿼리합니다.
레퍼런스
- ^ "RPM -- plans, goals, etc". Max Spevack. Retrieved 2011-01-20.
- ^ "RPM.org FAQ". Archived from the original on 2016-11-05. Retrieved 2013-08-25.
- ^ a b Bailey, Edward C. (2000). "Chapter 1: An Introduction to Package Management". Maximum RPM: Taking the Red Hat Package Manager to the Limit. Red Hat, Inc. pp. 22–25. ISBN 978-1888172782. Archived from the original on 2016-09-10. Retrieved 2013-08-13.
- ^ "po/LINGUAS". GitHub. 2022-04-23.
- ^ a b Bailey, Edward C. (2000). "Appendix A: Format of the RPM File". Maximum RPM: Taking the Red Hat Package Manager to the Limit. Red Hat, Inc. pp. 325–336. ISBN 978-1888172782. Archived from the original on 2016-04-21. Retrieved 2010-11-22.
- ^ "Configuring YUM and creating local repositories on IBM AIX". 2018-10-24.
- ^ "RPM and Yum are a big deal for IBM i. Here's why". 2018-07-18.
- ^ "Package Manager". Retrieved 2020-09-04.
- ^ "RPM Guide-RPM - Design Goals". Retrieved 2014-04-14.
- ^ "BOGUS Announce". Retrieved 2014-04-14.
- ^ "RPM Fusion". rpmfusion.org. Retrieved 2010-11-22.
- ^ "An Analysis of RPM Validation Drift" (PDF). USENIX Association. Retrieved 2011-03-15.
- ^ "Zypper - MeeGo wiki". Archived from the original on 2013-09-25. Retrieved 2014-04-14.
- ^ "FAQs: About the Projects". Ark Linux Official Site. Archived from the original on 2012-02-11. Retrieved 2014-04-14.
- ^ "Repair an RPM database safely". Archived from the original on 2019-08-06. Retrieved 2011-11-11.
- ^ "Supplemental Packaging Software". Fedora Project. Retrieved 2011-11-11.
- ^ "Switch RPMs to zstd compression". Fedora Project (Wiki). Retrieved 2019-06-02.
- ^ "[PATCH] Add lzip support". Archived from the original on 2016-03-04. Retrieved 2013-10-24.
- ^ "How to package proprietary software". 10 December 2014. Retrieved 2018-07-02.
- ^ "Mageia 3 Release Notes: Package management". mageia.org. 2013-05-19. Retrieved 2014-04-14.
- ^ Bodnar, Ladislav & Smith, Jesse (2010-11-22). "DistroWatch Weekly". DistroWatch. Retrieved 2010-11-22.
- ^ "Forum: Switching to RPMv4". Retrieved 2018-03-03.
- ^ "YP Core - Pyro 2.3". Yocto Project. 2017-05-12. Archived from the original on 2017-12-05. Retrieved 2017-12-04.
{{cite web}}
: CS1 maint: bot: 원래 URL 상태를 알 수 없음(link)() - ^ "[Openembedded-architecture] Changes that switching from smart to dnf will cause". Yocto Project. 2017-02-14. Retrieved 2018-11-04.
- Schroeder, Jeff (2008-01-30). "Advanced RPM query strings". www.digitalprognosis.com. Archived from the original on 2011-08-09. Retrieved 2018-03-28.
외부 링크
- RPM.org 프로젝트 홈페이지
- RPM 및 DPKG 명령어레퍼런스
- Red Hat Magazine 2007-09-29 Wayback Machine에서 아카이브된 Matt Frye의 RPM 이야기
- RPM 패키지 작성 방법
- RPM 구축 및 패치 적용 비디오 튜토리얼
- RPM 주의사항 - RPM을 쉽게 구축
- RPM 패키징 소프트웨어, Part 1: 패키지 구축 및 배포
- Linux, 101: RPM 및 YUM 패키지 관리 학습