Cài đặt gói rpm trong Linux. Quản lý gói trong RHEL - rpm rpm là viết tắt của gì

  • 02.07.2020

RPM (Trình quản lý gói RedHat) là tiện ích quản lý gói phổ biến nhất cho các hệ thống dựa trên Mũ đỏ, nhu la RHEL, CentOS, Fedora... Công cụ cho phép người quản trị hệ thống và người dùng cài đặt, cập nhật, gỡ cài đặt, truy vấn, kiểm tra và quản lý các gói phần mềm hệ thống trên hệ điều hành Unix / Linux... Quản lý gói hàng RPM lưu trữ thông tin về các ứng dụng được cài đặt trên hệ thống trong cơ sở dữ liệu của nó / var / lib / rpm... Bản thân các tệp .rpm chứa các phiên bản đã biên dịch của phần mềm, các thư viện cần thiết cho hoạt động của chúng, cũng như thông tin cập nhật về nguồn gói, phiên bản và phần phụ thuộc. RPM không thể quản lý phần mềm được biên dịch và cài đặt từ mã nguồn.

Trên thực tế RPM hoạt động ở một số chế độ. Yêu cầu và kiểm tra:

  • rpm (-q | --query)
  • rpm (-V | - xác minh)
Cài đặt, cập nhật, gỡ bỏ các gói:
  • rpm (-i | --install) PACKAGE_FILE ...
  • rpm (-U | - nâng cấp) PACKAGE_FILE ...
  • rpm (-F | --freshen) PACKAGE_FILE ...
  • rpm (-e | --erase) [--allmatches] [--justdb] [--nodeps] [--noscripts] [- notriggers] [--test] PACKAGE_NAME ...

1. Kiểm tra chữ ký rpm của gói gpg

Nó được khuyến khích để luôn luôn kiểm tra gpg Ký tên vào gói trước khi cài đặt để xác minh tính xác thực của nó. # rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK

2. Cài đặt gói rpm

Để cài đặt gói rpm, hãy sử dụng phím -tôi: # rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm Đang chuẩn bị ... ############################ ################### 1: pidgin ############################### ############# -tôi: Cài đặt gói -v: hiển thị thông tin gỡ lỗi -NS: dấu thăng đầu ra khi cài đặt

3. Kiểm tra sự phụ thuộc của gói rpm trước khi cài đặt

Bạn có thể xem danh sách các gói phụ thuộc như sau: # rpm -qpR htop-2.0.2-2.fc26.aarch64.rpm ld-linux-aarch64.so.1 () (64bit) ld-linux-aarch64.so. 1 (GLIBC_2. 17) (64bit) libc.so.6 () (64bit) libc.so.6 (GLIBC_2.17) (64bit) libm.so.6 () (64bit) libm.so.6 (GLIBC_2. 17) (64bit) libncursesw.so.6 () (64bit) libtinfo.so.6 () (64bit) rpmlib (CompressedFileNames)<= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 rtld(GNU_HASH) -NS: thực hiện yêu cầu -p | --Bưu kiện: yêu cầu thông tin -NS: tùy chọn chế độ truy vấn, danh sách các gói phụ thuộc

4.Rpm, cài đặt các gói không có phụ thuộc

Nếu bạn chắc chắn rằng tất cả các phần phụ thuộc cần thiết đã được cài đặt và rpm chửi rủa và không cho phép cài đặt gói, bạn có thể bỏ qua việc cài đặt các phần phụ thuộc bằng cách sử dụng cờ --nodeps: # rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm Đang chuẩn bị ... ######################### ###################### 1: BitTorrent ############################ # ################# Lệnh trên sẽ buộc cài đặt gói dù có lỗi vòng / phút... Xin lưu ý rằng nếu các phần phụ thuộc vẫn bị thiếu trong hệ thống, chương trình đã cài đặt sẽ không hoạt động và bạn sẽ cần phải cài đặt riêng các phần phụ thuộc cần thiết.

5. Rpm, kiểm tra gói đã cài đặt

Để kiểm tra xem một gói đã được cài đặt hay chưa, bạn cần yêu cầu gói bắt buộc: gói htopđã cài đặt gói # rpm -q htop htop-2.0.2-1.el7.x86_64 giả mạo không được cài đặt # vòng / phút -q gói giả mạo không được cài đặt

6.Rpm, danh sách các tệp gói đã cài đặt

Danh sách các tệp của gói đã cài đặt có thể được lấy theo yêu cầu -ql (danh sách truy vấn): # rpm -ql htop / usr / bin / htop /usr/share/doc/htop-2.0.2 /usr/share/doc/htop-2.0.2/AUTHORS/usr/share/doc/htop-2.0. 2 / SAO CHÉP /usr/share/doc/htop-2.0.2/ChangeLog /usr/share/doc/htop-2.0.2/README /usr/share/man/man1/htop.1.gz/ usr/ Share/ pixmaps / htop.png

7.Rpm, danh sách các gói được cài đặt gần đây

# rpm -qa --last htop-2.0.2-1.el7.x86_64 Thứ bảy, ngày 03 tháng 6 năm 2017 06:20:07 PM MSK

8. Rpm, liệt kê tất cả các gói đã cài đặt

Để có được danh sách tất cả các gói được cài đặt trên hệ thống, bạn cần chạy một truy vấn -qa không có tham số bổ sung # rpm -qa perl-HTML-Parser-3.71-4.el7.x86_64 dracut-network-033-463.el7.x86_64 filesystem-3.2-21.el7.x86_64 .......... ........... danh sách các gói sẽ khá lớn, để phân trang bạn có thể sử dụng các tiện ích như hơn hoặc ít hơn: # rpm -qa | hơn

9. Cập nhật gói rpm

Để cập nhật bất kỳ vòng / phút gói tùy chọn được sử dụng -U (nâng cấp). Tùy chọn này không chỉ cập nhật bất kỳ gói nào lên phiên bản mới nhất mà còn tạo một bản sao lưu của phiên bản cũ của gói đó. Nếu sau khi cập nhật xảy ra sự cố và phần mềm không hoạt động, bạn có thể quay lại phiên bản làm việc đã biết và đã cài đặt trước đó. # rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm Đang chuẩn bị ... ############################# ################# 1: nx ################################ # ###########

10. Loại bỏ gói rpm

Để xóa một gói, hãy sử dụng tùy chọn -e (tẩy xóa), tùy chọn vv được sử dụng để đầu ra dài dòng hơn của thông báo gỡ lỗi: # rpm -evv nx

11. Loại bỏ gói rpm mà không có phụ thuộc

Tham số --nodeps buộc loại bỏ một gói vòng / phút từ hệ thống. Lưu ý rằng việc loại bỏ một gói cụ thể có thể phá vỡ các ứng dụng sản xuất khác. # rpm -ev --nodeps htop

12. Rpm, yêu cầu một tệp thuộc một gói

Nếu bạn cần tìm gói nào mà một tệp cụ thể thuộc về, hãy sử dụng tùy chọn -qf (tệp truy vấn): # rpm -qf /etc/my.cnf mariadb-libs-5.5.52-1.el7.x86_64

13. Rpm, nhận thông tin về một gói đã cài đặt

Để nhận thông tin chi tiết về gói đã cài đặt, hãy sử dụng tùy chọn -qi (thông tin truy vấn): # rpm -qi htop Tên: htop Phiên bản: 2.0.2 Phát hành: 1.el7 Kiến trúc: x86_64 Ngày cài đặt: Chủ nhật ngày 4 tháng 6 năm 2017 10:20:51 AM Nhóm MSK: Ứng dụng / Kích thước hệ thống: 212139 Giấy phép: GPL + Chữ ký : RSA / SHA256, Chủ nhật ngày 24 tháng 7 năm 2016 09:22:13 CH MSK, ID khóa 6a2faea2352c64e5 Nguồn RPM: htop-2.0.2-1.el7.src.rpm Ngày xây dựng: Chủ nhật ngày 24 tháng 7 năm 2016 01:01:34 CH MSK Máy chủ xây dựng: buildvm-26.phx2.fedoraproject.org Vị trí: (không thể di dời) Người đóng gói: Fedora Nhà cung cấp dự án: Fedora URL dự án: http://hisham.hm/htop/ Tóm tắt: Trình xem quy trình tương tác Mô tả: htop là một văn bản tương tác - chế độ xem quy trình cho Linux, tương tự như trên cùng (1).

14.Rpm, nhận thông tin về một gói chưa được cài đặt

Để nhận thông tin về một gói đã được tải xuống nhưng chưa được cài đặt, bạn có thể yêu cầu -qip (gói thông tin truy vấn): rpm -qip ./pachage_name.rpm

15.Rpm, xem các tệp tài liệu cho một gói cụ thể

Cuộc điều tra -qdf (tệp tài liệu truy vấn) sẽ liệt kê tất cả các tệp tài liệu cho gói: # rpm -qdf / usr / bin / htop /usr/share/doc/htop-2.0.2/AUTHORS /usr/share/doc/htop-2.0.2/COPYING / usr / share /doc/htop-2.0.2/ChangeLog /usr/share/doc/htop-2.0.2/README /usr/share/man/man1/htop.1.gz

16. Kiểm tra một gói rpm cụ thể

Khi kiểm tra một gói, thông tin về các tệp gói đã cài đặt được so sánh với cơ sở dữ liệu vòng / phút... # rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm S.5 .... T. c /etc/httpd/conf.d/sqlbuddy.conf

17. Kiểm tra tất cả các gói rpm

# vòng / phút -Va S.5 .... T. c /etc/rc.d/rc.local ....... T. c /etc/dnsmasq.conf ....... T. /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf

18. Nhập khóa GPG

Để kiểm tra các gói hàng RHEL / CentOS / Fedora, bạn cần nhập GPG Chìa khóa. Để thực hiện việc này, hãy chạy lệnh sau: # rpm --import / etc / pki / rpm-gpg / RPM-GPG-KEY-CentOS-7

19.Rpm, xem tất cả các khóa đã nhập

# rpm -qa gpg-pubkey * gpg-pubkey-7bd9bf62-5762b5f8 gpg-pubkey-352c64e5-52ae6884 gpg-pubkey-f4a80eb5-53a7ff4b gpg-pubkey-810f8996-552b1d92

20. Xây dựng lại cơ sở dữ liệu rpm bị hỏng

Đôi khi cơ sở dữ liệu rpm có thể bị hỏng và rpm không thể hoạt động bình thường. Nếu điều này xảy ra, bạn cần phải xây dựng lại cơ sở dữ liệu. vòng / phút: # cd / var / lib / rpm # rm -f __db. * # rpm --rebuilddb Như thường lệ: # man rpm Chúc may mắn

Khi người mua cố gắng tự mình lắp ráp máy tính từ các thành phần hoặc chỉ chọn ổ cứng cho PC, anh ta thường bắt gặp khái niệm "RPM". Nó là gì và nó có quan trọng không? RPM không chỉ quan trọng mà còn là một trong những thông số quan trọng của đĩa cứng phải được xem xét đầu tiên khi lựa chọn. Chúng ta hãy xem xét kỹ hơn nó là gì - RPM.

Ý tưởng

Từ viết tắt RPM (Vòng trên phút) dịch theo nghĩa đen sang tiếng Nga là "Vòng quay trên phút". Đơn vị này là viết tắt của một ổ cứng, nhưng bản thân khái niệm này không nói lên điều gì đối với người dùng bình thường. RPM của đĩa cứng đóng một vai trò quan trọng trong hiệu suất của hệ thống, và tốc độ quay càng cao thì toàn bộ hệ thống sẽ chạy càng nhanh. Thông thường, thông số này được chỉ ra trong các đặc điểm của ổ cứng, và bạn nên chọn thông số có RPM cao hơn giữa hai ổ cứng.

Nếu bạn lấy hai đĩa giống hệt nhau về mọi thông số, nhưng với tốc độ trục chính khác nhau, bạn có thể nhận thấy ngay sự khác biệt đáng kể về hiệu suất của hệ thống.

Trục chính là gì?

Ổ cứng bao gồm một số đĩa tròn kín nằm chồng lên nhau và được phủ một lớp vật liệu sắt từ. Ngoài ra còn có một đầu đọc trong nhà ở. Trong quá trình hoạt động, các tấm này quay bằng cách sử dụng trục xoay - một trục quay đặc biệt. Trục này được dẫn động bởi một động cơ điện. Khi đĩa quay, đầu đọc không chạm vào bề mặt của đĩa mà ở khoảng cách gần nhất có thể với chúng. Kết quả là, với sự giúp đỡ của những người đứng đầu, bạn có thể viết và đọc thông tin từ các đĩa cứng - đĩa.

Trong hàng nghìn giờ, trục quay đều đặn quay các tấm với tốc độ khủng khiếp, vì vậy yếu tố này phải đáng tin cậy. Do không có tiếp xúc vật lý trực tiếp giữa trục quay và đĩa, thông tin có thể được ghi và xóa trên trục chính. Người ta tin rằng trung bình một đĩa có thể được ghi và xóa 100 nghìn lần.

Đây là những gì các trục xoay của ổ cứng trông như thế nào. Tất nhiên, chúng có thể khác nhau tùy thuộc vào kiểu thiết bị và nhà sản xuất.

Vì vậy, chúng tôi phát hiện ra rằng đây là RPM. Tham số xác định tốc độ các tấm có thể quay trong quá trình hoạt động bình thường. Đổi lại, điều này cho phép bạn hiểu hệ thống máy tính có thể nhận thông tin từ đĩa cứng khi truy cập nó nhanh như thế nào. Tốc độ càng cao thì quá trình trao đổi dữ liệu giữa hệ thống và đĩa diễn ra càng nhanh.

Làm thế nào nó hoạt động?

Để hiểu chính xác hơn nó là gì - RPM, cần phải hiểu nguyên lý hoạt động của chính thiết bị đó. Khi yêu cầu một số thông tin nhất định, bộ phận đứng đầu sẽ chuyển đến bài hát được yêu cầu. Điều này cần một khoảng thời gian nhất định để tìm kiếm (Tìm kiếm độ trễ). Sau khi đầu đọc di chuyển đến khu vực mong muốn, cần phải đợi cho đến khi đĩa quay sao cho khu vực mong muốn nằm dưới đầu đọc. Khoảng thời gian này được gọi là khoảng thời gian trễ quay. Thông số này phụ thuộc vào tốc độ quay của trục chính, và càng cao thì độ trễ quay càng giảm.

Cả hai độ trễ (đối với chuyển động của trục chính và chuyển động quay của đĩa) đều xác định tốc độ truy cập dữ liệu của hệ thống. Nhiều chương trình kiểm tra hiệu suất tính toán thông số này và hiển thị nó dưới dòng "Truy cập vào thời gian dữ liệu". Điều này cho phép bạn xác định tốc độ thực của đĩa. Thông số này ảnh hưởng trực tiếp đến hiệu suất của toàn bộ hệ thống. Ngày nay, có rất nhiều máy tính xách tay mạnh mẽ được trang bị card màn hình và bộ vi xử lý mạnh mẽ và rất nhiều RAM. Nhưng đồng thời, cùng với phần cứng tốt, ổ cứng rất chậm với tốc độ quay 5400 vòng / phút được sử dụng. Kết quả là tất cả các thành phần mạnh mẽ này không hoạt động hết công suất do tốc độ truy xuất dữ liệu quá chậm. Vì vậy, RPM của đĩa cũng quan trọng như tần số của bộ xử lý và chiều rộng của bus card màn hình.

Tác động của ổ cứng RPM đến hiệu suất

Winchester (như ổ cứng thường được gọi) có thể là định dạng LFF và SFF. Nói một cách đơn giản, một loại đĩa là 2,5 ", loại còn lại 3,5". Cái trước thường được sử dụng trong máy tính xách tay và máy chủ, trong khi cái sau được sử dụng trong các đơn vị hệ thống thông thường. Đây là loại đĩa cứng thường được phân biệt bằng tốc độ trục chính cao - 7200 vòng / phút. Trong các mô hình như vậy, thời gian nửa lượt là 4,2 ms và thời gian tìm kiếm trung bình là 8,5 ms. Do đó, thời gian truy cập dữ liệu sẽ là 12,7 ms.

Lưu ý rằng hầu hết các máy tính để bàn đều sử dụng ổ cứng SATA. 7200 RPM là tốc độ tiêu chuẩn cho các mô hình này. Ngoài ra còn có đĩa 5400 RPM, nhưng chúng không được khuyến khích sử dụng trên các hệ thống hiện đại, mặc dù chúng rẻ hơn. Ngoài ra còn có các đĩa có thông số 10.000 RPM - trong các mô hình như vậy, độ trễ tìm kiếm và quay là khoảng 3 ms. Những thiết bị như vậy thường được sử dụng nhiều nhất trên máy tính chơi game, nhưng thậm chí chúng có thể được gọi là lỗi thời. Máy tính để bàn và máy tính xách tay ngày nay đang ngày càng sử dụng SSD, hoạt động theo một cách hoàn toàn khác. Chúng ta sẽ nói về điều này sau một chút.

Thông số RPM tùy chỉnh

Trên thị trường cũng có những loại có tốc độ trục chính là 15.000 vòng / phút. Như bạn có thể đoán, thời gian trễ thậm chí còn thấp hơn ở đó - khoảng 2ms và thời gian tìm kiếm trung bình là 3,8 mili giây. Điều này cho phép truy cập dữ liệu trong 5,8 mili giây. Do đó, các đĩa có RPM lớn có thời gian tìm kiếm thông tin cần thiết thấp, do đó đảm bảo trao đổi nhanh giữa kho thông tin và hệ thống.

Tuy nhiên, điều quan trọng cần lưu ý là khi truy cập dữ liệu lớn, sự khác biệt về hiệu suất giữa các đĩa có thông số RPM lớn và thấp sẽ không đáng kể, vì sẽ không có sự chậm trễ trong việc truy cập thông tin.

Làm thế nào để tìm ra tốc độ trục chính?

Việc xác định thông số này dễ như gọt vỏ quả lê - nó luôn được ghi trên nhãn dán trên thiết bị. Chỉ cần mở hộp thiết bị hệ thống của bạn và nhìn vào nhãn dán là đủ. Có thể có nhiều tham số khó hiểu, nhưng luôn có một trong các dòng sau:

  1. Ổ cứng RPM: 5400.
  2. RPM: 7200.
  3. RPM: 10000.

Nếu ổ cứng được giấu dưới hộp đựng máy tính xách tay, đủ khó để mở, thì bạn có thể sử dụng một chương trình kiểm tra phần cứng đặc biệt.

Những điều sau đây là phổ biến:

  1. Dấu pha lê.
  2. Aida64.
  3. Đặc điểm.

Chúng có sẵn để tải xuống từ Internet miễn phí. Bằng cách chạy một trong các chương trình này, bạn có thể nhanh chóng tìm thấy thông tin về thiết bị lưu trữ. Các thông số của đĩa cứng sẽ được hiển thị chi tiết. Chúng tôi chủ yếu quan tâm đến dòng "Tỷ lệ xoay vòng" và giá trị đối diện với nó. Trong phiên bản tiếng Nga của chương trình Aida64, ở phần bên trái, hãy nhấp vào "Lưu trữ dữ liệu" - "Lưu trữ dữ liệu Windows", sau đó ở phần trên bạn cần chọn một đĩa cứng, sau đó thông tin về nó sẽ xuất hiện bên dưới, bao gồm dòng "Tốc độ quay".

Nhược điểm của tốc độ cao

Tất nhiên, RPM cao đảm bảo hiệu suất cao của toàn bộ hệ thống, nhưng cũng có những nhược điểm. Trục quay càng nhanh, đĩa càng nóng lên và hoạt động ồn ào hơn. Ngoài ra, các ổ cứng này tiêu thụ nhiều điện năng hơn. Tuy nhiên, công nghệ hiện đại giúp bạn có thể đặt RPM và giảm tiêu thụ năng lượng cũng như tiếng ồn bằng cách giảm tốc độ trục chính. Trong trường hợp này, các tổn thất về hiệu suất được bù đắp bằng một thuật toán bộ nhớ đệm dữ liệu đặc biệt.

SSD như một giải pháp thay thế

Trong sự phát triển của các nền tảng máy tính hiện đại, việc sử dụng đĩa cứng với các phiến đĩa và trục xoay đã bị bỏ rơi. Ngày nay, ổ đĩa thể rắn được sử dụng, trong đó không có bộ phận chuyển động nào cả. "Bên trong" của các ổ đĩa này là các vi mạch trên bo mạch. Những thiết bị như vậy hoạt động giống như ổ đĩa flash thông thường, nhưng hiệu suất và tốc độ truy xuất dữ liệu trong đó rất cao và vượt xa hiệu suất của đĩa tiêu chuẩn HDD. Ngoài ra, chúng rất yên tĩnh, rất nhẹ và tiêu thụ ít năng lượng. Giá cao là nhược điểm duy nhất. 7200 RPM 1 TB sẽ có giá thấp hơn SSD 128 GB hoặc 256 GB.

Tương tự, sự khác biệt giữa SSD và HDD cũng giống như sự khác biệt giữa DVD thông thường và ổ flash. Họ đã rời xa đĩa và ngày nay chủ yếu chỉ sử dụng ổ đĩa flash.

Phần kết luận

Khi chọn một ổ cứng, điều quan trọng đầu tiên là phải xem xét thông số hiệu suất, được xác định bởi tốc độ trục chính ngay từ đầu. Thật không may, hầu hết người dùng nhìn vào dung lượng đĩa, mặc dù đây không phải là điều quan trọng nhất. Tốt hơn là bạn nên ưu tiên cho ổ cứng có dung lượng 500 GB và tốc độ trục chính 7200 vòng / phút hơn là chọn đĩa 1 TB với RPM là 5400. Nói chung, ngày nay bạn cần không sử dụng các hệ thống như vậy, vì ổ cứng SSD vượt trội hơn so với các thiết bị HDD lỗi thời trong mọi thứ ...

Từ Rosalab Wiki

Tài liệu này nhằm mục đích giúp những người muốn phát hành các gói cho bản phân phối ROSA Desktop. Đặc biệt, nó làm nổi bật các gói ROSA khác với các gói được viết cho các bản phân phối dựa trên RPM khác như thế nào. Tài liệu này có thể hữu ích cho các nhà phát triển ROSA cũng như các nhà phát triển bên thứ ba.

ROSA Desktop - một bản phân phối của hệ điều hành GNU / Linux - được sản xuất và xuất bản bởi ROSA, với nỗ lực của nhiều tình nguyện viên, người kiểm tra và dịch giả khác nhau.

Lời tựa

Người đọc được cho là có kinh nghiệm với Linux. Anh ta phải quen thuộc với các lệnh cơ bản, cấu trúc thư mục và đã phải sử dụng rpm để cài đặt ít nhất các gói.

Tài liệu này được cấu trúc để đưa người đọc từng bước nhận được gói rpm tích hợp tốt với ROSA Desktop.

Theo ước tính đầu tiên, RPM biểu thị ba khái niệm:

  • một chương trình để cài đặt hoặc tạo các gói;
  • định dạng được sử dụng trong các gói (nhị phân hoặc nguồn) được tạo bởi rpm;
  • một tệp được gọi là "gói" chứa mã nhị phân hoặc mã nguồn và một tiêu đề thông tin. Tiêu đề chứa hướng dẫn cài đặt và gỡ cài đặt chương trình.

Từ góc độ người dùng, Rpm là một trình quản lý gói mạnh mẽ. Cô ấy đóng một vai trò người hòa giải cho bất kỳ hành động nào được thực hiện trên gói rpm. Ngoài ra, cô ấy có thể:

  • cài đặt hoặc cập nhật một gói, có tính đến các yếu tố phụ thuộc;
  • trong quá trình cài đặt gói, chuẩn bị các hành động để làm cho chương trình đã cài đặt sẵn sàng để sử dụng;
  • khôi phục các tệp vô tình bị xóa thuộc về một gói;
  • hiển thị thông tin rằng gói này đã được cài đặt;
  • tìm gói chứa một tệp nhất định;
  • kiểm tra cài đặt hiện tại để đáp ứng các yêu cầu phụ thuộc của các gói đã được cài đặt;

Theo quan điểm của lập trình viên, chương trình rpm là một trình đóng gói chứa trong một tệp rpm duy nhất tất cả thông tin cần thiết để cài đặt một chương trình trên một nền tảng nhất định.

Điều quan trọng là phải phân biệt ngay từ đầu giữa gói nguồn .src.rpm và gói nhị phân (gói chứa mã nhị phân). .rpm.

Cài đặt phần mềm

Những thứ cơ bản

Mặc dù rpm ban đầu được phát triển cho bản phân phối Red Hat Linux, nó cũng hoạt động trên các bản phân phối dựa trên rpm khác: OpenMandriva, Suse, Fedora, v.v.; rpm đã được cài đặt trên tất cả các hệ thống này.

Hệ nhị phân rpm mà bạn tạo cho ROSA có thể không hoạt động trên các bản phân phối khác.

Gói xây dựng cho ROSA Desktop

Gói xây dựng cho Cooker (tức là phiên bản phát triển của ROSA Desktop) luôn đi kèm với các bản vá và các cải tiến khác từ phía rpm. Trước khi bắt đầu xây dựng, hãy đảm bảo rằng tất cả các gói sau đã được cài đặt trên hệ thống:

$ sudo urpmi rpm rpm-build spec-helper libtool rpmlint

  • rpm - vòng / phút chính nó;
  • rpm-build - chứa các tập lệnh được sử dụng khi xây dựng các gói;
  • spec-helper - một công cụ để giảm thiểu các tệp thông số kỹ thuật bằng cách sử dụng một số tự động hóa: phân tích cú pháp tệp nhị phân, nén các trang thủ công (trang người đàn ông);
  • libtool - được sử dụng bởi một số tập lệnh cấu hình để xây dựng các thư viện được chia sẻ;
  • rpmlint - được sử dụng để xác thực tệp src.rpm đã tạo.

Nhiệm vụ sơ bộ

Tạo các thư mục bắt buộc

Trước khi bắt đầu xây dựng, bạn cần quan tâm đến việc tổ chức "nơi làm việc": chương trình rpm cần một cây thư mục nhất định trong thư mục "home" của bạn. Cây này có thể được tạo bằng lệnh sau: mkdir -p ~ / rpm / (BUILD, RPMS / $ ARCH, RPMS / noarch, SOURCES, SRPMS, SPECS, tmp).

Thay thế $ ARCH tên của kiến ​​trúc mà bạn định xây dựng. Thường cái này i586 hoặc x86_64 nhưng nó cũng có thể sparc, alpha hoặc ppc.

Ghi chú
cuộc họp vòng / phút-các gói có đặc quyền siêu người dùng có thể nguy hiểm vì các tệp nhị phân được cài đặt trên hệ thống trước khi đóng gói, vì vậy bạn nên luôn xây dựng các gói với quyền người dùng bình thường trừ khi bạn muốn vô tình làm tắc nghẽn hệ thống.

Cây thư mục phải có cấu trúc sau:

  • ~ / rpm / BUILD: thư mục cho các nguồn đã biên dịch.
  • ~ / rpm / RPMS: chứa các thư mục, một thư mục cho mỗi kiến ​​trúc, nơi đặt các tệp nhị phân sau khi xây dựng.
  • ~ / rpm / RPMS / i586: thư mục lưu các gói rpm cho bộ vi xử lý i586.
  • ~ / rpm / RPMS / x86_64: thư mục lưu các gói rpm cho bộ xử lý x86_64.
  • ~ / rpm / RPMS / noarch: thư mục lưu các gói rpm độc lập với kiến ​​trúc bộ xử lý.
  • ~ / rpm / SOURCES: tệp nguồn (ví dụ: mypackage.tar.bz2).
  • ~ / rpm / SPECS: Các thông số kỹ thuật chúng ta cần xây dựng.
  • ~ / rpm / SRPMS: biên dịch src.rpm-các gói hàng.
  • ~ / rpm / tmp: dành cho các tệp tạm thời mà rpm tạo ra khi xây dựng các gói.

Ghi chú
chương trình vòng / phút thư mục cần thiết cho các kiến ​​trúc khác nhau trong ~ / rpm / RPMS... Nếu chúng bị thiếu, bạn sẽ nhận được thông báo lỗi.

Không tạo tệp .rpmmacros

Một số hướng dẫn xây dựng RPM khuyên bạn nên tạo tệp cấu hình .rpmmacros trong thư mục chính của bạn với thông tin cá nhân được thêm vào siêu dữ liệu gói, chẳng hạn như giá trị% packager,% nhà cung cấp và những thứ khác. Đừng làm thế. Tất cả các trường như vậy được điền tự động bởi hệ thống xây dựng. Tuy nhiên, bạn vẫn có thể tạo tệp này nếu bạn muốn chỉ định một thư mục xây dựng khác ngoài / home / user / rpm. Trong trường hợp này, hãy chỉ định giá trị cho macro% _topdir và% _tmppath. Không cung cấp giá trị cho các macro khác.

Xây dựng RPM

Từ RPM "nguồn" hiện có

Có thể xây dựng bằng cách sử dụng các nguồn hiện có nếu gói đã có trong kho phân phối.

Tệp rpm mới nhất có thể được tải xuống từ Cooker. Danh sách các gương Cooker có trên trang Cooker Mirror. Bạn có thể tìm thấy ở đó:

SRPMS Thư mục lưu trữ vòng / phút với "nguồn" ( chủ chốt , đóng góp , Không tự do, v.v.) cho các kiến ​​trúc bộ xử lý khác nhau ( i586, x86_64, …); media / mainĐối với rpm nhị phân từ chủ chốt ; phương tiện truyền thông / đóng gópĐối với rpm nhị phân từ đóng góp ; media / non-freeĐối với rpm nhị phân từ Không tự do ;

* "media / jpackage cho noarch rpm nhị phân. (jpackage no)

Để thay đổi nguồn rpm cho ROSA Linux, hãy nhập lệnh rpm -ivh my_package.src.rpm... Lệnh này sẽ cài đặt tất cả các tệp nguồn vào thư mục ~ / rpm mà bạn đã tạo.

Ghi chú
Chương trình urpmi có thể được cấu hình để nó tự tải xuống "nguồn".

Ví dụ:

$ rpm -i /cooker/SRPMS/ktron-1.0.1-2mdv.src.rpm $ ls -R * SRPMS: SPECS: ktron.spec NGUỒN: ktron-1.0.1.tar.bz2 RPMS: noarch / i686 / i586 / i386 / XÂY DỰNG:

Từ ví dụ trên, bạn có thể thấy rằng rpm đã cài đặt tệp nguồn ktron-1.0.1.tar.bz2 và tệp spec vào cây rpm. Sẽ rất hữu ích nếu bạn xây dựng lại phiên bản hiện tại của gói để hiểu cách nó biên dịch. Để làm điều này, bạn cần sử dụng chương trình rpmbuild bằng cách chạy nó với tùy chọn buildall:

$ cd ~ / rpm / SPECS $ rpmbuild -ba ktron.spec $ ls -l ~ / rpm / RPMS / i586 / ktron-1.0.1-2mdv.i586.rpm $ ls -l ~ / rpm / SRPMS / ktron-1.0 .1-2mdv.src.rpm

Nếu quá trình xây dựng hoàn thành mà không có lỗi (và nhân tiện, có thể mất vài giờ nếu bạn xây dựng một gói phức tạp nào đó, ví dụ: hạt nhân), gói đã biên dịch và gói có mã nguồn sẽ nằm trong ~ / rpm / RPMS / i586 và ~ / rpm / SRPMS / tương ứng. Để cài đặt gói đã biên dịch, bạn cần có quyền siêu người dùng. Để thực hiện việc này, hãy nhập lệnh su trong thiết bị đầu cuối và nhập mật khẩu siêu người dùng. Để thoát khỏi chế độ siêu người dùng, hãy sử dụng phím tắt "Ctrl + D" hoặc nhập lệnh thoát. Bạn không cần đặc quyền superuser để xây dựng và xây dựng lại các gói nguồn.

Nhật ký xây dựng có thể khá lớn và có thể được lưu lại để xem lại sau này.

Trong thư mục con ~ / rpm / BUILD, bạn thường có thể truy cập "nguồn" đã được vá (nếu một hoặc nhiều bản vá nằm trong thư mục ~ / rpm / SOURCES), tệp nhị phân, thư viện đã biên dịch, trang thủ công, v.v. Tệp đặc tả mô tả mã nguồn và các tập tin vá lỗi, cách xây dựng và cài đặt gói.

Bây giờ, để sửa ktron, bạn chỉ cần thực hiện các thay đổi đối với tệp spec và sau đó xây dựng lại gói.

Ghi chú
Mọi gói phần mềm ROSA Desktop xây dựng đều sử dụng hệ thống kiểm soát phiên bản CVS. Điều này cho phép ghi lại từng trạng thái của gói, nghĩa là nhà phát triển có thể tham khảo kho lưu trữ để xem các thay đổi được thực hiện. Nếu các thay đổi được thực hiện vì bất kỳ lý do nào không được mong muốn, nhà phát triển có thể hủy chúng.

Mỗi tệp thông số kỹ thuật được lưu trữ trong mô-đun ĐẶC ĐIỂM / hoặc đóng góp-ĐẶC ĐIỂM / ... Nó có thể được truy cập tại cvs.mandriva.com.

Xây dựng từ các nguồn

Giả sử bạn đã tìm thấy một chương trình thú vị trên trang web Freshmeat hoặc và bạn muốn chương trình này có sẵn cho tất cả người dùng ROSA Desktop.

Tải xuống tarball nguồn và đặt nó vào thư mục SOURCES.

Kiểm tra sơ bộ

Giấy phép Bất chấp sự phổ biến của GPL, vẫn còn nhiều giấy phép không phải GPL. Cần phải xác định chính xác giấy phép của phần mềm để tìm hiểu xem nó có thể được đưa vào bản phân phối hay không. Chúng tôi không chấp nhận phần mềm sử dụng giấy phép độc quyền, nhưng có một vài trường hợp ngoại lệ cho câu lạc bộ. Ngoài ra, chúng tôi không thể chấp nhận phần mềm không cho phép chúng tôi tự do phân phối lại nó. Bạn có thể tìm thấy danh sách các giấy phép được phép sử dụng trong bản phân phối trên trang Mandriva. Nén kho lưu trữ tar Chúng tôi khuyên bạn nên sử dụng kho lưu trữ tar ban đầu mà không có bất kỳ sửa đổi nào. Nếu các nguồn được phân phối bằng các phương pháp nén khác nhau, chúng tôi thường thích .tar.bz2 hơn. Tránh nén các bản vá (có được bởi diff và các chương trình tương tự khác) và các tệp văn bản khác (tệp cấu hình, tập lệnh, v.v.), vì chúng thường chiếm rất ít dung lượng, nếu không sẽ khó thấy các thay đổi trong tệp khác biệt của Subversion (Subversion bản thân nó sử dụng một số dạng nén).

Ghi chú
Đối với các gói quan trọng về bảo mật, chúng tôi khuyên bạn không nên thay đổi mã nguồn, vì điều này sẽ dẫn đến thay đổi tổng kiểm tra và chữ ký. Chúng tôi khuyên bạn nên để các gói này ở trạng thái ban đầu, một ví dụ về gói như vậy là OpenSSH.

Bên trong tệp đặc tả

Vì vậy, chúng ta đã đến một trong những chương quan trọng nhất của tài liệu này. Tệp đặc tả chứa tất cả thông tin bạn cần:

  • biên dịch chương trình, xây dựng mã nguồn và gói rpm nhị phân;
  • cài đặt và gỡ cài đặt chương trình.

Nói tóm lại, tệp đặc tả mô tả quá trình biên dịch và cài đặt mô phỏng, cho rpm biết tệp nào tạo ra từ quá trình cài đặt nên được đóng gói và cuối cùng chúng sẽ được cài đặt như thế nào trên hệ thống. Các lệnh được thực thi bằng cách sử dụng shell / bin / sh, do đó các lệnh xây dựng như [-f config.in] && autoconf là đúng và có thể được áp dụng.

Chúng ta sẽ xem xét các tính năng chính được sử dụng trong một trong các tệp thông số kỹ thuật. Khi bạn tạo ngày càng nhiều gói rpm, bạn sẽ nhận ra rằng có một số tùy chọn bổ sung mà chúng tôi chưa đề cập đến. Để biết thêm thông tin, hãy xem sách RPM tối đa (xem phần 7).

Hãy xem xét ví dụ sau về tệp đặc tả được lấy từ Cooker:

Tên: gif2png Tóm tắt: Công cụ chuyển đổi trang web từ sử dụng GIF sang sử dụng PNG. Phiên bản: 2.0.1 Phát hành: 1 Nguồn0: http://www.tuxedo.org/~esr/gif2png/%(name)-%(version). tar.bz2 Source1:% (name) -% (version) -rosa-addon.tar.bz2 Patch0: gif2png-2.0.1-bugfix.patch URL: http://www.tuxedo.org/~esr/gif2png/ Nhóm: Ứng dụng / Giấy phép đa phương tiện: MIT-like Yêu cầu: python% description Các công cụ để chuyển đổi GIF sang PNG. Chương trình gif2png chuyển đổi tệp GIF sang tệp PNG. Tập lệnh Python web2png chuyển đổi toàn bộ cây web, cũng vá các trang HTML để giữ cho các tham chiếu IMG SRC chính xác. % prep% setup -q -a 1% patch -p1% build% configure% make% install% makeinstall% files% defattr (0755, root, root)% doc README TIN TỨC SAO CHÉP TÁC GIẢ% (_ mandir) / man1 / gif2png. 1 *% (_ mandir) /man1/web2png.1*% (_ bindir) / gif2png% (_ bindir) / web2png # Khi chuẩn bị gói cho ROSA, đừng tự tạo phần% changelog! % changelog * Thứ Hai, ngày 02 tháng 11 năm 1999 Camille Begnis 2.0.1-rosa2012 - Được nâng cấp lên 2.0.1 * Thứ Hai ngày 25 tháng 10 năm 1999 Camille Begnis 2.0.0-rosa2012 - Điều chỉnh tệp thông số cho Mandrake - thêm yêu cầu python - nén gz thành bz2

"%" Ở đầu dòng có thể có nghĩa là:

  • phần đầu của một phần (section) ( sự chuẩn bị, xây dựng, Tải về, dọn dẹp);
  • macro script shell nội tuyến ( cài đặt, );
  • chỉ thị được sử dụng bởi các phần (phần) đặc biệt ( khử chất béo, doc, ...).

Phần tiêu đề ( tiêu đề)

Tên: gif2png Phiên bản: 2.0.1 Phát hành: 1

Ba dòng này tự động xác định các hằng số có thể được sử dụng trong các phần khác của tệp đặc tả được gọi là% (tên),% (phiên bản) và% (phát hành). Một số gói có thể xây dựng bản phát hành bằng cách sử dụng macro% mkrel không dùng nữa, macro này trong các bản phân phối ROSA chỉ trả về đối số của nó.

Ngoài ra, có một số thẻ mà bạn có thể muốn biết, nhưng không có trong tệp thông số mẫu. Có một số thẻ bạn có thể bắt gặp. Không ai yêu cầu bạn phải nhớ tất cả các thẻ nếu bạn mới bắt đầu xây dựng các gói rpm, nhưng sau một thời gian, danh sách này có thể đóng vai trò là một điểm khởi đầu tốt!

Bây giờ là lúc để giải thích cách tên gói được hình thành. Điều rất quan trọng là luôn tuân theo quy ước này để công việc của bạn được rõ ràng đối với người khác.

  • Một gói nhị phân được biểu thị như sau: name-version-release.arch.rpm (Tên-phiên bản-phóng thích.arch.rpm)
  • Gói nguồn được ký hiệu như sau: name-version-release.src.rpm (Tên-phiên bản-phóng thích.src.rpm) (tức là trong trường hợp của chúng tôi, gif2png-2.0.1-1mdk.src.rpm)

Tên chủ yếu được chọn dựa trên tên của gói nhị phân chính, mặc dù một tên khác có thể được sử dụng vì lý do chính đáng.

Phiên bản là số trong tên của tệp lưu trữ nguồn gốc: name-version.tar.gz.

Bản phát hành là một số theo sau phiên bản, tăng dần với mỗi bản dựng mới của gói, có thể được liên kết với việc áp dụng các bản vá bổ sung, các thay đổi được thực hiện đối với tệp đặc tả và thậm chí là một bản cập nhật biểu tượng nhỏ.

Tóm tắt: các công cụ để chuyển đổi trang web từ sử dụng GIF sang sử dụng PNG

Dòng này là mô tả của gói.

Nguồn0: http://www.tuxedo.org/~esr/gif2png/%(name)-%(version).tar.bz2

Dòng này cho rpm biết tệp nguồn nào sẽ được sử dụng để xây dựng gói. Lưu ý rằng tên tệp được đặt trước bởi một URL đầy đủ (thường là tùy chọn) trỏ đến trang web có nguồn gốc. rpm sẽ tách URL, chỉ giữ lại tên tệp và tìm kiếm trong thư mục SOURCES. Mặc dù việc cung cấp URL đầy đủ là tùy chọn, nhưng việc sử dụng URL này rất được khuyến khích để bất kỳ ai cũng có thể tìm thấy nguồn tải xuống ở đâu.

Nếu có nhiều tệp nguồn, hãy sử dụng nhiều dòng bắt đầu bằng Nguồn1: ..., Nguồn 2: ... và như vậy, tương ứng.

Bản vá lỗi0: gif2png-2.0.1-bugfix.patch

Đây là một thẻ tùy chọn. Nó có thể được sử dụng trong hai trường hợp:

  1. Bạn đã sửa một lỗi trong mã nguồn của chương trình và tạo một bản vá phải được áp dụng cho mã nguồn của chương trình trước khi biên dịch.
  2. Bạn phát hiện ra rằng có một bản vá cho gói phần mềm này ở đâu đó trên mạng và bạn đã tải xuống bản vá này.

Tất cả các bản vá phải nằm trong thư mục SOURCES. Nếu có một số bản vá, thì chúng phải được đặt tên là Patch1, Patch2 Vân vân.

URL: http://www.tuxedo.org/~esr/gif2png/

Dòng này trỏ đến trang chủ của chương trình. Việc sử dụng nó là tùy chọn, nhưng chúng tôi vẫn khuyên bạn nên chỉ định nó.

Nhóm: Đa phương tiện

Đoạn mã này cho rpm biết vị trí đặt gói của chúng ta trong cây gói. Tính năng này được sử dụng bởi front-end của các trình quản lý gói như rpmdrake và kpackage.

Cấu trúc nhóm hoàn chỉnh, khác với các nhóm Mũ đỏ tương tự, có thể tìm thấy trên trang Nhóm bao bì. Điều rất quan trọng là phải tuân theo các quy ước nhóm đã được chấp nhận, nếu không gói của bạn sẽ làm xáo trộn cây gói.

Giấy phép: MIT-like

Thẻ này xác định giấy phép do chủ sở hữu bản quyền chọn sẽ áp dụng cho phần mềm trong gói. Thông thường nó là GPL. Giấy phép ROSA và các trang chính sách cấp phép chứa danh sách đầy đủ các giấy phép được phép sử dụng.

Yêu cầu xây dựng: python

Cho biết rằng việc biên dịch rpm yêu cầu thư viện python, thường cần phải chỉ định, ví dụ: libpyglib-gi2, python-devel, nếu không tìm thấy gói ngay lập tức, thì bạn có thể tìm kiếm gói đó bằng lệnh urpmi -p PackageName, vì nó có thể chứa trong một gói khác, điều này được chỉ ra bằng lệnh

Cung cấp: libgif2png

Cung cấp chỉ định tên của thư viện có thể được sử dụng bởi các chương trình khác (được cung cấp)

Yêu cầu: python

Dòng này đã được thêm vào vì một trong những chương trình có trong gói là một tập lệnh được viết bằng ngôn ngữ lập trình Python. Điều này có nghĩa là cần có trình thông dịch python để chương trình hoạt động chính xác.

Có thể sử dụng yêu cầu phiên bản tối thiểu (hoặc cụ thể). Ví dụ:

Yêu cầu: python> = 1.5.1

Trong một số trường hợp hiếm hoi, một ứng dụng có thể xung đột với các thư viện đã được cài đặt khác hoặc các phiên bản cũ của ứng dụng; để xóa chúng khỏi hệ thống trong khi cài đặt, bạn cần thông báo cho người dùng về điều này, để sử dụng thẻ

Xung đột: python<= 1.0.0

Một số gói trở nên lỗi thời sau khi cài đặt các thư viện mới, để đánh dấu chúng và xóa thẻ được sử dụng

Vận động viên: gif2png< 2.0.0

Dưới đây là thẻ mô tả:

% description Các công cụ để chuyển đổi GIF sang PNG. Chương trình gif2png chuyển đổi tệp GIF sang tệp PNG. Tập lệnh Python web2png chuyển đổi toàn bộ cây web, cũng vá các trang HTML để giữ cho các tham chiếu IMG SRC chính xác.

Đây là một thẻ rất đặc biệt bên trong phần tiêu đề của tệp đặc tả, vì nó chứa văn bản có thể kéo dài một số dòng và đoạn tùy ý. Văn bản chứa mô tả đầy đủ về phần mềm giúp người dùng quyết định có cài đặt một gói nhất định hay không. Để cải thiện nhận thức về các tệp thông số kỹ thuật, hãy gắn thẻ bản dịch tóm lượcsự mô tảđược lưu trữ trong các tệp đặc biệt được gọi là Po.

% defattr (0755, root, root)

Thẻ này đặt các thuộc tính sẽ được áp dụng cho tất cả các tệp được sao chép vào hệ thống của người dùng. Đối số có nghĩa là:

  • -: tất cả các thuộc tính cho các tệp thông thường không thay đổi;
  • root: chủ sở hữu của tệp là root;
  • root: nhóm tệp là gốc;
  • 0755: thuộc tính áp dụng cho tất cả các thư mục thuộc gói - 0755 ( rwxr-xr-x).
% doc README TIN TỨC SAO CHÉP TÁC GIẢ

Thẻ đặc biệt% doc đánh dấu các tệp là một phần của tài liệu của gói. Các tệp tài liệu sẽ được đặt trong /usr/share/doc/gif2png-2.0.1/. Thư mục này sẽ được tạo tự động. Các tệp% doc có liên quan đến thư mục tarball được giải nén trong thư mục BUILD.

% (_ mandir) /man1/gif2png.1*% (_ mandir) /man1/web2png.1*

Ngoài ra, bạn có thể tự hỏi: tại sao gif2png.1 * lại được sử dụng thay vì gif2png.1.lzma? Điều này được thực hiện để duy trì khả năng tương thích với các hệ thống khác sử dụng nén gzip thay vì lzma. Nếu bạn tìm thấy các tham chiếu đến nén lzma trong thông số kỹ thuật, hãy thay thế chúng bằng một biểu thức chính quy, như trong ví dụ trên. Thông thường, bạn có thể sử dụng% (_ mandir) / man1 / *, khớp với tất cả các tệp trong thư mục man1.

% (_ bindir) / gif2png% (_ bindir) / web2png

Như bạn có thể thấy, đối với mỗi đường dẫn bắt buộc, có một macro thuộc loại bắt buộc. Những cái hữu ích nhất là: (danh sách đầy đủ có sẵn trong / usr / lib / rpm / macro):% (_ prefix),% (_ bindir),% (_ sbindir),% (_ datadir),% (_ libdir ),% (_ sysconfdir),% (_ mandir),% (_ infodir). Đối với trò chơi, hãy sử dụng% (_ gamesbindir) và% (_ gamesdatadir).

Phần Changelog ( changelog)

Chú ý!Đây là thông tin chung về phần changelog... Bạn không nên tự thêm phần này vào tệp thông số kỹ thuật, vì nó được tạo tự động từ lịch sử sửa đổi trong hệ thống kiểm soát phiên bản.

Nhật ký thay đổi là gì

% changelog

Phần này là để ghi lại các thay đổi khác nhau được thực hiện đối với gói. Mỗi bản dựng mới của gói phải kèm theo một đoạn trong phần này, cũng như mỗi số phiên bản mới của chương trình. Cấu trúc sau của các đoạn văn này được tôn trọng:

* Thứ Hai, ngày 02 tháng 11 năm 1999 Camille Begnis 2.0,1-1mdk

  • dòng đầu tiên của đoạn văn bắt đầu bằng dấu hoa thị "*" và được phân tách bằng dấu cách;
  • ba chữ cái đại diện cho ngày trong tuần;
  • ba chữ cái đại diện cho tháng;
  • hai chữ số của ngày trong tháng;
  • bốn chữ số của năm;
  • tên của người tạo gói;
  • họ của anh ấy;
  • địa chỉ email của anh ấy trong dấu ngoặc nhọn "<>»;
  • phiên bản hiện tại và bản phát hành.
- Được nâng cấp lên 2.0.1

Tiếp theo là một dòng đơn bắt đầu bằng "-" mô tả thay đổi đối với gói.

Tệp thông số bị đánh cắp từ korganizer. - ảnh chụp nhanh cuối cùng trước khi phát hành - chuyển thể ROSA. - Sửa lỗi trong / etc / zsh sử dụng USERNAME thay vì USER. - Loại bỏ petit bouchon gây khó chịu cho người chơi khác. - Cải thiện / etc / z * để tạo nguồn cho các tệp /etc/profile.d/. - sửa lỗi đánh máy trong tên thư mục ví dụ - yêu cầu phiên bản QT libs đã sửa - thêm bản vá để xử lý trà Earl Grey

Theo mặc định, chỉ các bản ghi cũ hơn 1 năm mới được đặt trong gói đã biên dịch. Hành vi này có thể được thay đổi bằng cách đặt giá trị% _changelog_truncate

Lịch sử các thay đổi trong hệ thống kiểm soát phiên bản

Thông tin cho phần changelogđược tạo tự động từ lịch sử sửa đổi của hệ thống kiểm soát phiên bản. Mỗi dòng của thông báo từ lịch sử thay đổi sẽ trở thành một mục trong phần changelog bắt đầu bằng dấu gạch ngang. Bài viết được tự động nhóm theo tên tác giả và địa chỉ email.

Nếu bạn không muốn dòng từ lịch sử thay đổi chuyển đến tệp thay đổi gói, hãy thêm "SILENT:" ở đầu dòng. Các dòng trống cũng bị bỏ qua.

cuộc họp

Cuối cùng, tệp thông số kỹ thuật của chúng tôi đã sẵn sàng. Hít thở sâu, ngồi xuống và nhập rpmbuild -ba mypackage.spec.

Bạn cũng có thể thêm tham số --clean, tham số này sẽ xóa thư mục BUILD sau khi gói hoàn thành xây dựng. Điều này có thể hữu ích nếu bạn có ít dung lượng trống trên ổ cứng.

Quá trình có thể kết thúc với các kết quả sau:

  • thoát 0;
  • tất cả các trường hợp khác.

Sau đó, có hai khả năng cho dòng cuối cùng của quy trình của bạn:

  • 0,01% xác suất: + thoát 0
  • 99,99% xác suất cho các trường hợp khác.

Bạn đang ở trường hợp thứ hai? Chúc mừng bạn đã vượt qua bài kiểm tra, bạn không phải là người ngoài hành tinh.

Chúc may mắn, rất lâu, hãy xem các tùy chọn xây dựng vòng / phút (man rpmbuild) để gỡ lỗi công việc của bạn, xem xét người khác "specfiles, v.v.

Có một cách rất rõ ràng để xây dựng các gói: sử dụng rpmbuild -bs --rmspec --rmsource(để xóa bất kỳ thứ gì khỏi bản dựng ban đầu) và sau đó tạo rpmbuild - xây dựng lại.

Tối ưu hóa quá trình xây dựng

Khi bạn chạy lệnh để xây dựng gói của mình, bạn chắc chắn sẽ được dẫn dắt bởi một thông báo như: foo-devel là cần thiết cho foo2.

Điều này có nghĩa là bạn cần thông tin từ các gói khác được sử dụng để phát triển (thông thường, các tệp như vậy được đặt tên như foo.h). Nếu bạn không có chúng, quá trình biên dịch sẽ dừng lại, hoặc ngay cả khi quá trình biên dịch thành công, gói sẽ bị tước một số tính năng.

ROSA Build Cluster có nhiều gói phát triển được cài đặt sẵn này ( devel-gói). Nếu một trong các gói bắt buộc không được liệt kê trong tệp đặc tả, gói sẽ được xây dựng trên cụm trong mọi trường hợp. Nhưng việc thiếu thông tin như vậy sẽ ngăn cản việc xây dựng gói trên các máy không có gói devel, khiến việc gỡ lỗi và cập nhật khó khăn hơn.

Hãy xem trang web của chương trình bạn đang chuẩn bị gói để biết thông tin về các thành phần cần thiết.

Để tìm "BuildRequires bị thiếu" này trong khi xây dựng, chỉ những gói phát triển cơ bản nhất mới nên có trên hệ thống:

  • glibc-devel
  • libncurses5-devel
  • libstdc ++ 6-devel

Sau đó, chỉ cài đặt các gói nhà phát triển do nhóm xây dựng rpm yêu cầu.

Khi bắt đầu xây dựng, hãy xem các thông báo đang kiểm tra để mà ...

Nếu bạn thấy một cái gì đó giống như kiểm tra foo ... không tìm thấy foo.h, điều này có nghĩa là tệp tiêu đề không được tìm thấy trên hệ thống của bạn. Tìm một gói phát triển có chứa foo.h nhưng hãy cẩn thận: bạn có thể tìm thấy nhiều hơn một gói. Vì vậy, hãy chọn một trong những phù hợp với bạn nhất. Ví dụ: bạn không nên chọn gói liên quan đến mạng nếu bạn đang xây dựng một ứng dụng được thiết kế để hoạt động với âm thanh.

Sau đó, cài đặt gói vào hệ thống, đừng quên thêm tên của nó vào phần Yêu cầu xây dựng tệp thông số kỹ thuật của bạn.

Các tệp tiêu đề bị thiếu có thể được tìm thấy tại thời điểm biên dịch. Nếu nó dừng lại, hãy kiểm tra foo.hs khác và làm tương tự.

Kiểm tra gói RPM

Kiểm tra cơ bản

Điều đầu tiên, bạn cần kiểm tra những điều sau:

  • liệu rpm có được tạo trong các thư mục chính xác với tên chính xác hay không (trong các thư mục ~ / rpm / SRPMS / và ~ / rpm / RPMS / i586 /);
  • thông tin thu được bằng lệnh có chính xác không rpm -qlivp --changelog my_package. (src.) rpm.

Chạy Rpmlint

Sau đó, bạn phải sử dụng tiện ích Rpmlint, tiện ích này sẽ thực hiện các kiểm tra khác nhau trên gói. Trước khi chạy rpmlint, hãy đảm bảo rằng bạn đã cài đặt gói rpmlint-mandriva-policy, có chứa các quy tắc xác thực cho Dew. Quay số rpmlint my_package. .rpmđể nhận báo cáo về một gói cụ thể. Để biết thêm thông tin, hãy sử dụng chuyển đổi -i. Bạn nên kiểm tra rpm và src.rpm. Để biết thêm thông tin về lỗi bản dựng, hãy xem trang Sự cố bản dựng.

Cài đặt thử nghiệm

Bây giờ bạn cần kiểm tra cài đặt và cập nhật của gói trên bất kỳ máy nào (tốt nhất là khác với máy mà quá trình xây dựng đã diễn ra) và đảm bảo rằng:

  • Tất cả các tệp cần thiết đã được tạo với các quyền và chủ sở hữu cần thiết
  • Tất cả các tập lệnh được thực thi trong quá trình cài đặt đều hoạt động thành công
  • Tất cả các tệp thực thi đều có bộ bit có thể thực thi và các tệp tài liệu có sẵn cho tất cả người dùng

Để kiểm tra tính hoàn chỉnh, bạn cũng có thể kiểm tra quá trình gỡ bỏ gói, chức năng của phần mềm đã cài đặt và những thứ tương tự.

Nếu tất cả các thử nghiệm đều thành công, thì bạn gần như đã hoàn thành - tất cả những gì còn lại là gửi gói đến kho lưu trữ.

Đã xảy ra sự cố?

Nếu bạn đang đọc tài liệu này, thì điều này đã tốt rồi. Nếu bạn không tìm thấy câu trả lời cho câu hỏi của mình ở đây, hãy thử tham khảo thêm các nguồn sau:

  1. Tài liệu chính thức RPM-HOWTO(được cài đặt vào hệ thống cùng với chương trình rpm).
  2. Sách Mũ đỏ RPM tối đa có sẵn tại http://www.redhat.com/docs/books/max-rpm/max-rpm-html/.
  3. nhìn vào các tệp thông số kỹ thuật của các gói tương tự - có lẽ tác giả của chúng đã gặp phải các vấn đề tương tự
  4. Đặt câu hỏi trong danh sách gửi thư của nhà phát triển ROSA.

Nếu bạn nghĩ rằng các giải pháp bạn tìm thấy có thể hữu ích cho người khác, vui lòng cho phép tác giả của tài liệu mà bạn muốn thêm mô tả về các giải pháp này.

Tập lệnh cài đặt trước và sau cài đặt

Những thứ cơ bản

Gói RPM không chỉ là một kho lưu trữ các tệp được trích xuất vào các thư mục cụ thể trên hệ thống máy khách.

Hệ thống cung cấp cho các lập trình viên một tính năng mạnh mẽ: tập lệnh cài đặt trước và sau cài đặt. Các tập lệnh này cho phép trình tạo gói viết một đoạn mã sẽ chạy trên máy khách khi gói được cài đặt hoặc gỡ bỏ.

Các tập lệnh này được tạo từ bất kỳ lệnh thông dịch dòng lệnh hợp lệ nào. Đây là bốn trong số chúng:

Có một số cảnh báo liên quan đến các tình huống này. Đầu tiên, bạn phải vừa với kích thước bộ đệm 8192 và thứ hai, các tập lệnh không được tương tác. Bất kỳ thứ gì yêu cầu người dùng nhập thủ công đều không hợp lệ, vì nó phá vỡ quy trình cài đặt RPM không tương tác.

  • % pre - Tập lệnh này được thực thi trước khi gói được cài đặt trên hệ thống.
  • % post - Tập lệnh này được thực thi sau khi gói được cài đặt trên hệ thống.
  • % preun - Tập lệnh này được thực thi trước khi gói bị xóa khỏi hệ thống.
  • % postun - Tập lệnh này được thực thi sau khi gói được xóa khỏi hệ thống.

Mục đích của các tình huống như vậy có thể rất đa dạng. Các tập lệnh phải được thiết kế sao cho chúng không gây hại cho hệ thống. Hãy nhớ rằng các tập lệnh được thực thi dưới dạng superuser. Chúng có liên quan đến các nhiệm vụ quản trị hệ thống hoàn thành việc cài đặt một ứng dụng mới. Ví dụ:

  • Thêm vào cron chạy chương trình đều đặn
  • Chạy chkconfigđể bắt đầu dịch vụ lúc khởi động

Làm việc với các bản cập nhật

Làm việc với các gói rất phức tạp bởi thực tế là một gói có thể được cập nhật thay vì chỉ được cài đặt hoặc gỡ bỏ. vấn đề là khi cập nhật, tập lệnh% postun của phiên bản mới của gói sẽ chạy sau tập lệnh% post của phiên bản cũ và những gì tập lệnh cuối cùng đã làm có thể bị mất.

Thường sẽ hữu ích khi đảm bảo rằng một số hành động nhất định chỉ được thực hiện khi cài đặt / gỡ cài đặt gói chứ không phải khi cập nhật. Để xử lý các tình huống như vậy, RPM chuyển một đối số đặc biệt cho các tập lệnh% pre,% preun,% post và% postun.

Đối số chứa số phiên bản khác nhau của gói này sẽ được cài đặt trên máy sau khi tập lệnh này được thực thi. Ví dụ: khi cài đặt một gói mới, các tập lệnh% pre và% post sẽ được chuyển giá trị "1". Khi gói được cập nhật, các tập lệnh% pre và% post của phiên bản mới sẽ nhận giá trị "2", các script% preun và% postun của phiên bản cũ - "1".

Sự hiện diện của một tham số như vậy cho phép người lập trình phân biệt kịch bản được khởi chạy trong tình huống nào - trong khi cài đặt hoặc khi cập nhật một gói.

  • Đối với các tập lệnh cài đặt (% post,% pre) - nếu tham số $ 1 là "1", thì quá trình cài đặt ban đầu sẽ xảy ra
  • Đối với tập lệnh gỡ cài đặt (% postun,% preun) - nếu tham số $ 1 là "0", gói sẽ bị xóa; nếu không, đó là một bản cập nhật hoặc cài đặt với tùy chọn --force.

Để kiểm tra giá trị của một tham số, bạn có thể sử dụng cấu trúc sau:

% postun if [$ 1 -eq 0]; then ### Thực hiện các hành động cụ thể để loại bỏ gói fi if [$ 1 -eq 1]; sau đó ### Thực hiện các hành động cụ thể để nâng cấp gói fi

Trình kích hoạt tệp

ROSA sử dụng trình kích hoạt tệp RPM để loại bỏ nhu cầu thực hiện các tác vụ thông thường như thực thi "% post -p / sbin / ldconfig" hoặc "% update_menus".

Các macro khác

Khi xây dựng các gói cho Dew, bạn có thể sử dụng các macro khác nhau trong tệp đặc tả để thực hiện các tác vụ thông thường.

  • Xử lý các trang thông tin:
% post% __ install_info% (name) .info% preun% __ install_info% (name) .info
  • Cập nhật hệ thống menu. Rose sử dụng Menu XDG.
% post% (update_menus)% postun% (clean_menus)
  • Xử lý tệp bản địa hóa. Một phương pháp hay là không liệt kê thủ công tất cả các tệp .mo thường được tìm thấy trong thư mục con / usr / share / locale / .., mà sử dụng macro đặc biệt trong phần% install, sẽ tạo một tệp riêng biệt với danh sách các tệp có bản địa hóa:
% find_lang% (tên)

Tệp được tạo phải được chỉ định trong phần các tập tin:

% files -f% (name) .lang

  • Các macro được sử dụng trong quá trình xây dựng là% config và% makeinstall. Chúng tự động đặt tiền tố cài đặt cũng như các thư mục khác nhau (chẳng hạn như bindir, datadir và những thứ khác). Thông thường, các macro này hoạt động tốt với các gói nhỏ, nhưng có thể được tinh chỉnh khi xây dựng các sản phẩm phức tạp. Macro% make gọi lệnh make với tùy chọn -j thích hợp bằng cách lắp ráp song song trên máy đa lõi. Nếu bạn vẫn cần gọi script ./configure trực tiếp, không bao giờ không bao gồm tên của kiến ​​trúc phần cứng đích. Đối với những mục đích này, có macro% ( Mục tiêu nền tảng) (hoặc thậm chí% ( Mục tiêu cpu) để biết thêm thông tin chính xác).
  • Lắp ráp phần mềm máy chủ. Đối với một bản dựng yêu cầu tăng độ tin cậy với chi phí hiệu suất, chúng tôi sử dụng macro% serverbuild đặc biệt, phải được gọi trước khi bắt đầu bản dựng. Macro này đặt các giá trị bắt buộc của các cờ tối ưu hóa. Phần% build sẽ giống như sau:
% build% serverbuild% configure% make
  • Macro cho các tập lệnh init. Khi cài đặt gói chứa tập lệnh init (tệp trong thư mục /etc/init.d), bạn phải đăng ký tập lệnh này bằng cách gọi chkconfig --add ..; Khi cập nhật, bạn không cần phải làm điều này, nhưng nếu tập lệnh hoạt động, sau đó nó phải được khởi động lại; khi gỡ cài đặt một gói, bạn cần xóa thông tin tập lệnh. Đối với những mục đích này, chúng tôi có một macro tương ứng:
% post% _post_service % preun% _preun_service
  • Sự đối xử con ma-các tập tin. Một số gói (cụ thể là nhiều trò chơi) chứa các tệp có thể không có trên hệ thống tại một số thời điểm. Các tệp như vậy phải được đánh dấu là con ma và xử lý với các macro đặc biệt:
% install (...) mkdir -p% (buildroot) / var / lib / games touch% (buildroot) /var/lib/games/powermanga.hi% post% create_ghostfile /var/lib/games/powermanga.hi root trò chơi 664 (...)% files% attr (664, root, games)% ghost /var/lib/games/powermanga.hi

Macro% create_ghostfile sẽ mở rộng thành cấu trúc sau:

Nếu như [! -f /var/lib/games/powermanga.hi]; sau đó chạm vào /var/lib/games/powermanga.hi chown root.games /var/lib/games/powermanga.hi chmod 664 /var/lib/games/powermanga.hi fi

  • Liên kết các loại tệp .desktop / MIME với các ứng dụng: Hệ thống menu XDG cho phép bạn liên kết các ứng dụng với các tệp có kiểu MIME được chỉ định trong các tệp .desktop. Khi cài đặt hoặc gỡ cài đặt tệp .desktop, bạn phải chạy tiện ích update-desktop-database sử dụng các macro thích hợp:
% post% update_desktop_database% postun% clean_desktop_database
  • Freedesktop.org Cơ sở dữ liệu loại MIME: Cơ sở dữ liệu được sử dụng để truy xuất tất cả các loại MIME có thể có với phần mở rộng tệp tương ứng hoặc số ma thuật của chúng phải được cập nhật bằng cách gọi các macro sau:
% post% update_mime_database% postun% clean_mime_database
  • Bộ nhớ cache biểu tượng: tất cả các gói chứa các biểu tượng được cài đặt trong / usr / share / icon / hicolor (hoặc các thư mục khác được cung cấp bởi các thông số kỹ thuật của Freedomesktop, chẳng hạn như / usr / share / icon / gnome hoặc / usr / share / icon / crystalvg) cần phải cập nhật bộ đệm biểu tượng như được hiển thị trong ví dụ sau (yêu cầu này không áp dụng cho các biểu tượng được lưu trữ trong / usr / share / icon, / usr / share / icon / mini, hoặc / usr / share / icon / large):
...% file ...% (_ icondir) / hicolor / *% (_ icondir) / crystalvg / * ....% post% update_icon_cache hicolor% update_icon_cache crystalvg% postun% update_icon_cache hicolor% update_icon_cache crystalvg
  • Đăng ký lược đồ GConf: Nên cài đặt và gỡ cài đặt lược đồ GNOME GConf bằng các macro sau:
... # mỗi khóa lược đồ tương ứng với một tệp có tên / etc / gconf / schemas / .schemas% define schemas apps_gnome_settings_daemon_default_editordesktop_gnome_font_rendering desktop_gnome_periosystems_keyboard_xkb fontilus themus% post% post_install_gconf_schemas% (schemas)% preun% preun_uninstall_gconf_schemas)
  • Cập nhật cơ sở dữ liệu máy cuộn: nếu tệp .omf được cài đặt, thì cơ sở dữ liệu máy cuộn (được sử dụng để lập chỉ mục tài liệu) cần được cập nhật:
...% post% update_scrollkeeper% postun% clean_scrollkeeper

Tương tác với urpmi và rpmdrake

Đôi khi cần phải cảnh báo người dùng về một số lưu ý đặc biệt cần thực hiện khi nâng cấp hoặc cài đặt phiên bản cụ thể của gói. Rpmdrake-2.1.3-11mdk trở lên hỗ trợ điều này: nó tìm kiếm trong rpms các tệp văn bản có tên README. install.urpmi, README.update.urpmi hoặc README.urpmi, và hiển thị chúng.

README.install.urpmi chỉ được hiển thị cho các gói đã cài đặt; README.update.urpmi chỉ dành cho các gói nâng cấp; README.urpmi được hiển thị trong cả hai trường hợp.

Nhóm gói ROSA

Mỗi gói phải thuộc một trong các nhóm RPM được ROSA sử dụng.

Giấy phép

Đối với các câu hỏi liên quan đến giấy phép phần mềm đi kèm, vui lòng tham khảo Chính sách cấp phép.

Thay thế: kiểm tra cài đặt

Một cách rất dễ dàng để xây dựng RPM cho mục đích sử dụng cá nhân là cài đặt gói kiểm tra cài đặt; biên dịch từ nguồn như bình thường (./configure && make && sudo thực hiện cài đặt), nhưng chỉ cần thay thế bước thực hiện cài đặt bằng kiểm tra cài đặt. Điều này tự động hóa việc tạo RPM và rất đơn giản để sử dụng. Ưu điểm là bạn không bao giờ phải bỏ qua trình quản lý gói khi biên dịch từ nguồn. (Tuy nhiên, có thể là Một Ý tưởng Tốt để xây dựng RPM "đúng cách" như được mô tả ở trên, nếu bạn định phân phối chúng cho người khác.)

* .RPM - các tệp tương tự như trình cài đặt và lưu trữ SFX của Windows.
Theo quy định, chúng chứa các mã nguồn được thu thập của các chương trình dễ chỉnh sửa.
Bản thân mã nguồn của gói được biên dịch với phần mở rộng .SRPM theo lệnh của người dùng.

Các hoạt động với các gói từ bảng điều khiển được thực hiện bằng lệnh RPM.
Tôi nhắc bạn:
có thể nhận được trợ giúp về nó bằng cách gõ "rpm --help" hoặc "rpm -?"; và hướng dẫn chi tiết là "man rpm"
(để thoát khỏi sách hướng dẫn và quay lại thiết bị đầu cuối, nhấn "q").

Ở đây, chúng tôi đề nghị rằng trước tiên bạn nên tự làm quen với mô tả của chính các chương trình để cài đặt các gói
(cái chính là rpm), và sau đó - với danh sách các lệnh và tham số cho chương trình này.

Cài đặt phần mềm trong Linux.

Có ba cách để cài đặt phần mềm trên Linux:

  • Truyên thông.
  • Từ các gói RPM.
  • Từ các gói chứa mã nguồn.

Hãy xem xét tất cả ba phương pháp theo thứ tự.

Phương pháp này bao gồm thực tế là chương trình được phân phối không phải ở dạng tập hợp, mà ở dạng mã nguồn. Phương pháp này được gọi là truyền thống vì nó là phương pháp cài đặt chương trình đầu tiên trước khi RPM hoặc tương tự (apt-get) ra đời.

1. Cách cài đặt truyền thống là cài đặt từ các nguồn.

Thông thường, mã nguồn được phân phối trong một kho lưu trữ. Thông thường tệp chứa mã nguồn có phần mở rộng kép: ví dụ: tar.gz hoặc tar.bz2. Điều này có nghĩa là tệp này được nén bởi hai trình lưu trữ: đầu tiên là tar, và sau đó là gzip.

Bạn cần giải nén tệp lưu trữ theo nguyên tắc ngăn xếp: trước tiên với trình lưu trữ bên ngoài, sau đó với trình lưu trữ bên trong. Giả sử prg-2.00.tar.gz là tên tệp của kho lưu trữ của chúng tôi. Để giải nén nó, bạn cần nhập các lệnh:

gunzip prg-2.00.tar.gz
tar xvf prg-2.00.tar

Lệnh đầu tiên sẽ giải nén tệp prg-2.00.tar mà chúng tôi sẽ cung cấp tệp này làm một trong các đối số trong lệnh thứ hai. Tùy chọn x thành tar có nghĩa là chúng ta cần giải nén các tệp từ kho lưu trữ (tùy chọn c là tạo). Bạn có thể chỉ định tham số v theo ý mình, nó cung cấp thêm thông tin khi chương trình đang chạy.
Tham số cuối cùng, f, là bắt buộc khi làm việc với tệp.
Chương trình tar ban đầu được thiết kế để hoạt động với các bộ phát băng, vì vậy chúng ta cần sử dụng tham số f để yêu cầu chương trình làm việc với các tệp.
Nếu phần mở rộng bên ngoài không phải là gz, a bz hoặc bz2, thì thay vì lệnh đầu tiên, bạn cần nhập các lệnh (tương ứng):

bunzip prg-2.00.tar.bz
bunzip2 prg-2.00.tar.bz2


Sau đó, như trong trường hợp đầu tiên, bạn cần chạy lệnh tar (với các tham số giống nhau).

Đôi khi các tệp nguồn chỉ có một phần mở rộng tgz. Trong trường hợp này, bạn chỉ cần nhập một lệnh:

tar xzf prg-2.00.tgz


Tham số z có nghĩa là giải nén tệp bằng trình giải nén gzunzip. Thông thường, các tệp lưu trữ được tạo bằng chương trình tar và được chuyển qua bộ lọc của trình lưu trữ gzip có phần mở rộng này.

Giai đoạn tiếp theo là cài đặt trực tiếp chương trình. Sau khi hoàn thành thành công giai đoạn đầu tiên (giải nén), hãy chuyển sang thư mục chứa các nguồn. Đây thường là một thư mục<имя_программы-версия>:

cd prg-2.00

... / config
chế tạo
thực hiện cài đặt

Lệnh đầu tiên cấu hình phần mềm đang được cài đặt để hoạt động với hệ thống của bạn. Chương trình này cũng kiểm tra xem chương trình đang được cài đặt có thể hoạt động trên hệ thống của bạn hay không. Nếu chương trình không thể hoạt động,
bạn sẽ thấy một thông báo tương ứng và quá trình cài đặt sẽ bị gián đoạn.

Điều này thường xảy ra khi một trong các thư viện theo yêu cầu của chương trình mới không được cài đặt trên hệ thống của bạn. Để tiến hành cài đặt, bạn cần cài đặt thư viện cần thiết và thử nhập lại lệnh. / Configure. Sau khi chương trình kết thúc thành công. / Configure, một Makefile sẽ được tạo, trong đó chứa các tham số cần thiết (đường dẫn đến thư viện, đường dẫn cài đặt chương trình) cho chương trình.

Lệnh thứ hai (make) "xây dựng" chương trình. Ở giai đoạn này, chương trình được biên dịch, tức là các tệp thực thi nhị phân được tạo từ các nguồn.

Lệnh thứ ba, thực hiện cài đặt, cài đặt chương trình và các tệp trợ giúp trong các thư mục thích hợp. Thông thường, các chương trình được cài đặt trong thư mục / usr / bin, nhưng điều này phụ thuộc vào nội dung của Makefile.

Sau khi cài đặt thành công chương trình, bạn có thể khởi động nó trước tiên bằng cách đọc tài liệu về chương trình này.

2.Cài đặt chương trình từ gói RPM.

Việc cài đặt phần mềm trên các bản phân phối Red Hat và Mandrake được thực hiện bằng chương trình rpm. RPM (Red Hat Package Manager) là trình quản lý gói của Red Hat. Mặc dù tên là "Red Hat", nó hoàn toàn nhằm hoạt động như một hệ thống gói mã nguồn mở, có sẵn cho mọi người sử dụng. Nó cho phép người dùng lấy mã nguồn của phần mềm mới và đóng gói nó ở dạng nguồn và nhị phân để có thể dễ dàng cài đặt và theo dõi các tệp nhị phân và mã nguồn một cách dễ dàng
được xây dựng. Hệ thống này cũng duy trì một cơ sở dữ liệu của tất cả các gói và các tệp của chúng, có thể được sử dụng để kiểm tra các gói và yêu cầu thông tin về các tệp và / hoặc gói.

Không giống như các trình hướng dẫn InstallShield quen thuộc được sử dụng để cài đặt các chương trình Windows, RPM (tệp có phần mở rộng .rpm) không phải là tệp thực thi, tức là các chương trình. Các gói chứa các tệp (như trong kho lưu trữ) cần được cài đặt, cũng như các thông tin khác nhau về gói này: gói nào là bắt buộc để gói này hoạt động, gói nào nó xung đột, thông tin về nhà phát triển, cũng như thông tin cho biết những hành động cần thực hiện khi cài đặt gói này, chẳng hạn như những thư mục nào cần tạo. Trình quản lý gói RPM được sử dụng trong nhiều bản phân phối Linux (Red Hat, Mandrake, ASP, Black Cat) và khá nhẹ và linh hoạt trong sử dụng, điều này giải thích sự phổ biến của nó.

Ví dụ, đối với gói phần mềm-1.0-I.i386.rpm như sau: phần mềm - tên;

1.0 - phiên bản chương trình;
1 - gói phát hành;
i386 - Nền tảng Intel 386.

Thông thường tên của tệp gói chứa tên, phiên bản, bản phát hành, nền tảng của nó. Bốn ký tự cuối cùng - ".rpm" - một dấu hiệu cho thấy tệp này là một gói. Trong Linux, không có cái gọi là phần mở rộng hoặc loại tệp.

Xin lưu ý sự khác biệt giữa phiên bản phần mềm và gói phát hành. Phiên bản được chỉ ra trong tên gói là phiên bản của phần mềm có trong đó. Số phiên bản được đặt bởi tác giả của chương trình, thường không phải là nhà sản xuất gói.
Số phiên bản xác định và đề cập đến phần mềm. Đối với số phát hành, nó đặc trưng cho chính gói - nó cho biết số phiên bản hiện có của gói. Trong một số trường hợp, ngay cả khi phần mềm không thay đổi, có thể cần phải đóng gói lại.

Với tên và phiên bản của chương trình, tôi nghĩ mọi thứ đã rõ ràng. Nhưng kiến ​​trúc phức tạp hơn một chút. Các gói "chung chung" nhất là những gói dành cho kiến ​​trúc Intel 386. Chương trình này nên
chạy trên bất kỳ bộ xử lý Intel nào bắt đầu bằng 80386DX (hoặc tương thích). Tuy nhiên, nếu bạn có bộ xử lý 80486, một gói được thiết kế để hoạt động với kiến ​​trúc 80586 (Pentium) rất có thể sẽ không được cài đặt trên hệ thống của bạn.
Thông thường, bộ xử lý CISC (tập lệnh x86) sử dụng các quy ước sau:

i386 - Intel 80368DX;
i586 - Intel Pentium (MMX), AMD K5 (K6);
i686 - Intel PPro, Celeron, PII, RSH, PIV.

Trong trường hợp đơn giản nhất, lệnh cài đặt gói trông giống như sau:

rpm -i<пакет>

Trước khi cài đặt chương trình, RPM sẽ kiểm tra các gói phụ thuộc, nghĩa là, nếu bạn có bất kỳ gói nào khác được cài đặt trên hệ thống của bạn được yêu cầu hoặc xung đột với chương trình mới. Nếu tất cả những gì cần thiết
chương trình có các gói (hoặc chương trình không cần bất kỳ gói bổ sung nào), và nếu chương trình mới không xung đột với bất kỳ gói nào đã được cài đặt, RPM sẽ cài đặt chương trình.
Nếu không, bạn sẽ nhận được thông báo rằng chương trình yêu cầu một số gói bổ sung hoặc chương trình xung đột với một gói đã được cài đặt.

Nếu bạn cần một gói bổ sung, chỉ cần cài đặt nó. Nhưng nếu chương trình xung đột với một gói đã được cài đặt, thì bạn sẽ phải chọn gói nào bạn cần thêm: đã được cài đặt hay mới.

Khi cài đặt chương trình, tôi khuyên bạn nên chỉ định hai tham số bổ sung: h và v. Cái đầu tiên yêu cầu chương trình hiển thị thanh trạng thái của quá trình cài đặt và cái thứ hai hiển thị các thông báo bổ sung. Thanh trạng thái sẽ được hiển thị dưới dạng ký hiệu #. Với hai tham số này, lệnh install phức tạp hơn một chút:

rpm -ihv phần mềm-1.0-1.i386.rpm

Việc cài đặt có thể được thực hiện không chỉ từ đĩa cục bộ mà còn qua FTP:

Để xóa một gói, hãy sử dụng lệnh:

rpm -e<пакет>

Một lần nữa, hãy nhớ rằng khi cài đặt hoặc gỡ bỏ các gói, hãy nhớ rằng một số gói có thể yêu cầu các gói khác hiện diện trên hệ thống - điều này được gọi là gói phụ thuộc. Do đó, đôi khi bạn sẽ không thể cài đặt một gói cụ thể cho đến khi bạn đã cài đặt tất cả các gói cần thiết để làm cho nó hoạt động. Khi gỡ cài đặt một chương trình, trình quản lý gói cũng kiểm tra sự phụ thuộc giữa các gói. Nếu một số gói khác cần loại bỏ gói, bạn không thể loại bỏ nó.

Để bỏ qua việc kiểm tra phần phụ thuộc, hãy sử dụng tùy chọn --nodeps.
Điều này đôi khi hữu ích. Ví dụ: bạn đã cài đặt postfix và bạn cần cài đặt sendmail. Cả hai chương trình đều được sử dụng để gửi thư.

Tuy nhiên, nhiều chương trình thư yêu cầu MTA (Mail Transfer Agent) - một chương trình để gửi thư (postfix hoặc sendmail).
Do đó, bạn không thể gỡ cài đặt chương trình postfix bằng tham số -e.
Bạn cũng không thể cài đặt chương trình sendmail mà không gỡ bỏ chương trình postfix vì các gói xung đột với nhau. Trong trường hợp này, lệnh sẽ giúp bạn:

rpm -e -nodeps postfix

Sau khi loại bỏ như vậy, hoạt động bình thường của các chương trình khác yêu cầu MTA sẽ không thể thực hiện được, vì vậy bạn cần cài đặt ngay chương trình sendmail (hoặc MTA khác). Trong trường hợp này, bạn cần cài đặt chương trình, như bình thường, sử dụng tham số -i.

Tham số -U được sử dụng để cập nhật chương trình. Tôi khuyên bạn nên sử dụng nó khi cài đặt các chương trình, bởi vì nếu gói cần cài đặt đã được cài đặt, nó sẽ được cập nhật, còn nếu không, thì gói mới sẽ được cài đặt đơn giản. Để xem chỉ báo văn bản khi cài đặt các gói, hãy sử dụng tùy chọn h. Lệnh cập nhật gói:

rpm -Uhv<пакет>

Ví dụ:

rpm -Uhv phần mềm-1.1-4.i386.rpm

Chỉ báo văn bản sẽ được hiển thị dưới dạng ký hiệu #. Bạn có thể xem tất cả các gói đã cài đặt bằng lệnh:

rpm -qa Tôi ít hơn

Nếu bạn cần biết một gói cụ thể đã được cài đặt hay chưa, hãy chạy lệnh:

rpm -qa | grep package_name

Bạn có thể xem thông tin chung về một gói bằng lệnh:

gói rpm -qi

và thông tin về các tệp được bao gồm trong gói:

gói rpm -ql

Gnorpm, kpackage, apt.

Trình quản lý gói RPM là một công cụ mạnh mẽ để thực hiện các hoạt động trên gói - tạo, cài đặt, cập nhật, xóa. Tuy nhiên, giao diện dòng lệnh có thể không hấp dẫn tất cả mọi người, đặc biệt là quản trị viên mới làm quen. Ngoài ra còn có các triển khai đồ họa (cho X Window) của trình quản lý gói - ví dụ: kpackage từ KDE, gnorpm và các ứng dụng khác.
Tôi khuyên bạn nên sử dụng gnorpm, có giao diện đồ họa trực quan. RPM phù hợp hơn để tạo các gói mới, cũng như cập nhật một số lượng lớn các gói. Sẽ tốt hơn và thuận tiện hơn khi sử dụng gnorpm để cài đặt một hoặc hai gói.

Các chức năng của chương trình gnorpm:

Đang cài đặt các gói.
Loại bỏ các gói.
Nhận thông tin về một gói.
Kiểm tra gói hàng.
Tìm kiếm một gói trong cơ sở dữ liệu RPM.

Để cài đặt bất kỳ gói nào, hãy nhấp vào nút "Cài đặt". Nếu có đĩa CD cài đặt trong ổ CD-ROM, thì trong cửa sổ xuất hiện, bạn sẽ thấy danh sách các gói chưa được cài đặt trên hệ thống.

Nếu gói không có trong danh sách hoặc bạn muốn cài đặt một gói không có trong bộ phân phối, hãy nhấp vào nút Thêm và thêm gói bạn muốn cài đặt vào danh sách. Nhấp vào nút "Yêu cầu" để biết chi tiết gói.

Nếu gói chưa được cài đặt và bạn có đủ dung lượng đĩa để cài đặt, hãy nhấp vào nút Cài đặt. Sau đó, gói sẽ được kiểm tra để xem liệu các phần phụ thuộc có được thỏa mãn hay không: gói này có yêu cầu sự hiện diện của một số gói đã gỡ cài đặt hay không và nó có xung đột với các gói đã được cài đặt hay không. Nếu mọi thứ đều theo thứ tự, bạn sẽ thấy cửa sổ trạng thái cài đặt gói.

Bạn có thể tìm thấy một gói bằng thao tác Tìm kiếm. Để thực hiện việc này, hãy nhấp vào nút "Tìm kiếm" trên thanh công cụ gnorpm hoặc thực hiện lệnh menu Hoạt động -> Tìm kiếm. Trong cửa sổ mở ra, bạn có thể đặt tiêu chí tìm kiếm và nhấp vào nút "Tìm kiếm".

KDE đi kèm với một chương trình giao diện người dùng đồ họa để quản lý các gói, kpackage. Nó có chức năng tương tự như chương trình gnorpm. Việc sử dụng chương trình nào trong số các chương trình này là vấn đề sở thích và thói quen.

Cũng đáng nói là chương trình APT. APT là một hệ thống quản lý gói phần mềm. Hệ thống APT ban đầu được phát triển cho Debian Linux. Hiện được bao gồm với một số tương thích với Red Hat
bản phân phối (ví dụ: apt-get được bao gồm trong AltLinux, nhưng bạn sẽ không tìm thấy nó trên Red Hat Linux). Chương trình apt-get được sử dụng để quản lý các gói. Định dạng để gọi chương trình apt-get như sau:

apt-get [tùy chọn] [lệnh] [gói. ... .]


Bản phân phối Linux Mandrake bao gồm công cụ quản lý gói của riêng nó, rpmdrake. Đến phiên bản thứ mười của bộ phân phối, nó đã được sửa đổi một chút. Bây giờ nó có ba phần:

/ usr / sbin / edit-urpm-media - trình quản lý nguồn gói (nguồn nào thì tôi đã nói rồi, vì vậy chúng tôi sẽ không đề cập đến vấn đề này);
rpmdrake - trình quản lý cài đặt gói;
rpmdrake-remove là một trình quản lý loại bỏ gói.
Bạn có thể bắt đầu bất kỳ phần nào từ K: System | Cài đặt | Các gói.

Cài đặt từ các gói chứa mã nguồn.

Đôi khi RPM chứa mã nguồn chứ không phải là các phiên bản đã biên dịch của chương trình. Điều này được biểu thị bằng từ src thay vì tên của kiến ​​trúc. Để cài đặt một gói như vậy, hãy nhập:

rpm - xây dựng lại phần mềm-2.00-1.src.rpm

Tất nhiên, thay vì phần mềm-2.00-l.src.rpm, bạn cần chỉ định tên thật của tệp. Trước khi cài đặt chương trình, mã nguồn của nó sẽ được biên dịch và sau đó chương trình sẽ được cài đặt.

CÁC LỰA CHỌN CHUNG.

Các tùy chọn này có thể được sử dụng trong mọi chế độ hoạt động.

"-vv" In nhiều thông tin gỡ lỗi.

"--quiet" In càng ít thông báo càng tốt - theo quy luật, chỉ các thông báo lỗi mới được xuất ra.

"--help" In trợ giúp chi tiết hơn về cách sử dụng rpm hơn bình thường.

"--version" In một dòng chứa số phiên bản của vòng / phút mà bạn đang sử dụng.

"--rcfile<список-файлов>" Mỗi tệp từ dấu hai chấm được phân tách<списка-файлов>rpm được đọc tuần tự để biết thông tin cấu hình.
Vỡ nợ<список-файлов>trông giống như /usr/lib/rpm/rpmrc:/etc/rpmrc:~/.rpmrc.
Chỉ dòng đầu tiên phải tồn tại trong danh sách này; tất cả các dấu ngã sẽ được thay thế bằng giá trị $ HOME.

"--nguồn gốc<каталог>"Sử dụng hệ thống tệp được bắt nguồn từ<каталог>.
Lưu ý rằng điều này có nghĩa là cơ sở dữ liệu cũng sẽ được đọc và sửa đổi trong<каталог>và tất cả các tập lệnh trước và sau sẽ được thực thi sau chroot () trong<каталог>.

"--dbpath<путь>"Sử dụng cơ sở dữ liệu RPM trong<путь>.

"--justdb" Chỉ cập nhật cơ sở dữ liệu, không cập nhật hệ thống tệp.

"--ftpproxy , --http Proxy " Sử dụng dưới dạng proxy FTP hoặc HTTP.

"- ủng hộ<порт>, --httpport<порт>" Sử dụng<порт>dưới dạng FTP hoặc cổng HTTP của máy chủ proxy.

"--đường ống "Chuyển hướng đầu ra rpm thành đầu vào lệnh .

Bảo trì cơ sở dữ liệu:

rpm -i [--initdb]

rpm -i [--rebuilddb]

CÁC LỰA CHỌN XÂY DỰNG CƠ SỞ DỮ LIỆU.

Dạng chung của lệnh xây dựng lại cơ sở dữ liệu RPM trông như sau:
rpm --rebuilddb
Để xây dựng một cơ sở dữ liệu mới:
rpm --initdb
Chế độ này chỉ hỗ trợ hai tùy chọn, --dbpath và --root.

Đang chạy
rpm --showrc
in các giá trị mà rpm sẽ sử dụng cho tất cả các tùy chọn có thể được đặt trong các tệp rpmrc.

Cuộc họp:
rpm [-b | t] +
rpm [--rebuild] +
rpm [--tarbuild] +

CÁC PHƯƠNG ÁN LẮP RÁP (XÂY DỰNG) TRỌN GÓI.

Dạng chung của lệnh xây dựng gói rpm trông như sau:
rpm -O [tùy chọn xây dựng] +
Đối số -bfR được sử dụng khi một tệp đặc tả được sử dụng để xây dựng gói. Nếu rpmfR cần giải nén tệp này từ kho lưu trữ gzip (hoặc nén), thì đối số -tfR sẽ được sử dụng. Đối số đầu tiên được theo sau bởi (OfR) tiếp theo, cho biết các bước lắp ráp và đóng gói nào nên được thực hiện. Đây là một trong số:

-bp Thực hiện giai đoạn chuẩn bị% của tệp đặc tả. Điều này thường liên quan đến việc giải nén các nguồn và áp dụng các bản vá cho chúng.

"-bl" Thực hiện "kiểm tra danh sách". Trong phần "% files" của tệp đặc tả, macro được mở rộng và các tệp được liệt kê được kiểm tra sự tồn tại.

"-bc" Thực thi giai đoạn "% build" của tệp đặc tả (sau khi thực hiện giai đoạn chuẩn bị%). Điều này thường dẫn đến việc chạy một số tương đương với "make".

-bi Chạy giai đoạn cài đặt% của tệp đặc tả (sau khi thực hiện các giai đoạn chuẩn bị và xây dựng). Điều này thường chỉ đơn giản là làm một số loại tương đương
"thực hiện cài đặt".

"-bb" Xây dựng một gói nhị phân (sau khi thực hiện các giai đoạn chuẩn bị,% xây dựng và% cài đặt).

"-bs" Chỉ xây dựng gói nguồn (sau khi thực hiện các giai đoạn chuẩn bị, xây dựng và cài đặt).

"-ba" Xây dựng gói nhị phân (RPM) và nguồn (SRPM) (sau khi thực hiện các giai đoạn chuẩn bị, xây dựng và cài đặt).

Các tùy chọn sau cũng có thể được sử dụng:

"--short-circuit" Thực hiện trực tiếp giai đoạn đã chỉ định, bỏ qua các giai đoạn trước đó. Chỉ có thể được sử dụng với -bc và -bi.

"--timecheck" Đặt tuổi cho "timecheck" (0 để tắt). Giá trị này cũng có thể được đặt bằng cách xác định macro "_timecheck".
Giá trị kiểm tra thời gian chỉ định tuổi tối đa (tính bằng giây) của tệp được đóng gói vào lô. Một cảnh báo sẽ được hiển thị cho tất cả các tệp cũ hơn độ tuổi này.

--clean Loại bỏ cây xây dựng sau khi các gói đã được xây dựng.

"--rmsource" Xóa nguồn và tệp đặc tả sau khi tạo (có thể được sử dụng riêng, ví dụ "rpm --rmsource foo.spec").

"--test" Không chạy bất kỳ bước xây dựng nào. Hữu ích để kiểm tra các tệp thông số kỹ thuật.

"--sign" Nhúng chữ ký PGP vào gói. Chữ ký này có thể được sử dụng để xác minh tính toàn vẹn và nguồn gốc của một gói hàng. Xem phần
CHỮ KÝ PGP cho các tùy chọn PGP.

"--builroot<каталог>"Sử dụng thư mục<каталог>làm gốc để xây dựng các gói.

"--Mục tiêu<платформа>" Khi xây dựng một gói, hãy diễn giải<платформа>với tư cách là nhà cung cấp kiến ​​trúc
và đặt macro _target, _target_arch và _target_os cho phù hợp.

"- xây dựng "Gói xây dựng cho kiến ​​trúc không biết gì về kiến ​​trúc
hệ thống mà quá trình lắp ráp được thực hiện. Tùy chọn này không được dùng nữa; trong RPM 3.0, tùy chọn - mục tiêu sẽ được sử dụng thay thế.

"--buildos "Xây dựng một gói cho hệ điều hành không chú ý đến
kiến trúc của hệ thống mà quá trình lắp ráp được thực hiện trên đó. Tùy chọn này không được dùng nữa; trong RPM 3.0, tùy chọn - mục tiêu sẽ được sử dụng thay thế.

CÁC LỰA CHỌN LẮP RÁP VÀ THU HỒI.

Có hai cách khác để chạy rpm:

rpm - biên dịch<файл_исходного_пакета>+"

rpm - xây dựng lại<файл_исходного_пакета>+"

Khi được gọi theo cách này, rpm cài đặt gói nguồn được chỉ định và chạy% prep,% build và% install. Ngoài ra, --rebuild xây dựng một gói nhị phân mới. Sau khi quá trình xây dựng hoàn tất, cây được sử dụng cho bản dựng sẽ bị xóa (như với tùy chọn --clean), bản thân các nguồn và tệp đặc tả.

RPM TỒN TẠI CHỮ KÝ.

rpm - thiết kế<файл_бинарного_пакета>+ Tùy chọn này tạo và chèn chữ ký mới vào các gói được chỉ định.
Tất cả các chữ ký hiện có từ các gói sẽ bị xóa.

rpm --addsign<файл_бинарного_пакета>+ Tùy chọn này tạo và thêm chữ ký mới vào các gói được chỉ định.
Tất cả các chữ ký gói hiện có được giữ nguyên.

CHỮ KÝ PGP.

Để sử dụng tính năng ký, rpm phải được định cấu hình để chạy PGP và phải có thể tìm thấy vòng khóa công khai với khóa RPM trong đó. Theo mặc định rpm sử dụng PGP mặc định để tìm keyrings (tôn trọng PGPPATH).
Nếu các vòng khóa không phải là nơi PGP mong đợi để tìm thấy chúng, bạn phải thiết lập macro "_pgp_path" cho thư mục chứa các vòng khóa.

Nếu bạn muốn có thể ký các gói bạn tạo, bạn cũng cần tạo cặp khóa công khai / riêng tư của riêng mình (xem tài liệu PGP). Bên cạnh macro đã nói ở trên, bạn cũng cần phải định cấu hình macro

Loại chữ ký "_signature". Hiện tại chỉ pgp được hỗ trợ.

"_pgp_name" Tên người dùng " bạn muốn sử dụng khóa của ai để ký các gói hàng của mình.

Khi xây dựng các gói, bạn thêm tùy chọn --sign vào dòng lệnh. Bạn sẽ được yêu cầu nhập mật khẩu và gói của bạn sẽ được tạo và ký.

Ví dụ: sử dụng PGP để ký gói thay mặt người dùng "John Doe "từ các vòng khóa nằm trong /etc/rpm/.pgp, bạn phải bao gồm

"% _Chữ ký"
pgp
"% _pgp_name"
/etc/rpm/.pgp
"% _pgp_name"
John doe "

Vào tệp cấu hình macro. Sử dụng / etc / rpm / macro cho toàn hệ thống và ~ / .rpmmacros cho cấu hình tùy chỉnh.

Cung cấp các gói đã cài đặt:

rpm [--install] [install-options] [package-file] +
rpm [--eshen | -F] [install-options] [package-file] +
rpm [--uninstall | -e] [uninstall-options] [package] +
rpm [- xác minh | -V] [tùy chọn xác minh] [gói] +

LỰA CHỌN CÀI ĐẶT VÀ CẬP NHẬT.

Dạng chung của lệnh rpm cài đặt trông giống như sau:
rpm -i [cài đặt-tùy chọn]<файл_пакета>+
Lệnh này cài đặt các gói mới.

Dạng chung của lệnh cập nhật rpm trông như sau:
rpm -U [tùy chọn cài đặt]<файл_пакета>+
Lệnh này cập nhật các gói đã cài đặt. Lệnh này hoạt động giống hệt như lệnh cài đặt, ngoại trừ việc tất cả các phiên bản gói khác đều bị xóa khỏi hệ thống.

rpm [-F | --eshen] [install-options]<файл_пакета>+
Một lệnh như vậy sẽ cập nhật các gói, nhưng chỉ khi các phiên bản trước của các gói này tồn tại trên hệ thống.
Nhiệm vụ được phép<файл_пакета>dưới dạng URL kiểu ftp hoặc http. Trong trường hợp này, trước khi cài đặt, tệp sẽ được lấy từ máy chủ được chỉ định trong URL.

"--force" Giống như sự kết hợp của --replacepkgs, --replacefiles và --oldpackage.

"-h, --hash" In 50 # ký tự khi kho lưu trữ gói được giải nén. Được sử dụng với -v để làm đẹp.

"--oldpackage" Cho phép bạn thay thế một gói mới bằng một gói cũ hơn khi nâng cấp (khôi phục).

"--percent" In phần trăm sẵn sàng khi kho lưu trữ gói được giải nén. Được thiết kế để giúp việc sử dụng rpm từ các tiện ích khác trở nên dễ dàng hơn.

"--replacefiles" Cài đặt các gói ngay cả khi chúng ghi đè lên các tệp từ các gói khác đã được cài đặt.

"--replacepkgs" Cài đặt các gói ngay cả khi một số gói đã được cài đặt trên hệ thống.

--allfiles Cài đặt hoặc cập nhật tất cả các tệp được xác định là thiếu, ngay cả khi chúng đã tồn tại.

"--nodeps" Không kiểm tra các phần phụ thuộc trước khi cài đặt hoặc nâng cấp một gói.

"--noscripts" Không thực thi các tập lệnh trước và sau khi cài đặt.

"--notriggers" Không thực thi các tập lệnh kích hoạt được mã hóa để cài đặt gói này.

"--ignoresize" Không kiểm tra hệ thống tệp để có đủ dung lượng trống trước khi cài đặt gói này.

"--excludepath<путь>"Không cài đặt các tệp có tên bắt đầu bằng<путь>.

"--excludedocs" Không cài đặt bất kỳ tệp nào được đánh dấu là tệp tài liệu (bao gồm sách hướng dẫn và tài liệu texinfo).

"--includedocs" Cài đặt tệp tài liệu. Đây là hành vi mặc định.

"--test" Không cài đặt gói, chỉ cần kiểm tra xem nó có thể được cài đặt hay không và báo cáo các sự cố có thể xảy ra.

"--ignorearch" Cài đặt hoặc nâng cấp ngay cả khi kiến ​​trúc của RPM nhị phân và máy không khớp.

"--ignoreos" Cài đặt hoặc nâng cấp ngay cả khi hệ điều hành của RPM nhị phân và máy không khớp.

"--tiếp đầu ngữ<путь>"Đặt tiền tố cài đặt thành<путь>cho các gói có thể di dời.

"- phân bổ lại<старый_путь>=<новый_путь>" Đối với các gói có thể định vị lại: chuyển đổi các tệp lẽ ra đã được cài đặt trong<старый_путь>v<новый_путь>.

--badreloc Để sử dụng với --relocate. Di chuyển ngay cả khi gói không thể định vị lại.

"--noorder" Không sắp xếp lại danh sách các gói đã cài đặt. Thông thường danh sách được sắp xếp lại để đáp ứng các phụ thuộc.

Cuộc điều tra:
rpm [--query] [query-options]
rpm [--querytags]

YÊU CẦU LỰA CHỌN.

Dạng chung của lệnh yêu cầu rpm (kiểm tra) trông giống như sau:
rpm -q [yêu cầu-tùy chọn]
Bạn có thể đặt định dạng mà thông tin về gói sẽ được hiển thị. Để thực hiện việc này, hãy sử dụng tùy chọn --queryformat, theo sau là một chuỗi định dạng.

Định dạng truy vấn là phiên bản sửa đổi của định dạng printf (3) tiêu chuẩn. Định dạng bao gồm các chuỗi tĩnh (có thể bao gồm các chuỗi thoát C tiêu chuẩn cho dòng mới, tab và các ký tự đặc biệt khác) và các định dạng tương tự như các định dạng được sử dụng trong printf (3). Vì rpm đã biết các loại dữ liệu sẽ được in, các chỉ định loại phải được bỏ qua và thay thế bằng tên của các thẻ tiêu đề (khóa) sẽ được in, nằm trong (). Phần tên thẻ RPMTAG_ có thể được bỏ qua.

Các định dạng đầu ra thay thế có thể được chỉ định bằng cách thêm thẻ: typetag vào tên. Các loại sau hiện được hỗ trợ: bát phân, ngày tháng, hình dạng, phần trên, fflags và depflags.

Ví dụ: để chỉ hiển thị tên của các gói được yêu cầu, bạn có thể sử dụng% (NAME) làm chuỗi định dạng. Bạn có thể sử dụng% -30 (TÊN)% (PHÂN PHỐI) để hiển thị tên gói và thông tin phân phối trong hai cột.

Khi chạy với đối số --querytags, rpm sẽ liệt kê tất cả các thẻ mà nó biết.

Có hai nhóm tùy chọn cho truy vấn - lựa chọn gói và lựa chọn thông tin.

Các tùy chọn lựa chọn gói:

"<название_пакета>" Yêu cầu một gói đã cài đặt được gọi là<название_пакета>.

"-a, --all" Truy vấn tất cả các gói đã cài đặt.

"- những yêu cầu "Yêu cầu cho tất cả các gói yêu cầu để hoạt động bình thường.

"- whatprovides "Yêu cầu cho tất cả các gói cung cấp Dịch vụ.

"-NS<файл>, --tập tin<файл>" Yêu cầu gói sở hữu tệp<файл>.

"-NS<группа>, --tập đoàn<группа>" Yêu cầu gói từ một nhóm<группа>.

"-P<файл_пакета>"Yêu cầu gói (đã gỡ cài đặt)<файл_пакета>.
Tập tin<файл_пакета>có thể được chỉ định là URL kiểu ftp hoặc http; trong trường hợp này, tiêu đề gói sẽ được nhận từ máy chủ được chỉ định.

"--specfile "Phân tích cú pháp và truy vấn như thể nó là một gói. Mặc dù không phải tất cả thông tin (chẳng hạn như danh sách tệp) đều có sẵn, nhưng loại yêu cầu này cho phép rpm được sử dụng để trích xuất thông tin từ tệp đặc tả mà không cần phải viết trình phân tích cú pháp tệp đặc tả.

"--querybynumber "Yêu cầu trực tiếp số bản ghi cơ sở dữ liệu ... Hữu ích cho mục đích gỡ lỗi.

"--kích hoạt bởi<имя_пакета>" Truy vấn tất cả các gói có chứa tập lệnh kích hoạt được kích hoạt bởi gói<имя_пакета>.

Các tùy chọn lựa chọn thông tin:

"-tôi"
Hiển thị thông tin về một gói, bao gồm tên, phiên bản và mô tả. Sử dụng --queryformat nếu được cung cấp.

"-R, --requires" Liệt kê các gói mà gói này phụ thuộc vào.

"--provides" Liệt kê các dịch vụ và thư viện được cung cấp bởi gói này.

"--changelog" In bảng thay đổi cho gói này.

"-l, --list" Liệt kê các tệp có trong gói này.

"-s, --state" Liệt kê trạng thái của các tệp trong gói (ngụ ý -l).

Mỗi tệp có thể ở một trong các trạng thái sau: bình thường, chưa được cài đặt hoặc bị thay thế.

"-d, --docfiles" Chỉ liệt kê các tệp tài liệu (ngụ ý -l).

"-c, --configfiles" Chỉ liệt kê các tệp cấu hình (ngụ ý -l).

"--scripts" In các tập lệnh dành riêng cho gói được sử dụng như một phần của quá trình cài đặt / gỡ cài đặt, nếu có.

"--triggers, --triggercripts" Hiển thị tất cả các tập lệnh kích hoạt, nếu có, có trong gói.

"--dump" In thông tin về các tệp như sau: kích thước đường dẫn mtime md5sum mode owner group isconfig isdoc rdev symlink.
Tùy chọn này phải được sử dụng cùng với ít nhất một trong -l, -c, -d.

"--last" Sắp xếp danh sách các gói theo thời gian cài đặt để các gói gần đây nhất nằm ở đầu danh sách.

"--filesbypkg" Liệt kê tất cả các tệp trong mỗi gói.

"--triggerscripts" Hiển thị tất cả các tập lệnh kích hoạt cho các gói đã chọn.

CÁC LỰA CHỌN XÁC MINH.

Dạng chung của lệnh xác minh rpm trông như sau:
rpm -V | -y | - xác minh [tùy chọn xác minh]
Trong quá trình xác minh gói, thông tin về các tệp đã cài đặt của gói được so sánh với thông tin từ gói gốc và từ cơ sở dữ liệu RPM. Xác minh kiểm tra kích thước, tổng kiểm tra MD5, quyền, loại, chủ sở hữu và nhóm của từng tệp, trong số những tệp khác. Tất cả sự mâu thuẫn đều được báo cáo. Các tùy chọn để chọn gói cũng giống như để yêu cầu (kiểm tra) gói.

Các tệp không được cài đặt từ gói (ví dụ: tệp tài liệu đã bị loại trừ khỏi quá trình cài đặt với tùy chọn "--excludedocs") sẽ bị bỏ qua một cách im lặng.

Các tùy chọn có thể được sử dụng trong quá trình xác minh:

--nofiles Bỏ qua các tệp bị thiếu.

"--nomd5" Bỏ qua lỗi tổng kiểm tra MD5.
"--nopgp" Bỏ qua lỗi ký PGP.

Định dạng đầu ra là một chuỗi tám ký tự, có thể là "c" cho biết tệp cấu hình và tên tệp. Mỗi ký tự trong số tám ký tự cho biết kết quả của việc so sánh một trong các thuộc tính tệp với giá trị được ghi lại trong cơ sở dữ liệu RPM. Dấu chấm cho biết bài kiểm tra đã đạt. Các ký hiệu sau chỉ ra lỗi trong một số thử nghiệm:

Tổng kiểm tra MD5 "5".

Kích thước tệp "S".

"L" Simlink.

"T" Thời gian sửa đổi.

Thiết bị "D".

"U" Chủ nhân.

Nhóm "G".

Quyền "M" (bao gồm quyền và loại tệp).

KIỂM TRA CHỮ KÝ

Hình thức chung của lệnh xác minh chữ ký RPM trông giống như sau:
rpm --checksig<файл_с_пакетом>+
Lệnh này xác minh chữ ký PGP được nhúng trong gói để xác minh tính toàn vẹn và nguồn gốc của gói.
Thông tin cấu hình PGP được đọc từ các tệp cấu hình. Xem phần CHỮ KÝ PGP để biết thêm chi tiết.

LOẠI BỎ LỰA CHỌN (KHÔNG CÀI ĐẶT)

Dạng chung của lệnh rpm gỡ cài đặt (gỡ cài đặt) trông giống như sau:
rpm -e<название_пакета>+

"--allmatches" Xóa tất cả các phiên bản gói phù hợp<название_пакета>Thường nếu<название_пакета>phản hồi với nhiều gói, được phát hành
thông báo lỗi và việc xóa không được thực hiện.

"--noscripts" Không thực thi các tập lệnh trước và sau khi cài đặt.

"--notriggers" Không thực thi các tập lệnh kích hoạt được mã hóa để xóa gói này.

"--nodeps" Không kiểm tra các phần phụ thuộc trước khi loại bỏ các gói.

"--test" Không xóa, chỉ giả vờ :) Hữu ích khi kết hợp với tùy chọn -vv.

Điều khoản khác:
rpm [--showrc]
rpm [--setperms] [package] +
rpm [--setgids] [package] +

TÙY CHỌN FTP / HTTP.

rpm chứa các ứng dụng khách FTP và HTTP đơn giản để giúp bạn dễ dàng cài đặt và khám phá các gói có sẵn trên Internet. Gói tệp để cài đặt,
cập nhật và yêu cầu có thể được chỉ định dưới dạng url kiểu ftp hoặc http:
ftp: // :@hostname: /path/to/package.rpm
Nếu một phần Bỏ qua, mật khẩu sẽ được nhắc (một lần cho mỗi cặp tên người dùng / tên máy chủ). Nếu không cũng không Không được chỉ định, ftp ẩn danh sẽ được sử dụng. Trong mọi trường hợp, truyền FTP thụ động (PASV) được sử dụng.

Rpm cho phép các tùy chọn sau được sử dụng với các URL ftp:

"--ftpproxy " Hệ thống sẽ được sử dụng làm proxy cho tất cả các lần truyền, cho phép kết nối FTP được thực hiện thông qua tường lửa bằng cách sử dụng proxy để truy cập thế giới bên ngoài. Tùy chọn này cũng có thể được đặt bằng cách đặt macro _ftpproxy.

"- ủng hộ "Chỉ định số cổng TCP được sử dụng cho các kết nối FTP thay vì cổng mặc định.
Tùy chọn này cũng có thể được đặt bằng cách đặt macro _ftpport.

Rpm cho phép các tùy chọn sau được sử dụng với URL http:

"--http Proxy " Hệ thống sẽ được sử dụng làm proxy cho tất cả chuyển tiếp, cho phép kết nối HTTP được thực hiện thông qua tường lửa sử dụng proxy để truy cập thế giới bên ngoài. Tùy chọn này cũng có thể được đặt bằng cách đặt macro _httpproxy.

"--httpport "Chỉ định số cổng TCP được sử dụng cho các kết nối HTTP thay vì cổng mặc định.
Tùy chọn này cũng có thể được đặt bằng cách đặt macro _httpport.

Chuẩn bị bởi Dvoe4nik85