From 53de62b179ed6f98b2e338396d71f2ef320f37fb Mon Sep 17 00:00:00 2001 From: Esteban Mackay Q Date: Thu, 17 Aug 2023 16:06:07 -0500 Subject: [PATCH] Update install.sh --- install.sh | 94 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 76 insertions(+), 18 deletions(-) diff --git a/install.sh b/install.sh index 6a585ba..d4e85d1 100644 --- a/install.sh +++ b/install.sh @@ -1,39 +1,97 @@ -#!/bin/sh +#!/bin/bash + +# Verificar si el usuario tiene permisos de root if [[ $EUID -ne 0 ]]; then - whiptail --title "FDMR+" --msgbox "Debe ejecutar este script como usuario ROOT" 0 50 - exit 0 + echo "Este script debe ejecutarse como usuario ROOT" + exit 1 fi -###################################################################################################################### -(crontab -l; echo "* */1 * * * sync ; echo 3 > /proc/sys/vm/drop_caches >/dev/null 2>&1")|awk '!x[$0]++'|crontab - -# apt-get upgrade -y -###################################################################################################################### -apps=("wget" "git" "sudo" "python3" "python3-pip" "python3-dev" "python3-venv" "libffi-dev" "libssl-dev" "cargo" "pkg-config" "sed" "default-libmysqlclient-dev" "libmysqlclient-dev" "build-essential" "zip" "unzip") + +# Actualizar la lista de paquetes una vez al principio +sudo apt-get update # Función para verificar e instalar una aplicación check_and_install() { app=$1 - if ! dpkg -s $app 2>/dev/null | grep -q "Status: install ok installed"; then + if ! dpkg -s $app >/dev/null 2>&1; then echo "$app no está instalado. Instalando..." - sudo apt-get install -y $app + sudo apt-get install $app -y echo "$app instalado correctamente." else - echo "$app ya está instalado." + echo "Verificando si hay actualizaciones para $app..." + available_version=$(apt-cache policy $app | grep 'Candidate' | awk '{print $2}') + current_version=$(dpkg -s $app | grep 'Version' | awk '{print $2}') + + if [ "$available_version" != "$current_version" ]; then + echo "Hay una versión actualizada de $app disponible. Actualizando..." + sudo apt-get install --only-upgrade $app -y + echo "$app actualizado correctamente." + else + echo "$app ya está instalado y actualizado." + fi fi } +# Lista de aplicaciones para verificar e instalar +apps=("wget" "git" "sudo" "python3-pip" "python3-distutils" "python3-twisted" "python3-bitarray" "python3-dev" "rrdtool" "openssl" "libssl-dev" "zip" "unzip") + # Verificar e instalar cada aplicación for app in "${apps[@]}"; do check_and_install $app done -############# -apt-get install python3-venv -y -python3 -m venv env0 -source env0/bin/activate -pip3 install --upgrade pip -pip install pyopenssl --upgrade + +# Verificar y actualizar python3-venv si no está instalado +if ! dpkg -s python3-venv >/dev/null 2>&1; then + echo "python3-venv no está instalado. Instalando..." + sudo apt-get install python3-venv -y + echo "python3-venv instalado correctamente." +fi + +# Crear y activar un entorno virtual +cd /opt/ +python3 -m venv myenv +source myenv/bin/activate + +# Instalar pip en el entorno virtual +wget https://bootstrap.pypa.io/pip/get-pip.py +python3 get-pip.py +rm get-pip.py + +# Instalar paquetes en el entorno virtual +sudo apt install -y libssl-dev +python3 -m pip install --no-cache-dir --upgrade pip setuptools +python3 -m pip install --no-cache-dir cryptography pyopenssl autobahn Twisted dmr_utils3 bitstring jinja2 markupsafe bitarray configparser aprslib attrs + +# Instalar Rust y configurar versión +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +source $HOME/.cargo/env + +rustup install 1.71.1 +rustup default 1.71.1 + +# Desactivar el entorno virtual deactivate -################## +# Crear archivo requirements.txt y instalar paquetes +cat <