20 ví dụ lệnh rpm trên Centos / Ubuntu / Debian / Fedora
Lệnh rpm là miễn phí và được phát hành dưới GPL (General Public License).
- RPM lưu trữ thông tin về tất cả các gói đã được cài đặt trong cơ sở dữ liệu /var/lib/rpm.
- RPM là cách duy nhất để cài đặt gói trên hệ thống Linux. Nếu bạn đã cài đặt các gói bằng mã nguồn, thì RPM sẽ không quản lý được.
- RPM xử lý các tệp .rpm, chứa thông tin thực về các gói như: nó là gì, từ đâu đến, thông tin về các phụ thuộc, phiên bản, vv.
5 chế độ cơ bản lệnh rpm:
- Install: Được sử dụng để cài đặt bất kỳ gói RPM nào.
- Remove: Được sử dụng để xóa, gỡ bỏ hoặc gỡ cài đặt bất kỳ gói RPM nào.
- Upgrade: Được sử dụng để cập nhật gói RPM hiện có.
- Verify: Được sử dụng để xác minh gói RPM.
- Query: Được sử dụng để truy vấn thông tin của bất kỳ gói RPM nào.
Lưu ý: bạn phải là người dùng root khi cài đặt gói trên Linux. Với quyền root, bạn có thể quản lý các lệnh rpm với các tùy chọn thích hợp.
Kiểm tra chữ ký của gói RPM
Luôn kiểm tra chữ ký PGP của các gói trước khi cài đặt trên hệ thống Linux và đảm bảo tính toàn vẹn và nguồn gốc. Sử dụng lệnh sau với tùy chọn --checksig (kiểm tra chữ ký) để kiểm tra chữ ký của một gói có tên là pidgin.
# 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
Cài đặt gói RPM
Để cài đặt một gói phần mềm RPM, sử dụng lệnh sau với tùy chọn -i. Ví dụ, để cài đặt gói RPM có tên pidgin-2.7.9-5.el6.2.i686.rpm.
# rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm Preparing... ########################################### [100%] 1:pidgin ########################################### [100%]
Dưới đây là một số tùy chọn và chức năng của RPM:
- Tùy chọn -i: Cài đặt một gói
- Tùy chọn -v: Hiển thị chi tiết trong quá trình cài đặt
- Tùy chọn: -h: Hiển thị thanh tiến trình khi cài đặt
Kiểm tra các phụ thuộc của gói RPM trước khi cài đặt
Giả sử bạn muốn kiểm tra các phụ thuộc trước khi cài đặt hoặc nâng cấp một gói. Ví dụ, sử dụng lệnh sau để kiểm tra các phụ thuộc của gói BitTorrent-5.2.2-1-P.noarch.rpm. Nó sẽ hiển thị danh sách các phụ thuộc của gói.
# rpm -qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm /usr/bin/python2.4 python >= 2.3 python(abi) = 2.4 python-crypto >= 2.0 python-psyco python-twisted >= 2.0 python-zopeinterface rpmlib(CompressedFileNames) = 2.6
Dưới đây là một số tùy chọn và chức năng của RPM:
- Tùy chọn -q: Truy vấn thông tin về một gói
- Tùy chọn -p: Liệt kê các khả năng mà gói cung cấp
- Tùy chọn -R: Liệt kê các khả năng mà gói phụ thuộc vào
Cài đặt gói RPM mà không có phụ thuộc bằng lệnh rpm
Nếu bạn biết rằng tất cả các gói cần thiết đã được cài đặt và RPM đang chỉ đơn giản là "ngốc nghếch", bạn có thể bỏ qua các phụ thuộc bằng cách sử dụng tùy chọn --nodeps (không kiểm tra phụ thuộc) trước khi cài đặt gói.
# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm Preparing... ########################################### [100%] 1:BitTorrent ########################################### [100%]
Lưu ý rằng việc bỏ qua các phụ thuộc có thể dẫn đến các vấn đề không ổn định hoặc không hoạt động của gói, do đó, hãy chắc chắn kiểm tra kỹ trước khi bỏ qua các phụ thuộc.
Kiểm tra một gói RPM đã được cài đặt
Sử dụng tùy chọn -q với tên gói sẽ cho thấy gói rpm đã được cài đặt hay chưa.
# rpm -q BitTorrent BitTorrent-5.2.2-1.noarch
Liệt kê tất cả các tệp của một gói RPM đã được cài đặt
Để xem tất cả các tệp của một gói rpm đã được cài đặt, sử dụng tùy chọn -ql (query list) với lệnh rpm.
# rpm -ql BitTorrent /usr/bin/bittorrent /usr/bin/bittorrent-console /usr/bin/bittorrent-curses /usr/bin/bittorrent-tracker /usr/bin/changetracker-console /usr/bin/launchmany-console /usr/bin/launchmany-curses /usr/bin/maketorrent /usr/bin/maketorrent-console /usr/bin/torrentinfo-console
Lệnh rpm liệt kê các gói RPM được cài đặt gần đây
Sử dụng lệnh rpm sau với tùy chọn -qa (query all), sẽ liệt kê tất cả các gói rpm đã được cài đặt gần đây.
# rpm -qa --last BitTorrent-5.2.2-1.noarch Tue 04 Dec 2012 05:14:06 PM BDT pidgin-2.7.9-5.el6.2.i686 Tue 04 Dec 2012 05:13:51 PM BDT cyrus-sasl-devel-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:06 PM BDT cyrus-sasl-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:05 PM BDT cyrus-sasl-md5-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:04 PM BDT cyrus-sasl-plain-2.1.23-13.el6_3.1.i686 Tue 04 Dec 2012 04:43:03 PM BDT
Cách liệt kê tất cả các gói RPM đã được cài đặt
Nhập lệnh sau để in ra tên của tất cả các gói đã được cài đặt trên hệ thống Linux của bạn.
# rpm -qa initscripts-9.03.31-2.el6.centos.i686 polkit-desktop-policy-0.96-2.el6_0.1.noarch thunderbird-17.0-1.el6.remi.i686
Cách nâng cấp một gói RPM
Nếu muốn nâng cấp bất kỳ gói RPM nào, sử dụng tùy chọn -U (upgrade). Một trong những lợi ích chính của việc sử dụng tùy chọn này là nó không chỉ nâng cấp phiên bản mới nhất của bất kỳ gói nào, mà còn duy trì bản sao lưu của gói cũ hơn để trong trường hợp phiên bản nâng cấp mới không hoạt động, ta vẫn có thể sử dụng lại gói đã được cài đặt trước đó.
# rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm Preparing... ########################################### [100%] 1:nx ########################################### [100%]
Cách gỡ bỏ một gói RPM bằng lệnh rpm đơn giản
Để gỡ bỏ một gói RPM, ví dụ như chúng ta sử dụng tên gói nx, không phải tên gói gốc nx-3.5.0-2.el6.centos.i686.rpm. Sử dụng tùy chọn -e (erase) để gỡ bỏ gói.
# rpm -evv nx
Cách gỡ bỏ một gói RPM mà không kiểm tra phụ thuộc
Tùy chọn --nodeps (Không kiểm tra phụ thuộc) sẽ gỡ bỏ gói rpm khỏi hệ thống một cách bắt buộc. Nhưng hãy nhớ rằng việc gỡ bỏ một gói cụ thể có thể gây ra sự cố cho các ứng dụng khác đang hoạt động.
# rpm -ev --nodeps vsftpd
Cách truy vấn một tệp thuộc về gói RPM nào
Ví dụ, bạn có danh sách các tệp và bạn muốn tìm hiểu tệp nào thuộc về gói nào. Ví dụ, lệnh sau với tùy chọn -qf (query file) sẽ cho bạn biết rằng tệp /usr/bin/htpasswd thuộc về gói httpd-tools-2.2.15-15.el6.centos.1.i686.
# rpm -qf /usr/bin/htpasswd httpd-tools-2.2.15-15.el6.centos.1.i686
Lệnh rpm lấy thông tin của gói RPM đã được cài đặt
Giả sử bạn đã cài đặt một gói rpm và muốn biết thông tin về gói đó. Tùy chọn -qi (query info) sau đây sẽ hiển thị thông tin có sẵn của gói đã cài đặt.
# rpm -qi vsftpd Name : vsftpd Relocations: (not relocatable) Version : 2.2.2 Vendor: CentOS Release : 11.el6 Build Date: Fri 22 Jun 2012 01:54:24 PM BDT Install Date: Mon 17 Sep 2012 07:55:28 PM BDT Build Host: c6b8.bsys.dev.centos.org Group : System Environment/Daemons Source RPM: vsftpd-2.2.2-11.el6.src.rpm Size : 351932 License: GPLv2 with exceptions Signature : RSA/SHA1, Mon 25 Jun 2012 04:07:34 AM BDT, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://vsftpd.beasts.org/ Summary : Very Secure Ftp Daemon Description : vsftpd is a Very Secure FTP daemon. It was written completely from scratch.
Lấy thông tin của gói RPM trước khi cài đặt bằng lệnh rpm
Bạn đã tải xuống một gói từ Internet và muốn biết thông tin về gói trước khi cài đặt. Ví dụ: tùy chọn -qip (query info package) sau đây sẽ hiển thị thông tin của gói sqlbuddy.
# rpm -qip sqlbuddy-1.3.3-1.noarch.rpm Name : sqlbuddy Relocations: (not relocatable) Version : 1.3.3 Vendor: (none) Release : 1 Build Date: Wed 02 Nov 2011 11:01:21 PM BDT Install Date: (not installed) Build Host: rpm.bar.baz Group : Applications/Internet Source RPM: sqlbuddy-1.3.3-1.src.rpm Size : 1155804 License: MIT Signature : (none) Packager : Erik M Jacobs URL : http://www.sqlbuddy.com/ Summary : SQL Buddy â Web based MySQL administration Description : SQLBuddy is a PHP script that allows for web-based MySQL administration.
Lấy thông tin tài liệu của gói RPM đã được cài đặt
Để lấy danh sách tài liệu có sẵn của một gói đã được cài đặt, sử dụng lệnh sau với tùy chọn -qdf (query document file) sẽ hiển thị các trang tài liệu liên quan đến gói vmstat.
# rpm -qdf /usr/bin/vmstat /usr/share/doc/procps-3.2.8/BUGS /usr/share/doc/procps-3.2.8/COPYING /usr/share/doc/procps-3.2.8/COPYING.LIB /usr/share/doc/procps-3.2.8/FAQ /usr/share/doc/procps-3.2.8/NEWS /usr/share/doc/procps-3.2.8/TODO
Xác minh một gói RPM bằng lệnh rpm
Xác minh một gói so sánh thông tin của các tệp đã được cài đặt của gói với cơ sở dữ liệu rpm. Tùy chọn -Vp (verify package) được sử dụng để xác minh một gói.
# rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm S.5....T. c /etc/httpd/conf.d/sqlbuddy.conf
Xác minh tất cả các gói RPM
Nhập lệnh sau để xác minh tất cả các gói rpm đã được cài đặt.
# rpm -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 S.5....T. c /etc/yum.conf S.5....T. c /etc/yum.repos.d/epel.repo
Nhập khóa GPG cho gói RPM
Để xác minh các gói RHEL/CentOS/Fedora, bạn phải nhập khóa GPG. Để làm điều này, thực hiện lệnh sau. Nó sẽ nhập khóa GPG của CentOS 6.
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Lệnh rpm liệt kê tất cả các khóa GPG RPM đã được nhập
Để in tất cả các khóa GPG đã được nhập trên hệ thống của bạn, sử dụng lệnh sau.
# rpm -qa gpg-pubkey* gpg-pubkey-0608b895-4bd22942 gpg-pubkey-7fac5991-4615767f gpg-pubkey-0f2672c8-4cd950ee gpg-pubkey-c105b9de-4e0fd3a3 gpg-pubkey-00f97f56-467e318a gpg-pubkey-6b8d79e6-3f49313d gpg-pubkey-849c449f-4cb9df30
Tái tạo cơ sở dữ liệu RPM bị hỏng
Đôi khi cơ sở dữ liệu rpm bị hỏng và dừng mọi chức năng của rpm và các ứng dụng khác trên hệ thống. Vì vậy, trong trường hợp đó, chúng ta cần tái tạo cơ sở dữ liệu rpm và khôi phục nó với sự trợ giúp của lệnh sau.
# cd /var/lib # rm __db* # rpm --rebuilddb # rpmdb_verify Packages
Mọi người cùng tìm kiếm: centos rpm, rpm centos, rpm linux