Skip to content

Instantly share code, notes, and snippets.

@wezoalves
Last active January 24, 2024 19:24
Show Gist options
  • Save wezoalves/7144ba217f42c9021f0271837efe2d0a to your computer and use it in GitHub Desktop.
Save wezoalves/7144ba217f42c9021f0271837efe2d0a to your computer and use it in GitHub Desktop.
Install on Fedora39: httpd php python nodejs mysql-server mongodb redis nginx
#!/bin/bash
# Função para verificar se o pacote está instalado
is_package_installed() {
rpm -q "$1" &> /dev/null
}
# Função para exibir mensagem de sucesso
success_message() {
echo -e "\e[32m✔ $1 instalado com sucesso.\e[0m"
}
# Função para exibir mensagem de aviso
warning_message() {
echo -e "\e[33m⚠ $1 já está instalado.\e[0m"
}
# Função para instalar um pacote se ainda não estiver instalado
install_package() {
local package_name="$1"
local install_command="$2"
if ! is_package_installed "$package_name"; then
sudo dnf install -y "$package_name"
success_message "$package_name"
else
warning_message "$package_name"
fi
}
# Função para mostrar os programas instalados
show_installed() {
echo "Programas instalados:"
installed=("httpd" "php" "python" "nodejs" "mariadb-server" "mongodb" "redis" "nginx")
for program in "${installed[@]}"; do
if is_package_installed "$program"; then
echo -e "\e[32m✔ $program\e[0m"
else
echo -e "\e[31m✘ $program\e[0m"
fi
done
}
# Função para exibir o menu interativo
show_menu() {
echo "Linux - Fedora 39 - For Developer"
echo "Escolha quais linguagens e bancos de dados instalar ou exibir:"
}
# Variável para controlar a execução do script
running=true
# Loop principal
while [ "$running" = true ]; do
show_menu
options=("Apache" "PHP" "Python" "JavaScript" "MariaDB" "MongoDB" "Redis" "Nginx" "Mostrar Instalados" "Sair")
select opt in "${options[@]}"
do
case $opt in
"Apache")
install_package "httpd" "sudo systemctl start httpd && sudo systemctl enable httpd"
break
;;
"PHP")
install_package "php" "sudo systemctl restart httpd"
break
;;
"Python")
install_package "python" "sudo dnf install python3-pip && sudo dnf install python3-devel && sudo dnf install python3-vituralenv && sudo dnf install python-numpy && sudo dnf install python-pandas && sudo dnf install python-requests"
break
;;
"JavaScript")
install_package "nodejs" ""
break
;;
"MariaDB")
install_package "mariadb-server" "sudo systemctl start mariadb && sudo systemctl enable mariadb && sudo mysql_secure_installation"
break
;;
"MongoDB")
install_package "mongodb" "sudo systemctl start mongod && sudo systemctl enable mongod"
break
;;
"Redis")
install_package "redis" "sudo systemctl start redis && sudo systemctl enable redis"
break
;;
"Nginx")
install_package "nginx" "sudo systemctl start nginx && sudo systemctl enable nginx"
break
;;
"Mostrar Instalados")
show_installed
break
;;
"Sair")
echo "Saindo do script."
running=false
break
;;
*) echo "Opção inválida";;
esac
done
done
echo "Obrigado por usar o script!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment