Automate YUM Package Installation with Non-Interactive Yes Confirmation in CentOS/RHEL


2 views

When working with CentOS/RHEL systems, the most straightforward way to automate package installation is using the -y flag with yum:


yum install package-name -y

This flag automatically answers "yes" to all prompts during the installation process. For example:


yum install httpd php mysql-server -y

For system-wide automation, modify the yum configuration file:


echo "assumeyes=1" >> /etc/yum.conf

This setting makes yum always assume "yes" for all operations. To verify the change:


grep assumeyes /etc/yum.conf

For scenarios where more complex interaction is needed, consider using expect:


#!/usr/bin/expect -f
spawn yum install package-name
expect "Is this ok [y/d/N]?"
send "y\r"
expect eof

Create a reusable bash script for automated installations:


#!/bin/bash
for package in "$@"
do
    echo "Installing $package..."
    yum install -y "$package" >/dev/null 2>&1
    if [ $? -eq 0 ]; then
        echo "$package installed successfully"
    else
        echo "Failed to install $package" >&2
    fi
done

Combine -y with -q for completely silent operation:


yum -y -q install package-name

Or redirect output to /dev/null:


yum -y install package-name > /dev/null 2>&1

When automation fails, check these common issues:

  • Repository availability
  • Package name accuracy
  • Dependency conflicts

For debugging, use:


yum install -y --debuglevel 3 package-name

When managing CentOS servers at scale, manually confirming every YUM package installation becomes impractical. System administrators often need to automate software deployments without interactive prompts.

The simplest way to automate YUM confirmations is using the -y (or --assumeyes) flag:

yum install package-name -y

This tells YUM to assume "yes" for all prompts. For example:

yum install httpd -y

Combine with -q for quiet mode when running in scripts:

yum -q install nginx -y

For permanent automation, modify /etc/yum.conf:

assumeyes=1

Or create a custom config file in /etc/yum.conf.d/:

echo "assumeyes=1" > /etc/yum.conf.d/auto.conf

For complex scenarios requiring more control:

#!/usr/bin/expect -f
spawn yum install complicated-package
expect "Is this ok [y/d/N]"
send "y\r"
expect eof

Always include error checking in automation scripts:

yum install package -y || {
    echo "Installation failed"
    exit 1
}

Remember that automatic confirmations mean:

  • No chance to review package changes
  • Potential for unintended dependencies
  • Possible conflicts with existing packages