From 02821b98746fceec17b743b5947786cd86daddf2 Mon Sep 17 00:00:00 2001 From: Daniel R Date: Mon, 13 May 2024 11:28:25 -0300 Subject: [PATCH] Agrega monitor --- libreofficeInstaller.sh | 401 ++++++++++++++++++++++++++++++++++++++++ monitor-libreoffice.sh | 162 ++++++++++++++++ 2 files changed, 563 insertions(+) create mode 100644 libreofficeInstaller.sh create mode 100644 monitor-libreoffice.sh diff --git a/libreofficeInstaller.sh b/libreofficeInstaller.sh new file mode 100644 index 0000000..07e7666 --- /dev/null +++ b/libreofficeInstaller.sh @@ -0,0 +1,401 @@ +#!/bin/bash +#Autor: Marcos Ferreira da Rocha +#Email: marcos.fr.rocha@gmail.com +#Blog: alfabech.com +#¿Dónde encontrar al creador del script?, Grupo de LibreOffice en Telegram https://t.me/libreofficebr, https://t.me/libreofficebrasil +#Versión: 1.0 +#Fecha: 18 de Mayo 2017 +#Versión en español: Daniel A. Rodriguez + + +exec >& >(tee -a /tmp/$(date +"%d-%m-%y"--%Hhoras:%mmin:%Sseg)-install-libreoffice.log) +export PATH="/usr/local/sbin:/usr/sbin:/sbin:/bin:/usr/games:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" + + + + if [ -e /usr/bin/dnf ]; then + #Archivo de aviso sobre el script + wget -c wget -c https://git.cuates.net/drodriguez/Instalacion-LibreOffice/raw/branch/main/README.md -P /tmp + FILE=/tmp/aviso + zenity --text-info --width=800 --height=600 \ + --title="Acerca de LibreOffice" \ + --filename=$FILE + + else + # zenity --text-info --html --width=800 --height=600 \ + # --title="Acerca de LibreOffice" \ + # --url=https://es.libreoffice.org/descarga/ +zenity --info --width=800 --height=600 --text=" +LibreOffice es ofrecido por TDF | The Document Fundation +https://www.documentfoundation.org/ \n + +https://es.libreoffice.org es el portal de la Comunidad Hispana. \n + +Este script descarga e instala LibreOffice directamente de los repositorios oficiales.\n +Es posible modificar lista de acuerdo con su necesidad, para ambientes corporativos sugerimos la creación de \n +un repositorio local para LibreOffice, asi como en este script.\n + +Invitamos a visitar la página del projeto ( LibreOffice ).\n +http://www.libreoffice.org/ +" + + fi +case $? in + 0) + echo "Iniciar Instalación" +#0 Definimos el repositorio estable. + estadoversion="stable" + +#1 ## Escogemos la versión de LibreOffice + vs=$(zenity --entry --title="Ingrese la versión" --text="versión:") + if [ $? == 0 ]; then +#2 Aqui se pode ingresar una lista de servidoes prefereridos para descargar LibreOFfice, con la posibilidad de ingresar un servidor local, ideal para ambientes empresariales + #En este caso utilicé el servidor de mi red con IP 192.168.0.193/tdf + + servidor=$(zenity --list --radiolist --width=450 --height=400 \ + --title="Escoja el servidor espejo" \ + --text="Selecione el servidor para realizar la descarga de los paquetes de LibreOffice" \ + --column="Selección" --column="Link" --column="Institución" \ + TRUE http://tdf.c3sl.ufpr.br "UFPR" \ + FALSE http://linorg.usp.br/LibreOffice "USP" \ + FALSE http://ftp.unicamp.br/pub "UNICAMP" \ + FALSE http://mirror.pop-sc.rnp.br/mirror/tdf "Pop-SC" \ + FALSE http://mirror.nexcess.net/tdf "Mirror Nexcess" \ + FALSE http://mirror.ufms.br/tdf "Mirror UFMS" \ + FALSE http://tdf.ufes.br "Mirror UFES" \ + FALSE 192.168.0.187/tdf "Servidor Local" ) + + if [ $? == 0 ]; then + +#3 Verificando el gestor de paquetes" + if [ -e "/bin/rpm" ]; then + gestorPaquetes=rpm + directorio=RPMS + else + gestorPaquetes=deb + directorio=DEBS + fi +#4 Verificando arquitetura del sistema" + if [ `getconf LONG_BIT` = "64" ] + then + plataforma=x86_64 + plataforma2=x86-64 + else + plataforma=x86 + plataforma2=x86 + fi + +#5 Seleccionando el idioma local + idioma=$(zenity --list --radiolist --width=450 --height=500 \ + --title="Seleccione el idioma local" \ + --column="Selección" --column="Cod. Idioma" --column="Idioma" \ + TRUE pt-BR "Portuguese (Brazil)" \ + FALSE am "Amharic - አማርኛ" \ + FALSE ar "Arabic - العربية " \ + FALSE ast "Asturian" \ + FALSE bg "Bulgarian (Bulsgaria) " \ + FALSE bn-IN "Bengali, India" \ + FALSE bn "Bengali" \ + FALSE bo "Tibetan Standard - བོད་ཡིག" \ + FALSE bs "Bosnian (Bosnia and Herzegovina)" \ + FALSE ca "Catalan" \ + FALSE cs "Czech" \ + FALSE da "Danish" \ + FALSE de "German" \ + FALSE dz "Dzgkha" \ + FALSE el "Greek" \ + FALSE en-US "English United Stats" \ + FALSE en-GB "English (United Kingdom)" \ + FALSE en-ZA "English (South Africa)" \ + FALSE eo "Esperanto" \ + FALSE es "Spanish" \ + FALSE et "Estian" \ + FALSE eu "Basque" \ + FALSE fi "Finnish" \ + FALSE fr "French" \ + FALSE gl "Galician" \ + FALSE gu "Gujarati" \ + FALSE he "Hebrew" \ + FALSE hi "Hindi" \ + FALSE hr "Croatian" \ + FALSE hu "Hungarian" \ + FALSE id "Indesian" \ + FALSE is "Icelandic" \ + FALSE it "Italian" \ + FALSE ja "Japanese" \ + FALSE ka "Georgian" \ + FALSE km "Khmer" \ + FALSE ko "Korean" \ + FALSE lo "Lao" \ + FALSE lt "Lithuanian" \ + FALSE lv "Latvian" \ + FALSE mk "FYRO Macedian" \ + FALSE nb "Norwegian (Bokm?l)" \ + FALSE ne "Nepali" \ + FALSE nl "Dutch" \ + FALSE nn "Norwegian Nynorsk" \ + FALSE om "Oromo" \ + FALSE pl "Polish" \ + FALSE pt "Portuguese" \ + FALSE ro "Romanian" \ + FALSE ru "Russian" \ + FALSE si "Sinhala; Sinhalese" \ + FALSE sid "Sidamo" \ + FALSE sk "Slovak" \ + FALSE sl "Slovenian" \ + FALSE sq "Albanian" \ + FALSE sv "Swedish" \ + FALSE ta "Tamil" \ + FALSE tg "Tajik" \ + FALSE tr "Turkish" \ + FALSE ug "Uyghur" \ + FALSE uk "Ukrainian" \ + FALSE vi "Vietnamese (Viet Nam)" \ + FALSE zh-CN "Chinese Simplified" \ + FALSE zh-TW "Chinese Traditial" ) + status=$? + if [ $status = 0 ] + then + + while true + do + resp=$(zenity --password --text "Ingrese su contraseña" --title "Autenticación") + +#5.1 Pega a senha de login gráfico + senha=$(echo "$resp" | cut -f1 -d'|') + ( + echo "1" ; sleep 1 + echo "# Creando directorios" ; sleep 1 +#5.2 # Passa a senha + echo $senha | sudo -S -u root zenity --info --width=300 --height=60 --text "Iniciando instalación\Guarde los trabajos abiertos en libreoffice y haga clic en OK" + + if ! [ -e /usr/bin/notify-send ]; then + + if [ -e /usr/bin/dnf ]; then + sudo -S dnf install notify-send -y + + elif [ -e /usr/bin/zypper ]; then + sudo -S zypper -n install notify-send + + elif [ -e /usr/bin/zypper ]; then + sudo -S zypper -n install notify-send + + elif [ -e /usr/bin/dpkg ]; then + sudo -S apt-get install notify-send -y + + else + echo "Gestor no encontrado" + fi + else + echo "notify-send ya instalado" + + fi + echo "5" ; sleep 1 + echo "# Creando directorios" ; sleep 1 +#5.3 # Creando directorio para bajar los paquetes de acuerdo con versión, gestor, arquitectura + mkdir -m 777 -p "/home/"$USER"/Descargas/libreoffice/"$estadoversion"/"$vs"/"$gestorPaquetes"/"$plataforma"" + destino="/home/"$USER"/Descargas/libreoffice/"$estadoversion"/"$vs"/"$gestorPaquetes"/"$plataforma"" + +#6 #Descargando LibreOffice + ##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Descargando paquetes' + + echo "10" ; sleep 1 + echo "# Descargando el paquete principal" ; sleep 1 + wget -c "$servidor"/libreoffice/"$estadoversion"/"$vs"/"$gestorPaquetes"/"$plataforma"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes".tar.gz -P "$destino" + + echo "20" ; sleep 1 + echo "# Descargando el paquete de ayuda" ; sleep 1 + wget -c "$servidor"/libreoffice/"$estadoversion"/"$vs"/"$gestorPaquetes"/"$plataforma"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes"_helppack_"$idioma".tar.gz -P "$destino" + +#7 # Verificando si hay necesidad de descarga el paquete de idioma, si se trata de inglés no es necesario. + if ! [ "$idioma" = "en-US" ] + then + echo "30" ; sleep 1 + echo "# Descargando el paquete de idioma" ; sleep 1 + wget -c "$servidor"/libreoffice/"$estadoversion"/"$vs"/"$gestorPaquetes"/"$plataforma"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes"_langpack_"$idioma".tar.gz -P "$destino" + else + exit 1 + fi + + echo "40" ; sleep 1 + echo "# Quitando versión anterior" ; sleep 1 +#8 #Verificando si el paquete principal LibreOffice fue bajado para dar continuidad al proceso, en caso afirmativo se realiza un test del gestor de paquetes para desinstalar la versión anterior de Libre Office. + ##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Removiendo versión anterior '$comparar-versao-instalada'. !' + if [ -e "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes".tar.gz ] + then + if [ -e /usr/bin/dnf ]; then + sudo -S dnf remove openoffice* libreoffice* -y + + elif [ -e /usr/bin/zypper ]; then + sudo -S zypper -n remove libreoffice[0-9]* + + elif [ -e /usr/bin/zypper ]; then + sudo -S zypper -n remove openoffice[0-9]* + + elif [ -e /usr/bin/dpkg ]; then + sudo -S apt-get remove --purge libreoffice[0-9]* -y + + else + echo "LibreOffice não encontrado, continuar instalación" + fi + +#9 # Descomprimimos los paquetes de LibreOffice + ##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Extrayendo paquetes' + + echo "50" ; sleep 1 + echo "# Descompactando el paquete principal" ; sleep 1 + + tar -xzf "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes".tar.gz -C /tmp + +#10 # Verificando la necesidad de instalar paquete de idioma + if ! [ "$idioma" = "en-US" ] + then + + echo "60" ; sleep 1 + echo "# Descompactando el paquete de idioma" ; sleep 1 + tar -xzf "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes"_langpack_"$idioma".tar.gz -C /tmp + else + exit 1 + fi + +#11 # Instalación del paquete de ayuda + echo "70" ; sleep 1 + echo "# Descompactando el paquete de ayuda" ; sleep 1 + tar -xzf "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes"_helppack_"$idioma".tar.gz -C /tmp + + # Aqui se instala el paquete principal de LibreOffice + +#12 #PAQUETE PRINCIPAL + ##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Instalando paquete principal' + tar -tzf "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes".tar.gz | cut -d '_' -f2 | uniq > /tmp/subversion + valorsubversion=$( /tmp/subversion + valorsubversion=$( /tmp/subversion + valorsubversion=$(/dev/null && exit + + ) | + zenity --progress --width=250 --height=100 \ + --title="LibreOffice ha sido instalado" \ + --text="Iniciando..." \ + --percentage=0 + + if [ "$?" = -1 ] ; then + zenity --error \ + --text="Instalación cancelada." + fi + + zenity --question --default-cancel --no-wrap --text 'LibreOffice ha sido instalado \n Haga clic enContinuar para activar el monitor de atualización. \n O Salir si no quiere hacerlo' --ok-label="Sair" --cancel-label="OK" + # Salir si se presionó cancelar. + (( $? == 1 || $? != 1 )) && + + + #Opción desactivada debido a la implantación del actualizador automático en el núcleo de LO + # zenity --question --text="Instalar el Monitor de Actualización" --ok-label="Si" --cancel-label="No" + # if [ $? = 0 ] ; then + + # if ! [ -e /usr/bin/monitor-libreoffice.sh ]; then + # sudo -S wget https://raw.githubusercontent.com/ferreirarocha/install-libreoffice/master/monitor-libreoffice.sh -P /usr/bin/ + + # sudo -S chmod +x /usr/bin/monitor-libreoffice.sh + + + # crontab -l | grep -q 'bash /usr/bin/monitor-libreoffice.sh' && echo '0' > /tmp/CRON || echo '1' > /tmp/CRON + + + # if [[ $(cat /tmp/CRON) == "1" ]]; then + + # (crontab -l ; echo "20 * * * * export DISPLAY=:0 && bash /usr/bin/monitor-libreoffice.sh") | crontab - ; exit 0 + + # else + # echo "Ya configurado" ; exit 0 + + # fi + + # exit 0 + + # (( $? )) && exit + # else + # exit 0 + # fi + + # else + # exit 0 + # fi + exit 0 + done + exit 0 + else + exit 0 + fi + else + exit 0 + fi + else + exit 0 + fi + ;; + 1) + echo "Instalación Cancelada" + ;; + -1) + echo "Algo inesperado ha ocurrido." + ;; +esac diff --git a/monitor-libreoffice.sh b/monitor-libreoffice.sh new file mode 100644 index 0000000..eb3df94 --- /dev/null +++ b/monitor-libreoffice.sh @@ -0,0 +1,162 @@ +#!/bin/sh +#data=date +exec >& >(tee -a /tmp/"$data"-logupdatelibreoffice.txt) +export PATH="/usr/local/sbin:/usr/sbin:/sbin:/bin:/usr/games:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" + + +#export DISPLAY=0.0 + +curl http://linorg.usp.br/LibreOffice/libreoffice/stable/ > /tmp/version1 +tail -4 /tmp/version1 > /tmp/version2 +head -1 /tmp/version2 > /tmp/version3 +cut -d= -f 5 /tmp/version3 > /tmp/version4 +cat /tmp/version4 | cut -c 2-6 > /tmp/libreoffice-ultima-version + +/usr/bin/libreoffice* --version > /tmp/version-instalada ; cat /tmp/version-instalada | cut -c 12-17 /tmp/version-instalada > /tmp/comparar-version-instalada + + sed 's/\.//g' /tmp/libreoffice-ultima-version > /tmp/Ultimaversion + sed 's/\.//g' /tmp/comparar-version-instalada > /tmp/versionLocal + + +value=`cat /tmp/Ultimaversion` +value2=`cat /tmp/versionLocal` + +if [ "$value" -gt "$value2" ]; + then + + + + #1 Variable definiendo que bajaremos LibreOffice del repositorio estable + + ## Escogiendo la versión de LibreOffice + + #2 Aqui pudee ingresar una lista de tus servidoes preferidos para bajar LibreOFfice, con la posibilidad de ingresar un servidor local, ideal para ambientes empresariales + #En este caso utilicé el servidor de mi rede con IP 192.168.50.122/tdf + + + #Escoge el servidor para descargar LibreOffice." + # "http://tdf.c3sl.ufpr.br" "UFPR " + # "http://linorg.usp.br/LibreOffice" "USP " + # "http://ftp.unicamp.br/pub" "UNICAMP " + # "http://mirror.pop-sc.rnp.br/mirror/tdf" "PoP-SC " + # "http://mirror.nexcess.net/tdf" "Mirror nexcess" + # "http://mirror.ufms.br/tdf" "Mirror UFMS" + # "http://tdf.ufes.br/" "Mirror UFES" + # "http://mirror.unesp.br/tdf" "Mirror Unesp" + # "192.168.50.122/tdf" "Servidor Local " + + + #3 Probando el gestor de paquetes" + + if [ -e /usr/bin/rpm ]; then + gestorPaquetes=rpm + directorio=RPMS + else + gestorPaquetes=deb + directorio=DEBS + fi + + #4 Verificando arquitetura del sistema" + + if [ `getconf LONG_BIT` = "64" ]; + then + plataforma=x86_64 + plataforma2=x86-64 + else + plataforma=x86 + plataforma2=x86 + fi + + #5 Escogiendo idioma local + servidor="192.168.0.187/tdf" + estadoversion="stable" + vs=`cat /tmp/libreoffice-ultima-version` + idioma="es" + # "Lista de idiomas diposnibles + + # "pt-BR" "Portuguese (Brazil)" + # "am" "Amharic - አማርኛ" + # "ar" "Arabic - العربية " + # "ast" "Asturian" + # "bg" "Bulgarian (Bulsgaria) " + # "bn-IN" "Bengali, India" + # "bn" "Bengali" + # "bo" "Tibetan Standard - བོད་ཡིག" + # "bs" "Bosnian (Bosnia and Herzegovina)" + # "ca" "Catalan" + # "cs" "Czech" + # "da" "Danish" + # "de" "German" + # "dz" "Dzongkha" + # "el" "Greek" + # "en-US" "English United Stats" + # "en-GB" "English (United Kingdom)" \ + # "en-ZA" "English (South Africa)" + # "eo" "Esperanto" + # "es" "Spanish" + # "et" "Estonian" + # "eu" "Basque" + # "fi" "Finnish" + # "fr" "French" + # "gl" "Galician" + # "gu" "Gujarati" + # "he" "Hebrew" + # "hi" "Hindi" + # "hr" "Croatian" + # "hu" "Hungarian" + # "id" "Indonesian" + # "is" "Icelandic" + # "it" "Italian" + # "ja" "Japanese" + # "ka" "Georgian" + # "km" "Khmer" + # "ko" "Korean" + # "lo" "Lao" + # "lt" "Lithuanian" + # "lv" "Latvian" + # "mk" "FYRO Macedonian" + # "nb" "Norwegian (Bokm?l)" + # "ne" "Nepali" + # "nl" "Dutch" + # "nn" "Norwegian Nynorsk" + # "om" "Oromo" + # "pl" "Polish" + # "pt" "Portuguese" + # "ro" "Romanian" + # "ru" "Russian" + # "si" "Sinhala; Sinhalese" + # "sid" "Sidamo" + # "sk" "Slovak" + # "sl" "Slovenian" + # "sq" "Albanian" + # "sv" "Swedish" + # "ta" "Tamil" + # "tg" "Tajik" + # "tr" "Turkish" + # "ug" "Uyghur" + # "uk" "Ukrainian" + # "vi" "Vietnamese (Viet Nam)" + # "zh-CN" "Chinese Simplified" + # "zh-TW" "Chinese Traditional" OFF 3>&1 1>&2 2>&3) + # status=$? + #touch /home/~/papeleraratemp + /usr/bin/zenity --question --text="La versión "$vs" está disponible, ¿desea actualizar?" --ok-label="Si" --cancel-label="No" + #xterm -title 'Actualizar LibreOffice' -e " read PASSWD ; echo "echo $PASSWD |pwd"" + + + if [ $? = 0 ]; + then + if [-e /usr/bin/dnf ]; then + xterm -e "bash /usr/bin/instalador-libreoffice.sh" && zenity --info --title "Atualización" --width=200 --height=100 --text 'LibreOffice fue actualizado haga clic en OK para salír' + elif [-e /usr/bin/zypper ]; then + xterm -e "sudo bash /usr/bin/instalador-libreoffice.sh" && zenity --info --title "Atualización" --width=200 --height=100 --text 'LibreOffice fue actualizado haga clic en OK para salír' + else + xterm -e "sudo bash /usr/bin/instalador-libreoffice.sh" && zenity --info --title "Atualización" --width=200 --height=100 --text 'LibreOffice fue actualizado haga clic en OK para salír' + fi + else + exit 1 + fi + +else + echo "tienes la versión más actual" > /var/log/backup.log +fi