diff --git a/easy-fdmr.sh b/easy-fdmr.sh index 8007f14..a41840c 100644 --- a/easy-fdmr.sh +++ b/easy-fdmr.sh @@ -1,4 +1,11 @@ #!/bin/bash + +# Verificar si el usuario tiene permisos de root +if [[ $EUID -ne 0 ]]; then + echo "Este script debe ejecutarse como usuario ROOT" + exit 1 +fi + # Actualizar la lista de paquetes una vez al principio sudo apt-get update @@ -25,7 +32,7 @@ check_and_install() { } # Lista de aplicaciones para verificar e instalar -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" "python3-distutils" "python3-twisted" "python3-bitarray" "rrdtool" "openssl" "mariadb-server" "php" "libapache2-mod-php" "php-zip" "php-mbstring" "php-cli" "php-common" "php-curl" "php-xml" "php-mysql") +apps=("git" "make" "build-essential" "libusb-1.0-0-dev" "python" "python3" "python3-pip" "chkconfig" "git-core" "libi2c-dev" "i2c-tools" "lm-sensors" "python3-websockets" "python3-gpiozero" "python3-psutil" "python3-serial" "wget" "sudo" "python3-dev" "python3-venv" "libffi-dev" "libssl-dev" "cargo" "pkg-config" "sed" "default-libmysqlclient-dev" "libmysqlclient-dev" "build-essential" "zip" "unzip" "python3-distutils" "python3-twisted" "python3-bitarray" "rrdtool" "openssl" "wavemon" "gcc" "g++" "cmake" "libasound2-dev" "libudev-dev" "gpsd" "libgps-dev" "gpsd-clients" "gpsd-tools" "chrony") # Verificar e instalar cada aplicación for app in "${apps[@]}"; do @@ -52,7 +59,7 @@ 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 +python3 -m pip install --no-cache-dir --upgrade cryptography pyopenssl autobahn Twisted dmr_utils3 bitstring jinja2 MarkupSafe bitarray configparser aprslib attrs wheel service_identity pyOpenSSL mysqlclient tinydb ansi2html mysql-connector-python pandas xlsxwriter cursor pynmea2 maidenhead flask folium mysql-connector resettabletimer setproctitle requests libscrc Pyro5 # Instalar Rust y configurar versión curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y @@ -61,46 +68,19 @@ source $HOME/.cargo/env rustup install 1.71.1 rustup default 1.71.1 -pip install --no-cache-dir --upgrade bitstring -pip install --no-cache-dir --upgrade bitarray -pip install --no-cache-dir --upgrade Twisted -pip install --no-cache-dir --upgrade dmr_utils3 -pip install --no-cache-dir --upgrade configparser -pip install --no-cache-dir --upgrade aprslib -pip install --no-cache-dir --upgrade pynmea2 -pip install --no-cache-dir --upgrade maidenhead -pip install --no-cache-dir --upgrade flask -pip install --no-cache-dir --upgrade folium -pip install --no-cache-dir --upgrade mysql-connector -pip install --no-cache-dir --upgrade mysql-connector-python -pip install --no-cache-dir --upgrade resettabletimer -pip install --no-cache-dir --upgrade setproctitle -pip install --no-cache-dir --upgrade requests -pip install --no-cache-dir --upgrade libscrc -pip install --no-cache-dir --upgrade cryptography -pip install --no-cache-dir --upgrade pyopenssl -pip install --no-cache-dir --upgrade autobahn -pip install --no-cache-dir --upgrade jinja2 -pip install --no-cache-dir --upgrade MarkupSafe -pip install --no-cache-dir --upgrade attrs -pip install --no-cache-dir --upgrade setuptools -pip install --no-cache-dir --upgrade wheel -pip install --no-cache-dir --upgrade service_identity -pip install --no-cache-dir --upgrade pyOpenSSL -pip install --no-cache-dir --upgrade mysqlclient -pip install --no-cache-dir --upgrade tinydb -pip install --no-cache-dir --upgrade ansi2html -pip install --no-cache-dir --upgrade mysql-connector-python -pip install --no-cache-dir --upgrade pandas -pip install --no-cache-dir --upgrade xlsxwriter -pip install --no-cache-dir --upgrade cursor -pip install --no-cache-dir --upgrade Pyro5 -#EOF +# Crear archivo requirements.txt y instalar paquetes +#cat </dev/null 2>&1; then - echo "$app no está instalado. Instalando..." - sudo apt-get install $app -y - echo "$app instalado correctamente." - else - 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" "python3-pip" "python3-dev" "python3-venv" "libffi-dev" "libssl-dev" "cargo" "pkg-config" "sed" "default-libmysqlclient-dev" "libmysqlclient-dev" "build-essential" "zip" "unzip" "python3-distutils" "python3-twisted" "python3-bitarray" "rrdtool" "openssl" "mariadb-server" "php" "libapache2-mod-php" "php-zip" "php-mbstring" "php-cli" "php-common" "php-curl" "php-xml" "php-mysql") - -# Verificar e instalar cada aplicación -for app in "${apps[@]}"; do - check_and_install $app -done - -# 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 - ############## cd / @@ -562,96 +500,6 @@ if [[ $EUID -ne 0 ]]; then exit 1 fi -# 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 >/dev/null 2>&1; then - echo "$app no está instalado. Instalando..." - sudo apt-get install $app -y - echo "$app instalado correctamente." - else - 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" "python3-pip" "python3-dev" "python3-venv" "libffi-dev" "libssl-dev" "cargo" "pkg-config" "sed" "default-libmysqlclient-dev" "libmysqlclient-dev" "build-essential" "zip" "unzip" "python3-distutils" "python3-twisted" "python3-bitarray" "rrdtool" "openssl" "mariadb-server" "php" "libapache2-mod-php" "php-zip" "php-mbstring" "php-cli" "php-common" "php-curl" "php-xml" "php-mysql") - -# Verificar e instalar cada aplicación -for app in "${apps[@]}"; do - check_and_install $app -done - -# 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 </dev/null 2>&1; then - echo "$app no está instalado. Instalando..." - sudo apt-get install $app -y - echo "$app instalado correctamente." - else - 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" "python3-pip" "python3-dev" "python3-venv" "libffi-dev" "libssl-dev" "cargo" "pkg-config" "sed" "default-libmysqlclient-dev" "libmysqlclient-dev" "build-essential" "zip" "unzip" "python3-distutils" "python3-twisted" "python3-bitarray" "rrdtool" "openssl" "mariadb-server" "php" "libapache2-mod-php" "php-zip" "php-mbstring" "php-cli" "php-common" "php-curl" "php-xml" "php-mysql") - -# Verificar e instalar cada aplicación -for app in "${apps[@]}"; do - check_and_install $app -done - -# 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 </dev/null 2>&1