Let’s have a look at examples of how to manage software packages from the command line interface. As we run CentOS we will use yum and rpm utilities.
RPM Queries
Show packages in the rpm database:
1 2 3 4 5 |
[root@server1 ~]# rpm -qa libnice-0.1.3-4.el7.x86_64 mozjs24-24.2.0-6.el7.x86_64 telepathy-haze-0.8.0-1.el7.x86_64 [. . .] |
Show packages in the rpm database:
1 2 3 |
[root@server1 ~]# rpm -qa | grep bash bash-completion-2.1-6.el7.noarch bash-4.2.46-21.el7_3.x86_64 |
List files in the rpm package:
1 2 3 4 5 6 7 8 |
[root@server1 ~]# rpm -ql bash-completion /etc/bash_completion.d /etc/bash_completion.d/redefine_filedir /etc/profile.d/bash_completion.sh /usr/share/bash-completion /usr/share/bash-completion/bash_completion /usr/share/bash-completion/completions [. . .] |
List files in the rpm package:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root@server1 etc]# rpm -ql libnfsidmap /etc/idmapd.conf /lib64/libnfsidmap.so.0 /lib64/libnfsidmap.so.0.3.0 /lib64/libnfsidmap/nsswitch.so /lib64/libnfsidmap/static.so /lib64/libnfsidmap/umich_ldap.so /usr/share/doc/libnfsidmap-0.25 /usr/share/doc/libnfsidmap-0.25/AUTHORS /usr/share/doc/libnfsidmap-0.25/COPYING /usr/share/doc/libnfsidmap-0.25/ChangeLog /usr/share/doc/libnfsidmap-0.25/NEWS /usr/share/doc/libnfsidmap-0.25/README /usr/share/man/man3/nfs4_uid_to_name.3.gz /usr/share/man/man5/idmapd.conf.5.gz |
Find rpm package given files are coming from
1 2 |
[root@server1 etc]# rpm -qf /etc/idmapd.conf libnfsidmap-0.25-15.el7.x86_64 |
Find the rpm package configuration file(s):
1 2 |
[root@server1 etc]# rpm -qc libnfsidmap /etc/idmapd.conf |
Find the rpm package documentation files:
1 2 3 4 5 6 7 8 |
[root@server1 etc]# rpm -qd libnfsidmap /usr/share/doc/libnfsidmap-0.25/AUTHORS /usr/share/doc/libnfsidmap-0.25/COPYING /usr/share/doc/libnfsidmap-0.25/ChangeLog /usr/share/doc/libnfsidmap-0.25/NEWS /usr/share/doc/libnfsidmap-0.25/README /usr/share/man/man3/nfs4_uid_to_name.3.gz /usr/share/man/man5/idmapd.conf.5.gz |
Query Packages in Repositories
How to query an rpm package before installing it?
Query repository:
1 2 |
[root@server1 etc]# repoquery nginx nginx-1:1.10.2-1.el7.x86_64 |
Get info about the package:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[root@server1 etc]# repoquery -i nginx Name : nginx Version : 1.10.2 Release : 1.el7 Architecture: x86_64 Size : 1459372 Packager : Fedora Project Group : System Environment/Daemons URL : http://nginx.org/ Repository : epel Summary : A high performance web server and reverse proxy server Source : nginx-1.10.2-1.el7.src.rpm Description : Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and IMAP protocols, with a strong focus on high concurrency, performance and low memory usage. |
List the package content:
1 2 3 4 5 6 |
[root@server1 etc]# repoquery -l nginx /etc/logrotate.d/nginx /etc/nginx/fastcgi.conf /etc/nginx/fastcgi.conf.default [. . .] var/log/nginx |
Download rpm package and check scripts are included in the rpm:
Note: It is especially useful if we have the rpm package downloaded from not reliable source and we want to check what scripts would be executed when installing the package.
1 2 3 |
[root@server1 etc]# yumdownloader httpd [root@server1 etc]# ls -lt | grep httpd -rw-r--r--. 1 root root 2831588 Apr 13 02:04 httpd-2.4.6-45.el7.centos.4.x86_64.rpm |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[root@server1 etc]# rpm -qpi httpd-2.4.6-45.el7.centos.4.x86_64.rpm Name : httpd Version : 2.4.6 Release : 45.el7.centos.4 Architecture: x86_64 Install Date: (not installed) Group : System Environment/Daemons Size : 9823677 License : ASL 2.0 Signature : RSA/SHA256, Thu 13 Apr 2017 02:04:44 IST, Key ID 24c6a8a7f4a80eb5 Source RPM : httpd-2.4.6-45.el7.centos.4.src.rpm Build Date : Wed 12 Apr 2017 22:05:23 IST Build Host : c1bm.rdu2.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem <http://bugs.centos.org> Vendor : CentOS URL : http://httpd.apache.org/ Summary : Apache HTTP Server Description : The Apache HTTP Server is a powerful, efficient, and extensible web server. |
List files in the rpm package:
1 2 3 4 5 6 7 8 9 10 11 |
[root@server1 etc]# rpm -qpl httpd-2.4.6-45.el7.centos.4.x86_64.rpm /etc/httpd /etc/httpd/conf /etc/httpd/conf.d /etc/httpd/conf.d/README /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/userdir.conf /etc/httpd/conf.d/welcome.conf [. . .] /var/www/cgi-bin /var/www/html |