Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tested script with RPM-based and Debian-based Distributions #94

Merged
merged 7 commits into from Jun 1, 2017

Check if package manager is installed in the environment or not

  • Loading branch information
root
root committed May 30, 2017
commit 734c5900f2fe8269a3fdb082a3b84d60af8d69ac
@@ -208,6 +208,14 @@ checkIfUserHasRootPrivileges()
fi
}

#check if package-manager is installed
checkIfPackageManagerIsInstalled()
{
if ! [ -x "$(command -v $1)" ]; then
logMsgToConfigSysLog "WARN" "WARN: Package manager(yum or apt-get) could not be found on your system. Please install it manually."
fi
}

#check if supported operating system
checkIfSupportedOS()
{
@@ -219,22 +227,27 @@ checkIfSupportedOS()
*"ubuntu"* )
echo "INFO: Operating system is Ubuntu."
PKG_MGR="apt-get"
checkIfPackageManagerIsInstalled $PKG_MGR
;;
*"red"* )
echo "INFO: Operating system is Red Hat."
PKG_MGR="yum"

This comment has been minimized.

@mostlyjason

mostlyjason May 19, 2017
Contributor

I'm surprised you don't just check for the presence of the yum command, instead of trying to hardcode it based on the distribution. I was just thinking it might be more flexible to different distribution names if you checked for the executable. If this way works you can keep it though unless @mchaudhary has any comment.

This comment has been minimized.

@Shwetajain148

Shwetajain148 May 25, 2017
Author Contributor

@mostlyjason, Usually, yum and apt-get package managers are already present on the respective systems. For safer side, I am working on to implement conditions to check for the presence of yum and apt-get commands then I will set the PKG_MGR accordingly. If yum or apt-get would not already present in the system then I will show an error message to install yum or apt-get and then exit the script execution.

checkIfPackageManagerIsInstalled $PKG_MGR
;;
*"centos"* )
echo "INFO: Operating system is CentOS."
PKG_MGR="yum"
checkIfPackageManagerIsInstalled $PKG_MGR
;;
*"debian"* )
echo "INFO: Operating system is Debian."
PKG_MGR="apt-get"
checkIfPackageManagerIsInstalled $PKG_MGR
;;
*"amazon"* )
echo "INFO: Operating system is Amazon AMI."
PKG_MGR="yum"
checkIfPackageManagerIsInstalled $PKG_MGR
;;
*"darwin"* )
#if the OS is mac then exit
@@ -573,20 +586,24 @@ if [ $LOGGLY_TLS_SENDING == "true" ]; then

/bin/bash -c "sudo $PKG_MGR install rsyslog-gnutls"

if [ $PKG_MGR == "yum" ]; then
if [ "$PKG_MGR" == "yum" ]; then

if [ $(rpm -qa | grep -c "rsyslog-gnutls") -eq 0 ]; then
logMsgToConfigSysLog "ERROR" ERROR: The rsyslog-gnutls package could not be installed automatically. Please install it and then run the script again. Manual instructions to configure rsyslog are available at https://www.loggly.com/docs/rsyslog-tls-configuration/. Rsyslog troubleshooting instructions are available at https://www.loggly.com/docs/troubleshooting-rsyslog/."
logMsgToConfigSysLog "ERROR" "ERROR: The rsyslog-gnutls package could not be installed automatically. Please install it and then run the script again. Manual instructions to configure rsyslog are available at https://www.loggly.com/docs/rsyslog-tls-configuration/. Rsyslog troubleshooting instructions are available at https://www.loggly.com/docs/troubleshooting-rsyslog/."
exit 1
fi


else [ $PKG_MGR == "apt-get" ];
elif [ "$PKG_MGR" == "apt-get" ]; then

if [ $(dpkg-query -W -f='${Status}' rsyslog-gnutls 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
logMsgToConfigSysLog "ERROR" ERROR: The rsyslog-gnutls package could not be installed automatically. Please install it and then run the script again. Manual instructions to configure rsyslog are available at https://www.loggly.com/docs/rsyslog-tls-configuration/. Rsyslog troubleshooting instructions are available at https://www.loggly.com/docs/troubleshooting-rsyslog/."
logMsgToConfigSysLog "ERROR" "ERROR: The rsyslog-gnutls package could not be installed automatically. Please install it and then run the script again. Manual instructions to configure rsyslog are available at https://www.loggly.com/docs/rsyslog-tls-configuration/. Rsyslog troubleshooting instructions are available at https://www.loggly.com/docs/troubleshooting-rsyslog/."
exit 1
fi
fi

else

logMsgToConfigSysLog "WARN" "WARN: The rsyslog-gnutls package could not be installed automatically. Please install it manually for your distribution and then run the script again."

fi
inputStr=$inputStrTls
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.