Lesson 6.5: Install and update software packages from Red Hat Network, a remote repository, or from the local file system


Managing Packages using RPM

View Package installation in system

# To check for a single package [sanjeeb@sanjeeb ~]$ rpm -q httpd httpd-2.4.57-8.el9.aarch64 # To check for multiple package [sanjeeb@sanjeeb ~]$ rpm -q php httpd zip package php is not installed httpd-2.4.57-8.el9.aarch64 zip-3.0-35.el9.aarch64 # To check using wildcard, using -qa queryall [sanjeeb@sanjeeb ~]$ rpm -qa *zip* bzip2-libs-1.0.8-8.el9.aarch64 gzip-1.12-1.el9.aarch64 unzip-6.0-56.el9.aarch64 zip-3.0-35.el9.aarch64 bzip2-1.0.8-8.el9.aarch64 # To view all tha installed packages [sanjeeb@sanjeeb ~]$ rpm -qa autofs-5.1.7-58.el9.aarch64 openssh-8.7p1-38.el9.aarch64 openssh-clients-8.7p1-38.el9.aarch64 openssh-server-8.7p1-38.el9.aarch64 ... ... ... # To view related file and bundle related to package [sanjeeb@sanjeeb ~]$ rpm -ql zip /usr/bin/zip /usr/bin/zipcloak /usr/bin/zipnote /usr/bin/zipsplit /usr/lib/.build-id /usr/lib/.build-id/98 /usr/share/doc/zip ... ... ... # To get the information of the package [sanjeeb@sanjeeb ~]$ rpm -qi zip Name : zip Version : 3.0 Release : 35.el9 Architecture: aarch64 Install Date: Wed 06 Dec 2023 10:45:30 AM +0545 Group : Unspecified Size : 776983 License : BSD Signature : RSA/SHA256, Thu 16 Feb 2023 02:57:05 PM +0545, Key ID 05b555b38483c65d Source RPM : zip-3.0-35.el9.src.rpm Build Date : Wed 15 Feb 2023 04:17:44 PM +0545 Build Host : aarch64-03.stream.rdu2.redhat.com Packager : builder@centos.org Vendor : CentOS URL : http://www.info-zip.org/Zip.html Summary : A file compression and packaging utility compatible with PKZIP Description : The zip program is a compression and file packaging utility. Zip is analogous to a combination of the UNIX tar and compress commands and is compatible with PKZIP (a compression and file packaging utility for MS-DOS systems). Install the zip package if you need to compress files using the zip program. # To find out which part of the package is a file [sanjeeb@sanjeeb ~]$ rpm -qf /etc/passwd setup-2.13.7-9.el9.noarch # To find out the dependanct of a package (zip is dependant on these following packages) [sanjeeb@sanjeeb ~]$ rpm -q --requires zip ld-linux-aarch64.so.1()(64bit) ld-linux-aarch64.so.1(GLIBC_2.17)(64bit) libbz2.so.1()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.17)(64bit) libc.so.6(GLIBC_2.33)(64bit) libc.so.6(GLIBC_2.34)(64bit) rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsZstd) <= 5.4.18-1 rtld(GNU_HASH) unzip # To find out the dependancy of a package (what packages are dependant on glibc) [sanjeeb@sanjeeb ~]$ rpm -q --whatrequires glibc glibc-all-langpacks-2.34-88.el9.aarch64 glibc-langpack-en-2.34-88.el9.aarch64 glibc-common-2.34-88.el9.aarch64 libstdc++-11.4.1-2.3.el9.aarch64 pam-1.5.1-16.el9.aarch64 lockdev-1.0.4-0.37.20111007git.el9.aarch64 # To view development history [sanjeeb@sanjeeb ~]$ rpm -q --changelog zip * Tue Feb 14 2023 Jakub Martisko <jamartis@redhat.com> - 3.0-35 - Fix the annocheck issus from 3-0-33 without reintroducing the regression from 3.0-34 Related: rhbz#2162688 * Wed Feb 02 2022 Jakub Martisko <jamartis@redhat.com> - 3.0-31 - Add the missing linker flags - Add the patch that allows to configure the linker flags from the spec file Resolves: rhbz #2044902 * Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 3.0-30 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688 * Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.0-29 - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937

Installing a package using YUM

# -y is used for not asking confirmation [root@sanjeeb ~]# yum -y install httpd

Uninstalling a package using YUM

# -y is used for not asking confirmation # This will remove the package with it's dependancy [root@sanjeeb ~]# yum -y remove httpd # To remove a package without removing it's dependencies rpm -e --nodeps <package_name> [root@sanjeeb ~]# rpm -e --nodeps apr

Query a package using YUM

# YUM queries package that are installed as well as available [sanjeeb@sanjeeb ~]$ yum list httpd CentOS Stream 9 - BaseOS 313 kB/s | 9.3 MB 00:30 CentOS Stream 9 - AppStream 213 kB/s | 18 MB 01:28 CentOS Stream 9 - Extras packages 1.8 kB/s | 19 kB 00:10 Last metadata expiration check: 0:00:01 ago on Mon 23 Sep 2024 06:11:59 AM +0545. Installed Packages httpd.aarch64 2.4.57-8.el9 @appstream Available Packages httpd.aarch64 2.4.62-1.el9 appstream # To get information about package [sanjeeb@sanjeeb ~]$ yum info httpd # To display the history of packages installed using yum [sanjeeb@sanjeeb ~]$ yum history ID | Command line | Date and time | Action(s) | Altered ---------------------------------------------------------------------------------------------------------- 7 | install openssh-server | 2024-04-06 08:47 | Upgrade | 3 6 | -y install autofs | 2024-03-29 16:01 | Install | 2 5 | -y install nfs-utils | 2024-03-29 14:38 | I, U | 14 EE 4 | -y install httpd | 2024-03-06 17:04 | Install | 11 < # Undo the yum operation from history yum history undo <history number> [sanjeeb@sanjeeb ~]$ yum history undo 4

Install a group of packages

[sanjeeb@sanjeeb ~]$ yum group list Last metadata expiration check: 4:52:42 ago on Mon 23 Sep 2024 06:11:59 AM +0545. Available Environment Groups: Server Minimal Install Custom Operating System Installed Environment Groups: Server with GUI Installed Groups: Container Management Headless Management Available Groups: Legacy UNIX Compatibility Console Internet Tools Development Tools .NET Development Graphical Administration Tools Network Servers RPM Development Tools Scientific Support Security Tools Smart Card Support System Tools ### To install all the tools for a developer machine using group [sanjeeb@sanjeeb ~]$ yum -y install "Development Tools"

Configuring Local YUM Server using HTTP

  • Install apache web server package
  • Copy the linux softwares into /var/www/html directory
  • Start the apache web service
  • Allow http packets through the firewall
# YUM SERVER CONFIGURATION [root@sanjeeb ~]# hostname -I 172.20.10.201 # 1. Install apache web server package [root@sanjeeb ~]# yum -y install httpd # 2. Copy the linux softwares into /var/www/html directory [root@sanjeeb ~]# cp -r /run/media/sanjeeb/CentOS-Stream-9-BaseOS-aarch64/BaseOS /var/www/html/softwares [root@sanjeeb ~]# cp -r /run/media/sanjeeb/CentOS-Stream-9-BaseOS-aarch64/AppStream /var/www/html/softwares # 4. Allow http packets through the firewall [root@sanjeeb ~]# systemctl start firewalld [root@sanjeeb ~]# systemctl status firewalld firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; preset: enabled) Active: active (running) since Mon 2024-09-23 12:21:11 +0545; 6s ago Docs: man:firewalld(1) Main PID: 4222 (firewalld) Tasks: 2 (limit: 22585) Memory: 28.3M CPU: 188ms CGroup: /system.slice/firewalld.service └─4222 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid [root@sanjeeb ~]# firewall-cmd --permanent --add-service=http [root@sanjeeb ~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client http ssh ports: protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: # --------- # CLIENT SERVER CONFIGURATION [root@assignmentserver yum.repos.d]# hostname -I 172.20.10.200 [root@assignmentserver yum.repos.d]# pwd /etc/yum.repos.d [root@assignmentserver yum.repos.d]# cat appstream.repo [appstream] name = Appstream Repository baseurl = http://172.20.10.201/softwares/AppStream enabled = 1 gpgcheck = 0 [root@assignmentserver yum.repos.d]# cat baseos.repo [baseos] name = BaseOS Repository baseurl = http://172.20.10.201/softwares/BaseOS enabled = 1 gpgcheck = 0 [root@assignmentserver yum.repos.d]# yum list httpd Repository 'appstream' is missing name in configuration, using id. Repository 'baseos' is missing name in configuration, using id. appstream 77 MB/s | 5.7 MB 00:00 baseos 69 MB/s | 2.1 MB 00:00 Installed Packages httpd.aarch64 2.4.62-1.el9 @appstream

Extra packgae for Enterprise Linux

[root@sanjeeb ~]# yum -y install epel-release
All systems normal

© 2025 2023 Sanjeeb KC. All rights reserved.