ZaLinux.ru

Простой способ установки самой новой версии LibreOffice на Linux

Кратко введу в курс дела, если кто-то не знает. LibreOffice на Linux есть. Причём на большинстве популярных дистрибутивов он уже предустановлен. Там, где не предустановлен, его легко можно поставить в одну команду из репозитория вашего дистрибутива или через графический интерфейс. Так в чём проблема? Проблема в том, что почти всегда версия LibreOffice в репозиториях отстаёт от актуальной выпущенной версии.

Установить самую новую версию LibreOffice на Linux не сложно. Можно скачать архив с бинарными файлами с официального сайта, распаковать его и установить необходимые программы. Тем не менее, получается, что мы совсем не используем мощь UNIX: вручную что-то скачиваем, что-распаковываем и т. д. А ведь все эти операции можно автоматизировать. И вместо того чтобы сидеть клацать мышкой, заняться чем-нибудь полезным во время установки LibreOffice.

В общем, я сделал одну команду для автоматизации процесса. Эта команда подходит для Debian / Ubuntu / Mint / Kali Linux.

Эта команда делает:

  • удаляет предыдущую версию LibreOffice
  • проверяет на официальном сайте самую свежую версию LibreOffice
  • скачивает её
  • скачивает языковой файл (для русского языка)
  • распаковывает оба архива
  • всё устанавливает (и LibreOffice и языковые файлы)
  • удаляет после себя два скаченных архива и два каталога, появившихся после распаковки

Просьба к тем, кто попробовал — напишите в комментариях о ваших успехах, есть ли какие-то замечания к команде и т.д. Особенно интересует опыт владельцев 32-битных ОС.

Чтобы установить LibreOffice на Linux достаточно в командную строку скопировать одну команду (64-битные системы):

sudo apt-get purge libreoffice? -y && cd /tmp/ && (t=`curl -s -L http://www.libreoffice.org/download/ | grep -E -o 'Download Version [0-9]{1}.[0-9]{1}(|.[0-9]{1})</a>' | sed 's/Download Version //' | sed 's/<\/a>//'`; tt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86_64/LibreOffice_"$t"_Linux_x86-64_deb.tar.gz; wget $tt && tar zxvf LibreOffice_"$t"_Linux_x86-64_deb.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*; ttt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86_64/LibreOffice_"$t"_Linux_x86-64_deb_langpack_ru.tar.gz; wget $ttt && tar zxvf LibreOffice_"$t"_Linux_x86-64_deb_langpack_ru.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*;) && cd ~

Для 32-битных систем:

sudo apt-get purge libreoffice? -y && cd /tmp/ && (t=`curl -s -L http://www.libreoffice.org/download/ | grep -E -o 'Download Version [0-9]{1}.[0-9]{1}(|.[0-9]{1})</a>' | sed 's/Download Version //' | sed 's/<\/a>//'`; tt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86/LibreOffice_"$t"_Linux_x86_deb.tar.gz; wget $tt && tar zxvf LibreOffice_"$t"_Linux_x86_deb.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*; ttt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86/LibreOffice_"$t"_Linux_x86_deb_langpack_ru.tar.gz; wget $ttt && tar zxvf LibreOffice_"$t"_Linux_x86_deb_langpack_ru.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*;) && cd ~

Если у вас LibreOffice не установлен (например, в Kali Linux), то достаточно этой команды (64-битные системы):

cd /tmp/ && (t=`curl -s -L http://www.libreoffice.org/download/ | grep -E -o 'Download Version [0-9]{1}.[0-9]{1}(|.[0-9]{1})</a>' | sed 's/Download Version //' | sed 's/<\/a>//'`; tt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86_64/LibreOffice_"$t"_Linux_x86-64_deb.tar.gz; wget $tt && tar zxvf LibreOffice_"$t"_Linux_x86-64_deb.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*; ttt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86_64/LibreOffice_"$t"_Linux_x86-64_deb_langpack_ru.tar.gz; wget $ttt && tar zxvf LibreOffice_"$t"_Linux_x86-64_deb_langpack_ru.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*;) && cd ~

Для 32-битных систем:

cd /tmp/ && (t=`curl -s -L http://www.libreoffice.org/download/ | grep -E -o 'Download Version [0-9]{1}.[0-9]{1}(|.[0-9]{1})</a>' | sed 's/Download Version //' | sed 's/<\/a>//'`; tt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86/LibreOffice_"$t"_Linux_x86_deb.tar.gz; wget $tt && tar zxvf LibreOffice_"$t"_Linux_x86_deb.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*; ttt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86/LibreOffice_"$t"_Linux_x86_deb_langpack_ru.tar.gz; wget $ttt && tar zxvf LibreOffice_"$t"_Linux_x86_deb_langpack_ru.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*;) && cd ~

В меню LibreOffice может появиться не сразу, а после перезапуска графической оболочки (после перезагрузки компьютера).

Для удаления LibreOffice, установленной как в ручном режиме, так и из репозиториев:

sudo apt-get purge libreoffice? -y

Следующий скрипт самостоятельно проверит последнюю версию LibreOffice и сравнит её с той, которая установлена. Если установлена уже самая свежая версия, то скрипт просто завершит работу. Если имеется более свежая версия, то программа выведет соответствующее сообщение и замрёт на 10 секунд. Если не хотите обновляться, то за это время нужно нажать Ctrl+C. В противном случае через 10 секунд программа начнёт удалять старую версию и устанавливать новую. Скопируйте текст программы в TestLO.sh. Запускать так:

bash TestLO.sh

Для 64-битных систем:

#!/bin/bash  
 
if [ "`which soffice`" ]; then 
    t1=`soffice --headless --version | grep -Eo '[0-9]+[.][0-9]+[.][0-9]+'`
    echo "Установлена версия: $t1"
    temp="$(curl -s -L http://www.libreoffice.org/download/)"
    if [ $? -ne '0' ]; then
        exit 1
    fi
    t2=`echo "${temp}" | grep -E -o 'Download Version [0-9]{1}.[0-9]{1}(|.[0-9]{1})</a>' | sed 's/Download Version //' | sed 's/<\/a>//'`
    echo "Самая новая версия: $t2"
    temp="$(curl -s -L http://www.libreoffice.org/download/pre-releases/)"
    if [ $? -ne '0' ]; then
        exit 1
    fi
    ttrue=`echo "${temp}" | grep -E -o '/download/libreoffice(.)*/\?version=[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}">LibreOffice[A-Za-z0-9. ]*</a>' | grep -o -E '>(.)*<' | sed 's/>LibreOffice//' | sed 's/<//'| head -n 1`
    echo "Самая новая предварительная версия: $ttrue"
 
    if [ "$t1" == "$t2" ]; then
        echo 'Нечего делать, выходим'
    else
        echo 'Начинается обновление. Для отмены нажмите Ctrl+C прямо сейчас!'
        sleep 10
        sudo apt-get purge libreoffice? -y && cd /tmp/ && (t=`curl -s -L http://www.libreoffice.org/download/ | grep -E -o 'Download Version [0-9]{1}.[0-9]{1}(|.[0-9]{1})</a>' | sed 's/Download Version //' | sed 's/<\/a>//'`; tt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86_64/LibreOffice_"$t"_Linux_x86-64_deb.tar.gz; wget $tt && tar zxvf LibreOffice_"$t"_Linux_x86-64_deb.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*; ttt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86_64/LibreOffice_"$t"_Linux_x86-64_deb_langpack_ru.tar.gz; wget $ttt && tar zxvf LibreOffice_"$t"_Linux_x86-64_deb_langpack_ru.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*;) && cd ~
 
    fi
 
else
    echo 'Программа ещё не установлена. LibreOffice будет установлена, для отмены нажмите Ctrl+C прямо сейчас!'
    sleep 10
    cd /tmp/ && (t=`curl -s -L http://www.libreoffice.org/download/ | grep -E -o 'Download Version [0-9]{1}.[0-9]{1}(|.[0-9]{1})</a>' | sed 's/Download Version //' | sed 's/<\/a>//'`; tt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86_64/LibreOffice_"$t"_Linux_x86-64_deb.tar.gz; wget $tt && tar zxvf LibreOffice_"$t"_Linux_x86-64_deb.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*; ttt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86_64/LibreOffice_"$t"_Linux_x86-64_deb_langpack_ru.tar.gz; wget $ttt && tar zxvf LibreOffice_"$t"_Linux_x86-64_deb_langpack_ru.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*;) && cd ~
 
fi

Для 32-битных систем:

#!/bin/bash  
 
if [ "`which soffice`" ]; then 
    t1=`soffice --headless --version | grep -Eo '[0-9]+[.][0-9]+[.][0-9]+'`
    echo "Установлена версия: $t1"
    temp="$(curl -s -L http://www.libreoffice.org/download/)"
    if [ $? -ne '0' ]; then
        exit 1
    fi
    t2=`echo "${temp}" | grep -E -o 'Download Version [0-9]{1}.[0-9]{1}(|.[0-9]{1})</a>' | sed 's/Download Version //' | sed 's/<\/a>//'`
    echo "Самая новая версия: $t2"
    temp="$(curl -s -L http://www.libreoffice.org/download/pre-releases/)"
    if [ $? -ne '0' ]; then
        exit 1
    fi
    ttrue=`echo "${temp}" | grep -E -o '/download/libreoffice(.)*/\?version=[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}">LibreOffice[A-Za-z0-9. ]*</a>' | grep -o -E '>(.)*<' | sed 's/>LibreOffice//' | sed 's/<//'| head -n 1`
    echo "Самая новая предварительная версия: $ttrue"
 
    if [ "$t1" == "$t2" ]; then
        echo 'Нечего делать, выходим'
    else
        echo 'Начинается обновление. Для отмены нажмите Ctrl+C прямо сейчас!'
        sleep 10
        sudo apt-get purge libreoffice? -y && cd /tmp/ && (t=`curl -s -L http://www.libreoffice.org/download/ | grep -E -o 'Download Version [0-9]{1}.[0-9]{1}(|.[0-9]{1})</a>' | sed 's/Download Version //' | sed 's/<\/a>//'`; tt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86/LibreOffice_"$t"_Linux_x86_deb.tar.gz; wget $tt && tar zxvf LibreOffice_"$t"_Linux_x86_deb.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*; ttt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86/LibreOffice_"$t"_Linux_x86_deb_langpack_ru.tar.gz; wget $ttt && tar zxvf LibreOffice_"$t"_Linux_x86_deb_langpack_ru.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*;) && cd ~
 
    fi
 
else
    echo 'Программа ещё не установлена. LibreOffice будет установлена, для отмены нажмите Ctrl+C прямо сейчас!'
    sleep 10
    cd /tmp/ && (t=`curl -s -L http://www.libreoffice.org/download/ | grep -E -o 'Download Version [0-9]{1}.[0-9]{1}(|.[0-9]{1})</a>' | sed 's/Download Version //' | sed 's/<\/a>//'`; tt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86/LibreOffice_"$t"_Linux_x86_deb.tar.gz; wget $tt && tar zxvf LibreOffice_"$t"_Linux_x86_deb.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*; ttt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86/LibreOffice_"$t"_Linux_x86_deb_langpack_ru.tar.gz; wget $ttt && tar zxvf LibreOffice_"$t"_Linux_x86_deb_langpack_ru.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*;) && cd ~
 
fi

Рекомендуемые статьи:

6 Комментарии

  1. pavlik

    Напишите пожалуйста для 32-х разрядной системы для Kali linux

    1. Alexey (Автор записи)

      Приветствую! В настоящее время Kali Linux является дистрибутивом с плавающим релизом (rolling release). Т.е. теперь обновление программ происходит намного оперативнее. В частности, обновление LibreOffice опаздывает по сравнению с выходом версий на официальном сайте где-то всего на 1-2 месяца. Вот здесь можно посмотреть обновление пакета LibreOffice: http://pkg.kali.org/pkg/libreoffice. Примерно раз в две недели появляется что-то новое, в том числе релиз кандидаты. Т.е. в Kali Linux не нужно использовать команды из этой заметки, лучше установить версию из репозитория, которая автоматически будет обновляться. Установленная этой командой версия может быть обновлена только вручную!

      Если я вас не убедил, то вот команды для установки вручную на 32-битные системы. Если LibreOffice уже установлен:

      sudo apt-get purge libreoffice? -y && cd /tmp/ && (t=`curl -s -L http://www.libreoffice.org/download/ | grep -E -o 'Download Version [0-9]{1}.[0-9]{1}(|.[0-9]{1})</a>' | sed 's/Download Version //' | sed 's/<\/a>//'`; tt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86/LibreOffice_"$t"_Linux_x86_deb.tar.gz; wget $tt && tar zxvf LibreOffice_"$t"_Linux_x86_deb.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*; ttt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86/LibreOffice_"$t"_Linux_x86_deb_langpack_ru.tar.gz; wget $ttt && tar zxvf LibreOffice_"$t"_Linux_x86_deb_langpack_ru.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*;) && cd ~

      Если ещё не установлен:

      cd /tmp/ && (t=`curl -s -L http://www.libreoffice.org/download/ | grep -E -o 'Download Version [0-9]{1}.[0-9]{1}(|.[0-9]{1})</a>' | sed 's/Download Version //' | sed 's/<\/a>//'`; tt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86/LibreOffice_"$t"_Linux_x86_deb.tar.gz; wget $tt && tar zxvf LibreOffice_"$t"_Linux_x86_deb.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*; ttt=http://download.documentfoundation.org/libreoffice/stable/$t/deb/x86/LibreOffice_"$t"_Linux_x86_deb_langpack_ru.tar.gz; wget $ttt && tar zxvf LibreOffice_"$t"_Linux_x86_deb_langpack_ru.tar.gz; cd LibreOffice_"$t"* && sudo dpkg -i DEBS/*.deb && cd .. && rm -rf LibreOffice_*;) && cd ~

       

      1. Pavlik

        Огромное вам спасибо все получилось!!!

        Все предыдущие попытки такого рода как :

        sudo apt-get install libreoffice

        или

        apt-get install libreoffice -y

        и т.д…

        выдавали ошибки и с репозиториями и со связями…

        Как быть дальше? Обновлять вручную? Если ДА то как?

        Подозреваю что если бы это была не Kali, то никаких бы плясок с бубном небыло бы? Репозитории после установки Kali восстанавливал вот этим:

        echo -e "deb http://http.kali.org/kali sana main non-free contribndeb http://security.kali.org/kali-security/ sana/updates main contrib non-free" > /etc/apt/sources.list
        
        1. Alexey (Автор записи)

          Я дополнил заметку двумя большими скриптами. Один из них сохраните, например, на рабочий стол или ещё куда-нибудь и запускайте время от времени. Программа будет проверять, появилась ли новая версия, и если появилась, то будет обновлять.

          Странно, что не ставится из репозиториев - у меня всё нормально. Я репозитории проверяю как описано здесь.

  2. Андрей

    а как удалить?

    1. Alexey (Автор записи)

      Воспользуйтесь способом, описанным в заметке. (наводящая фраза «Для удаления LibreOffice, установленной как в ручном режиме, так и из репозиториев»).

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *