pastafari2/scripts/system/install_python.sh
2023-05-21 19:40:15 +02:00

117 lines
2.6 KiB
Bash

#!/bin/bash
sleep 1
echo '{"error": 0, "status": 0, "progress": 0, "no_progress":0, "message": "Installing Python..."}'
sleep 1
# Get distro version using lsb_release
DISTRO=`( lsb_release -ds || cat /etc/*release || uname -om ) 2>/dev/null | head -n1`
if [[ $DISTRO =~ ^Debian ]] || [[ $DISTRO =~ ^Ubuntu ]]; then
sudo apt-get update
apt install sudo
sudo apt-get -y install python3 python3-pip python3-venv libaugeas0
elif [[ $DISTRO =~ ^NAME=\"Arch ]]; then
pacman -Syu --noconfirm sudo
sudo pacman -S --noconfirm python python-pip sudo augeas python-virtualenv
elif [[ $DISTRO =~ ^NAME=\"Rocky ]]; then
dnf install -y sudo
sudo dnf upgrade -y
sudo dnf install -y python python-pip sudo augeas-libs
#Install EPEL
dnf config-manager --set-enabled crb
sudo dnf install -y \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
sudo dnf upgrade -y
elif [[ $DISTRO =~ ^Fedora ]]; then
dnf install -y sudo
sudo dnf upgrade -y
sudo dnf install -y python3 python3-pip sudo augeas-libs
else
echo "Sorry, Linux distro not supported"
exit 1;
fi
if [ $? -eq 0 ]; then
#echo "Installed python3 sucessfully if not error..."
echo '{"error": 0, "status": 0, "progress": 100, "no_progress":0, "message": "Installed python sucessfully..."}'
sleep 1
else
echo "Sorry, cannot install python..."
exit 1;
fi
echo '{"error": 0, "status": 0, "progress": 0, "no_progress":0, "message": "Installing distro package for python and detect distribution..."}'
sleep 1
sudo pip3 install distro
if [ $? -eq 0 ]; then
#echo "Installed python3 sucessfully if not error..."
echo '{"error": 0, "status": 0, "progress": 100, "no_progress":0, "message": "Installed distro python package sucessfully..."}'
sleep 1
else
echo "Sorry, cannot install distro python package..."
exit 1;
fi
sleep 1
# Install certbot for ssl operations with pip (independet of distro)
sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
sudo /opt/certbot/bin/pip install certbot certbot
echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
sudo ln -sf /opt/certbot/bin/certbot /usr/bin/certbot
if [ $? -eq 0 ]; then
#echo "Installed python3 sucessfully if not error..."
echo '{"error": 0, "status": 0, "progress": 100, "no_progress":0, "message": "Installed certbot package sucessfully..."}'
sleep 1
else
echo "Sorry, cannot install certbot python package..."
exit 1;
fi