Instalar ultimo libreoffice desde la web en debian/ubuntu
Este script es solo un ejemplo de bash avanzado, puede fallar si aunque sea se modifica algo en la url principal o dentro del código html.
#!/bin/bash
# Variables
CACHE_FOLDER=/tmp
DOWNLOAD_DIR=${CACHE_FOLDER}/Libreoffice
LIBREOFFICE_URL="https://download.documentfoundation.org/libreoffice/stable/"
VERSION=$(wget -qO- $LIBREOFFICE_URL | grep -oP '[0-9]+(\.[0-9]+)+' | sort -V | tail -1)
VERSION_INSTALLED=$(/usr/local/bin/libreoffice* --version 2>/dev/null | awk '{print $2}' )
#sudo find $DOWNLOAD_DIR -type f -name "*.tar.gz" -exec rm {} \; >/dev/null 2>&1
sudo find $DOWNLOAD_DIR -type f -name "*.deb" -exec rm {} \; >/dev/null 2>&1
#sudo rm -rf $DOWNLOAD_DIR >/dev/null 2>&1
# TODO remove this line
#export LANG=es_AR.UTF-8
# Detectar el idioma del sistema
LANGUAGE=$(echo $LANG | cut -d'_' -f1)
# Mensajes en español e inglés
if [ "$LANGUAGE" == "es" ]; then
LO_LANG=es
MSG_INSTALLED="LibreOffice está instalado. ---------------------------"
MSG_PROMPT="¿Quieres eliminar LibreOffice? (s/n): "
MSG_REMOVING="Eliminando LibreOffice. -------------------------------"
MSG_REMOVED="LibreOffice ha sido eliminado. ------------------------"
MSG_NOT_REMOVED="No se ha eliminado LibreOffice. -----------------------"
MSG_NOT_INSTALLED="LibreOffice no está instalado. ------------------------"
MSG_SAME_VER="No es necesario actualizar. Esta actualizado. ---------"
MSG_UPGRADE="Es necesario actualizar. ------------------------------"
ACCEPTED_REGEX="^[Ss]$"
MSG_DOWNLOADING="Descargando LibreOffice. ------------------------------"
MSG_UNCOMPRESSING="Descomprimiendo los archivos tar. ---------------------"
MSG_INSTALLING="Instalando LibreOffice y sus paquetes de lenguaje. ----"
MSG_OPENING="Abriendo todas las aplicaciones para probarlas. -------"
MSG_DONE="Se finalizó la instalación de Libreoffice $VERSION"
else
if [ "$LANGUAGE" == "de" ] || [ "$LANGUAGE" == "fr" ] || [ "$LANGUAGE" == "ja" ] || [ "$LANGUAGE" == "pl" ] \
|| [ "$LANGUAGE" == "ru" ] || [ "$LANGUAGE" == "ro" ] || [ "$LANGUAGE" == "it" ] || [ "$LANGUAGE" == "ko" ] \
|| [ "$LANGUAGE" == "gl" ] ; then
LO_LANG=$LANGUAGE
elif [ "$LANGUAGE" == "en" ] ; then
LO_LANG=""
else
LANG_LIST=$(wget -qO- ${LIBREOFFICE_URL}${VERSION}/deb/x86_64/ | grep -oP 'langpack_\K[^.]+(?=\.tar\.gz<)')
OPTIONS=()
for LANG in $LANG_LIST; do
OPTIONS+=("$LANG" "$LANG")
done
LO_LANG=$(whiptail --title "Select your language" --menu "Use the arrows and enter to select:" 20 60 10 "${OPTIONS[@]}" 3>&1 1>&2 2>&3)
fi
MSG_INSTALLED="LibreOffice is installed. -----------------------------"
MSG_PROMPT="Do you want to remove LibreOffice? (y/n): "
MSG_REMOVING="Removing LibreOffice. ---------------------------------"
MSG_REMOVED="LibreOffice has been removed. -------------------------"
MSG_NOT_REMOVED="LibreOffice was not removed. --------------------------"
MSG_NOT_INSTALLED="LibreOffice is not installed. -------------------------"
MSG_SAME_VER="Upgrade is not needed. It is up to date. --------------"
MSG_UPGRADE="Upgrade is needed. ------------------------------------"
ACCEPTED_REGEX="^[Yy]$"
MSG_DOWNLOADING="Downloading LibreOffice. ------------------------------"
MSG_UNCOMPRESSING="Uncompressing tar files. ------------------------------"
MSG_INSTALLING="Installing LibreOffice and its language pack. ---------"
MSG_OPENING="Opening all applications to test. ---------------------"
MSG_DONE="Installation done. Libreoffice $VERSION "
fi
# TODO remove this line
export LC_ALL=C LANGUAGE=C LANG=C
# Verificar si LibreOffice está instalado
dpkg -l | grep libreoffice &> /dev/null
if [ $? -eq 0 ]; then
echo "$MSG_INSTALLED"
dpkg -l | grep libreoffice
echo $VERSION_INSTALLED | grep $VERSION >/dev/null
if [ "$?" == "0" ] ; then
echo WEB "$VERSION" LOCAL "$VERSION_INSTALLED"
echo "$MSG_SAME_VER"
exit
else
echo WEB "$VERSION" LOCAL "$VERSION_INSTALLED"
echo "$MSG_UPGRADE"
fi
read -p "$MSG_PROMPT" respuesta
if [[ "$respuesta" =~ $ACCEPTED_REGEX ]]; then
echo "$MSG_REMOVING"
sudo apt-get remove --purge -y $(dpkg -l | awk '{print $2}' | grep ^libreoffice) >/dev/null
sudo apt-get autoremove -y >/dev/null
sudo apt-get clean >/dev/null 2>&1
echo "$MSG_REMOVED"
else
echo "$MSG_NOT_REMOVED"
fi
else
echo "$MSG_NOT_INSTALLED"
fi
echo "$MSG_DOWNLOADING"
sudo mkdir -p $DOWNLOAD_DIR >/dev/null 2>&1
sudo wget --show-progress -qN ${LIBREOFFICE_URL}${VERSION}/deb/x86_64/LibreOffice_${VERSION}_Linux_x86-64_deb.tar.gz -P $DOWNLOAD_DIR
if [ ! -z "$LO_LANG" ] ; then
sudo wget --show-progress -qN ${LIBREOFFICE_URL}${VERSION}/deb/x86_64/LibreOffice_${VERSION}_Linux_x86-64_deb_langpack_$LO_LANG.tar.gz -P $DOWNLOAD_DIR
sudo wget --show-progress -qN ${LIBREOFFICE_URL}${VERSION}/deb/x86_64/LibreOffice_${VERSION}_Linux_x86-64_deb_helppack_$LO_LANG.tar.gz -P $DOWNLOAD_DIR
fi
echo "$MSG_UNCOMPRESSING"
sudo tar -xzf $DOWNLOAD_DIR/LibreOffice_${VERSION}_Linux_x86-64_deb.tar.gz -C $DOWNLOAD_DIR
if [ ! -z "$LO_LANG" ] ; then
sudo tar -xzf $DOWNLOAD_DIR/LibreOffice_${VERSION}_Linux_x86-64_deb_langpack_$LO_LANG.tar.gz -C $DOWNLOAD_DIR
sudo tar -xzf $DOWNLOAD_DIR/LibreOffice_${VERSION}_Linux_x86-64_deb_helppack_$LO_LANG.tar.gz -C $DOWNLOAD_DIR
fi
echo "$MSG_INSTALLING"
sudo dpkg -i $(find $DOWNLOAD_DIR/ -type f -name \*.deb) >/dev/null 2>&1
sudo apt install --fix-broken -y >/dev/null 2>&1
<<'SKIPTHIS'
echo "$MSG_OPENING"
LANG=$LANG /usr/local/bin/libreoffice* --base >/dev/null 2>&1 &
sleep 2
LANG=$LANG /usr/local/bin/libreoffice* --calc >/dev/null 2>&1 &
sleep 2
LANG=$LANG /usr/local/bin/libreoffice* --draw >/dev/null 2>&1 &
sleep 2
LANG=$LANG /usr/local/bin/libreoffice* --impress >/dev/null 2>&1 &
sleep 2
LANG=$LANG /usr/local/bin/libreoffice* --math >/dev/null 2>&1 &
sleep 2
LANG=$LANG /usr/local/bin/libreoffice* --writer >/dev/null 2>&1 &
sleep 2
LANG=$LANG /usr/local/bin/libreoffice* >/dev/null 2>&1 &
SKIPTHIS
echo "$MSG_DONE"
dpkg -l | grep libreoffice
Las siguientes son versiones viejas
#!/bin/bash
#Optional remove any old libreoffice
#apt remove --purge libreoffice* && apt autoremove -y
echo "Downloading Libreoffice -------------------------------------"
# Variables
CACHE_FOLDER=/var/cache/apt/archives
LO_LANG=es # Idioma para la instalación
export LC_ALL=C LANGUAGE=C LANG=C
export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true
DOWNLOAD_DIR=${CACHE_FOLDER}/Libreoffice
LIBREOFFICE_URL="https://download.documentfoundation.org/libreoffice/stable/"
VERSION=$(wget -qO- $LIBREOFFICE_URL | grep -oP '[0-9]+(\.[0-9]+)+' | sort -V | tail -1)
mkdir -p $DOWNLOAD_DIR >/dev/null 2>&1
wget -qN ${LIBREOFFICE_URL}${VERSION}/deb/x86_64/LibreOffice_${VERSION}_Linux_x86-64_deb.tar.gz -P $DOWNLOAD_DIR
wget -qN ${LIBREOFFICE_URL}${VERSION}/deb/x86_64/LibreOffice_${VERSION}_Linux_x86-64_deb_langpack_$LO_LANG.tar.gz -P $DOWNLOAD_DIR
tar -xzf $DOWNLOAD_DIR/LibreOffice_${VERSION}_Linux_x86-64_deb.tar.gz -C $DOWNLOAD_DIR
tar -xzf $DOWNLOAD_DIR/LibreOffice_${VERSION}_Linux_x86-64_deb_langpack_$LO_LANG.tar.gz -C $DOWNLOAD_DIR
echo Installing LibreOffice and its language pack ----------------
dpkg -i $(find $DOWNLOAD_DIR/ -type f -name \*.deb)
apt install --fix-broken -y
echo LibreOffice \$VERSION installation done.
#!/bin/bash
inestable=no
if [ "$inestable" == "no" ]; then
filtro="-v"
else
filtro=""
fi
paquetes=$(dpkg -l | grep libreoffice | grep $filtro dev | awk '{print $2}')
if [ ! -z "$paquetes" ] ; then
echo Esto es lo que tenemos hoy dia
echo $paquetes
echo Limpiando todo
echo --desinstalando
sudo apt remove $paquetes
paquetes_restantes=$(dpkg -l | grep libreoffice | grep $filtro dev | awk '{print $2}')
if [ ! -z "$paquetes_restantes" ] ; then
echo --limpiando
sudo dpkg --purge $paquetes_restantes
fi
echo Listo
fi
#find /tmp/ -name "*?ibre?ffice*" -exec rm -rf {} \;
#padre base de la version
base_inestable0=libreoffice-24
#url base de dailys
base_inestable1=https://dev-builds.libreoffice.org/daily/
#hija base de la version
##TODO Esto seguramente haya que ponerle un tail o algo cuando hayan mas versiones 24
base_inestable2=$(curl -s $base_inestable1 | grep href | grep $base_inestable0 | cut -d "=" -f 7 | sed 's/\"//g' | cut -d "/" -f 1)
#archivo final
base_inestable3=$(curl -s ${base_inestable1}${base_inestable2}/Linux-rpm_deb-x86_64@tb99-TDF/current/ | grep x86-64_deb.tar.gz | sed 's/href/@/g' | cut -d '@' -f 3 | cut -d '"' -f 2)
#url final con archivo final
base_inestable4=${base_inestable1}${base_inestable2}/Linux-rpm_deb-x86_64@tb99-TDF/current/${base_inestable3}
#archivo lenguaje español
base_inestable5=$(curl -s ${base_inestable1}${base_inestable2}/Linux-rpm_deb-x86_64@tb99-TDF/current/ | grep Linux_x86-64_deb_langpack_es.tar.gz | sed 's/href/@/g' | cut -d '@' -f 2 | cut -d '"' -f 2)
base_inestable6=${base_inestable1}${base_inestable2}/Linux-rpm_deb-x86_64@tb99-TDF/current/${base_inestable5}
#COMENTADO PARA DEBUG SOLAMENTE
#echo $base_inestable4
#echo $base_inestable6
entusiasta=$(curl -s https://www.libreoffice.org/download/download-libreoffice/ | grep href=\'/download/download-libreoffice| head -n1 | cut -d \= -f 4 | cut -d \& -f 1)
estable=$(curl -s https://www.libreoffice.org/download/download-libreoffice/ | grep href=\'/download/download-libreoffice| head -n2 | cut -d \= -f 4 | cut -d \& -f 1 | tail -n1)
version=$estable
if [ "$inestable" == "no" ] ; then
echo La version parece ser $version
echo Descargandolo!!
wget --show-progress -qcO /tmp/LibreOffice.tar.gz https://download.documentfoundation.org/libreoffice/stable/${version}/deb/x86_64/LibreOffice_${version}_Linux_x86-64_deb.tar.gz #>/dev/null 2>&1
wget --show-progress -qcO /tmp/LibreOffice_es.tar.gz https://download.documentfoundation.org/libreoffice/stable/${version}/deb/x86_64/LibreOffice_${version}_Linux_x86-64_deb_langpack_es.tar.gz 2>&1 | grep tmp #>/dev/null 2>&1
else
echo La version inestable parece ser $base_inestable3
wget --show-progress -qcO /tmp/LibreOffice.tar.gz $base_inestable4
wget --show-progress -qcO /tmp/LibreOffice_es.tar.gz $base_inestable6
fi
echo Descomprimiendo
cd /tmp
tar xzvf /tmp/LibreOffice.tar.gz >/dev/null 2>&1
tar xzvf /tmp/LibreOffice_es.tar.gz >/dev/null 2>&1
echo Instalando
sudo su -c "apt --fix-broken install -y"
find /tmp/ -type f -name "*.deb" -exec chmod +x {} \; >/dev/null 2>&1
if [ "$inestable" == "no" ] ; then
sudo dpkg -i $(find /tmp/LibreOffice_${version}*_Linux_x86-64_deb/ -type f -name "*.deb")
sudo dpkg -i $(find /tmp/LibreOffice_${version}*_Linux_x86-64_deb_langpack_es/ -type f -name "*.deb")
else
sudo dpkg -i $(find /tmp/$(echo $base_inestable3 | sed 's/\.tar\.gz//g')/ -type f -name "*.deb")
sudo dpkg -i $(find /tmp/$(echo $base_inestable5 | sed 's/\.tar\.gz//g')/ -type f -name "*.deb")
fi
Instalar ultimo libreoffice desde la web en debian/ubuntu Read More »