RPM (phần mềm)

Lịch sử

RPM ban đầu được viết vào năm 1997 bởi Erik Troan và Marc Ewing, dựa trên các kinh nghiệm pms, rpp, và pm experiences.
pm được viết bởi Rik Faith và Doug Hoffman tháng 5/1995 cho Red Hat Software, thiết kế và triển khai thực hiện của nó ảnh hưởng rất lớn từ pms, một hệ thống quản lý gói được viết bởi Faith và Kevin Martin vào mùa thu năm 1993 cho Bogus Linux Distribution. pm bảo tồn mô hình "Pristine Sources + patches"của pms, trong khi bổ sung các tính năng và loại bỏ những hạn chế có mặt trong việc thực hiện. pm cung cấp nhiều hỗ trợ tăng cường cơ sở dữ liệu để theo dõi và kiểm tra các gói cài đặt

Local operations

Gói có thể đến từ bên trong một phân phối cụ thể (ví dụ như Red Hat Enterprise Linux) hoặc được xây dựng cho nó bởi các bên khác (ví dụ RPM Fusion cho Fedora). Phụ thuộc chéo giữa các RPM phụ thuộc lẫn nhau (được gọi là "phụ thuộc địa ngục") có thể có vấn đề; trong trường hợp này là một lệnh cài đặt duy nhất cần phải xác định tất cả các gói có liên quan.

Kho lưu trư

RPM thường được thu gom tập trung về một hoặc nhiều kho lưu trữ trên internet. Một site thường có một kho lưu trữ RPM của riêng mình và có thể hoạt động như một mirrors địa phương của một kho lưu trữ trên internet hoặc là bộ sưu tập được duy trì tại địa phương của RPM hữu ích.

Cơ sở dữ liệu cài đặt RPM cục bộ

Hoạt động phía sau người quản lý gói là cơ sở dữ liệu RPM, lưu trữ trong /var/lib/rpm. Nó dùng  Berkeley DB làm back-end của nó. Nó bao gồm một cơ sở dữ liệu duy nhất (trọn gói) có chứa tất cả metadata của file cài đặt RPM. Nhiều cơ sở dữ liệu được tạo ra cho mục đích lập chỉ mục, sao chép dữ liệu để tăng tốc độ truy vấn. Các cơ sở dữ liệu được sử dụng để theo dõi tất cả các tập tin được thay đổi và tạo ra khi một người sử dụng (dùng RPM) cài đặt một gói, do đó cho phép người sử dụng (thông qua RPM) để đảo ngược những thay đổi và loại bỏ các gói sau đó.Nếu cơ sở dữ liệu bị hỏng (có thể nếu RPM client bị killed), các cơ sở dữ liệu chỉ mục có thể được tái tạo bằng lệnh rpm --rebuilddb.

Miêu tả

Trong khi định dạng RPM là như nhau trên các bản phân phối Linux khác nhau, quy ước chi tiết và hướng dẫn có thể khác nhau giữa chúng.

Thư viện đóng gói

Thư viện được phân phối trong hai gói riêng biệt cho mỗi phiên bản. Một chứa mã biên dịch sẵn để sử dụng run-time, trong khi cái thứ hai có chứa các tập tin phát triển liên quan như tiêu đề... Những gói có "-devel" nối vào trong tên. Các quản trị viên hệ thống phải đảm bảo rằng các phiên bản của hệ nhị phân và các gói phát triển phù hợp.

SPEC file

Các "Recipe" để tạo ra một gói RPM là một file spec. File Spec có phần mở rộng ".spec" và chứa tên gói, phiên bản, số RPM sửa đổi, các bước để xây dựng, cài đặt, và dọn dẹp một gói, và một changelog. Nhiều gói có thể được xây dựng từ một file RPM đặc tả duy nhất, nếu muốn. Gói RPM được tạo ra từ các tập tin RPM đặc tả bằng cách sử dụng công cụ rpmbuild.
File Spec thường phân bố trong các tập tin SRPM, có chứa các file spec đóng gói cùng với mã nguồn.

SRPM

Một RPM điển hình là phần mềm tiền biên dịch sẵn sàng để cài đặt trực tiếp. Các mã nguồn tương ứng cũng có thể được phân phối. Điều này được thực hiện trong một SRPM, bao gồm cả các file "SPEC" mô tả các phần mềm và cách nó được xây dựng. Các SRPM cũng cho phép người sử dụng để biên dịch, và có thể sửa đổi, mã chính nó.
Một gói phần mềm có thể chỉ chứa các script là kiến trúc độc lập. Trong một trường hợp như vậy chỉ có một SRPM có thể có sẵn; đây vẫn là một RPM cài đặt.

Phân nhánh

Tính đến  tháng 6 năm 2010, có hai phiên bản của RPM đang phát triển: một dẫn dắt bởi dự án Fedora và Red Hat, và phiên bản kia  bởi một nhóm riêng biệt được dẫn dắt bởi một nhà bảo trì trước của RPM, một cựu nhân viên của Red Hat.

RPM.org

Sửa đổi quan trọng đầu tiên của cộng đồng rpm.org là trong tháng 7/2007; phiên bản 4.8 phát hành tháng 1/2010, phiên bản 4.9 tháng 3/2011, 4.10 trong tháng 5/2012, 4.11 tháng 1/2013, 4.12 tháng 9/2014 và 4.13 tháng 7/2015.
Phiên bản này được dùng trên các bản phân phối như Fedora, Red Hat Enterprise Linux, openSUSE và SUSE Linux Enterprise, Unity Linux, Mageia, Mandriva trước đây (trước 2010).

RPM v5

Jeff Johnson, người bảo trì RPM từ năm 1999, tiếp tục nỗ lực phát triển cùng với sự tham gia của một số bản phân phối khác. RPM phiên bản 5 được phát hành tháng 5 năm 2007.
Phiên bản này được sử dụng bởi các bản phân phối như Wind River Linux, Rosa Linux, và OpenMandriva Lx (Mandriva Linux trước đây đã chuyển sang rpm5 năm 2011) và cũng được dự án OpenPKG cung cấp các gói và công cụ cho các nền tảng UNIX khác. OpenMandriva Lx xem là chuyển trở lại rpm.org trước khi folding.