Agrega opciones Arch & Suse

This commit is contained in:
Daniel R 2024-05-17 08:45:44 -03:00
parent 34f17905dd
commit 36a8215b5a

View file

@ -43,10 +43,34 @@ case $? in
#0 Definimos el repositorio estable.
estadoversion="stable"
#1 ## Escogemos la versión de LibreOffice
#1 ## Instalamos dependencias
YUM_CMD=$(which yum)
APT_CMD=$(which apt)
PACMAN_CMD=$(which pacman)
ZYPPER_CMD=$(which zypper)
SUDO_CMD=$(which sudo)
if ! [ -e $SUDO_CMD ]; then
if [[ ! -z $APT_CMD ]]; then
apt install sudo -y
elif [[ ! -z $YUM_CMD ]]; then
dnf install sudo -y
elif [[ ! -z $PACMAN_CMD ]]; then
pacman -Sy sudo
elif [[ ! -z $ZYPPER_CMD ]]; then
zypper -n install sudo
fi
else
echo "Sudo está presente"
fi
#2 ## 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,
#3 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
@ -54,7 +78,7 @@ case $? in
--title="Escoja el servidor espejo" \
--text="Selecione el servidor para realizar la descarga de los paquetes de LibreOffice" \
--column="Selección" --column="Enlace" --column="Institución" \
TRUE http://tdf.c3sl.ufpr.br "UFPR" \
TRUE http://tdf.c3sl.ufpr.br "UFPR - BR" \
FALSE https://mirror.clarkson.edu/tdf/ "Clarkson - EEUU" \
FALSE https://mirror1.cs-georgetown.net/tdf/ "Georgetown - EEUU" \
FALSE https://ftp.osuosl.org/pub/tdf/ "Open Source Lab - EEUU" \
@ -66,7 +90,7 @@ case $? in
if [ $? == 0 ]; then
#3 Verificando el gestor de paquetes"
#4 Verificando el gestor de paquetes"
if [ -e "/bin/rpm" ]; then
gestorPaquetes=rpm
directorio=RPMS
@ -74,7 +98,7 @@ case $? in
gestorPaquetes=deb
directorio=DEBS
fi
#4 Verificando arquitetura del sistema"
#5 Verificando arquitetura del sistema"
if [ `getconf LONG_BIT` = "64" ]
then
plataforma=x86_64
@ -84,7 +108,7 @@ case $? in
plataforma2=x86
fi
#5 Seleccionando el idioma local
#6 Selección del idioma local
idioma=$(zenity --list --radiolist --width=450 --height=500 \
--title="Seleccione el idioma local" \
--column="Selección" --column="Cod. Idioma" --column="Idioma" \
@ -149,7 +173,7 @@ case $? in
FALSE tr "Turkish" \
FALSE ug "Uyghur" \
FALSE uk "Ukrainian" \
FALSE vi "Vietnamese (Viet Nam)" \
FALSE vi "Vietnamese (Vietnam)" \
FALSE zh-CN "Chinese Simplified" \
FALSE zh-TW "Chinese Traditial" )
status=$?
@ -160,29 +184,25 @@ case $? in
do
resp=$(zenity --password --text "Ingrese su contraseña" --title "Autenticación")
#5.1 Toma la contraseña de la IU
#6.1 Toma la contraseña de la IU
clave=$(echo "$resp" | cut -f1 -d'|')
(
echo "1" ; sleep 1
echo "# Creando directorios" ; sleep 1
#5.2 # Pasa la contraseña
#6.2 # Pasa la contraseña
echo $clave | sudo -S -u root zenity --info --width=300 --height=60 --text "Iniciando instalación \nGuarde los trabajos abiertos en LibreOffice y haga clic en Aceptar"
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
if [[ ! -z $APT_CMD ]]; then
apt install libnotify-bin -y
elif [[ ! -z $YUM_CMD ]]; then
dnf install libnotify -y
elif [[ ! -z $PACMAN_CMD ]]; then
pacman -Sy libnotify
elif [[ ! -z $ZYPPER_CMD ]]; then
zypper -n install notify-send
else
echo "Gestor no encontrado"
fi
else
@ -192,11 +212,11 @@ case $? in
echo "5" ; sleep 1
echo "# Creando directorios" ; sleep 1
#5.3 # Creando directorio para bajar los paquetes de acuerdo con versión, gestor, arquitectura
#6.3 # Creando directorio para bajar los paquetes de acuerdo con versión, gestor, arquitectura
mkdir -p "/home/"$USER"/Descargas/libreoffice/"$estadoversion"/"$vs"/"$gestorPaquetes"/"$plataforma""
destino="/home/"$USER"/Descargas/libreoffice/"$estadoversion"/"$vs"/"$gestorPaquetes"/"$plataforma""
#6 #Descargando LibreOffice
#7 #Descargando LibreOffice
##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Descargando paquetes'
echo "10" ; sleep 1
@ -207,7 +227,7 @@ case $? in
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.
#8 # 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
@ -219,27 +239,24 @@ case $? in
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 LibreOffice.
#9 #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 LibreOffice.
##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Removiendo versión anterior '$comparar-version-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 libreoffice[0-9]* -y
if [[ ! -z $APT_CMD ]]; then
sudo -S apt remove libreoffice* -y
elif [[ ! -z $YUM_CMD ]]; then
sudo -S dnf remove libreoffice* -y
elif [[ ! -z $PACMAN_CMD ]]; then
sudo -S pacman -Rn libreoffice*
elif [[ ! -z $ZYPPER_CMD ]]; then
sudo -S zypper -n remove libreoffice*
else
echo "LibreOffice no encontrado, continuar instalación"
fi
#9 # Descomprimimos los paquetes de LibreOffice
#10 # Descomprimimos los paquetes de LibreOffice
##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Extrayendo paquetes'
echo "50" ; sleep 1
@ -247,7 +264,7 @@ case $? in
tar -xzf "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes".tar.gz -C /tmp
#10 # Verificando la necesidad de instalar paquete de idioma
#11 # Verificando la necesidad de instalar paquete de idioma
if ! [ "$idioma" = "en-US" ]
then
@ -258,14 +275,14 @@ case $? in
exit 1
fi
#11 # Instalación del paquete de ayuda
#12 # 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
#13 #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)
@ -273,14 +290,14 @@ case $? in
echo "75" ; sleep 1
echo "# Instalando el paquete principal " ; sleep 1
if [ -e /usr/bin/dpkg ]; then
if [ -e $APT_CMD ]; then
sudo -S apt install /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"/"$directorio"/*
else
sudo -S rpm -Uvh /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"/"$directorio"/*
sudo -S dnf install /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"/"$directorio"/*
fi
#13 ##Instalación del PAQUETE DE IDIOMA
#14 ##Instalación del PAQUETE DE IDIOMA
##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Instalando paquetes de idioma'
if ! [ "$idioma" = "en-US" ]
then
@ -290,10 +307,10 @@ case $? in
echo "80" ; sleep 1
echo "# Instalando el paquete de idioma" ; sleep 1
if [ -e /usr/bin/dpkg ]; then
sudo -S dpkg -i /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"_langpack_"$idioma"/"$directorio"/*
if [ -e $APT_CMD ]; then
sudo -S apt install /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"_langpack_"$idioma"/"$directorio"/*
else
sudo -S rpm -Uvh /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"_langpack_"$idioma"/"$directorio"/*
sudo -S dnf install /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"_langpack_"$idioma"/"$directorio"/*
fi
else
@ -308,10 +325,10 @@ case $? in
valorsubversion=$(</tmp/subversion)
rm subversion
if [ -e /usr/bin/dpkg ]; then
sudo -S dpkg -i /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"_helppack_"$idioma"/"$directorio"/*
if [ -e $APT_CMD ]; then
sudo -S apt install /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"_helppack_"$idioma"/"$directorio"/*
else
sudo -S rpm -Uvh /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"_helppack_"$idioma"/"$directorio"/*
sudo -S dnf install /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"_helppack_"$idioma"/"$directorio"/*
fi
else
exit 1
@ -325,9 +342,9 @@ case $? in
if [ -n "$(ls -A /opt/libreoffic* )" ]
then
notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Instalación concluída !'
notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Instalación concluída'
else
notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'No instalado !'
notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'No instalado'
fi
1 2>/dev/null && exit
@ -343,7 +360,7 @@ case $? in
--text="Instalación cancelada."
fi
zenity --question --default-cancel --no-wrap --text 'LibreOffice ha sido instalado \n Haga clic en Aceptar para activar el monitor de atualización. \n O Salir si no quiere hacerlo' --ok-label="Aceptar" --cancel-label="Salir"
zenity --question --default-cancel --no-wrap --text 'LibreOffice ha sido instalado \nHaga clic en Aceptar para activar el monitor de atualización. \n O Salir si no quiere hacerlo' --ok-label="Aceptar" --cancel-label="Salir"
# Salir si se presionó cancelar.
(( $? == 1 || $? != 1 )) &&