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

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

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

  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, установленной как в ручном режиме, так и из репозиториев»).

  3. keeja

    cd: Нет такого файла или каталога: LibreOffice_*
    --2022-08-02 21:30:42--  http://download.documentfoundation.org/libreoffice/stable//deb/x86_64/LibreOffice__Linux_x86-64_deb_langpack_ru.tar.gz
    Распознаётся download.documentfoundation.org (download.documentfoundation.org)… 89.238.68.185, 2a00:1828:a012:185::1
    Подключение к download.documentfoundation.org (download.documentfoundation.org)|89.238.68.185|:80… соединение установлено.
    HTTP-запрос отправлен. Ожидание ответа… 404 Not Found
    2022-08-02 21:30:43 ОШИБКА 404: Not Found.

    cd: Нет такого файла или каталога: LibreOffice_*
     

  4. Владимир

    Хорошо на бумаге, да забыли про овраги. С помощью Ваших команд либреофис не устанавливается.

    ОС Линукс Минт 21.2 64-бит.

    Компьютер - Леново G770.

    Никаких предупреждений не выдаёт. Программа отрабатывает, а офиса нет.

    Перезагружаю компьютер - офиса нет.

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

      Приветствую! Этой статье скоро будет 10 лет — видимо, что-то сломалось за это время. Постараюсь исправить скрипты в ближайшие дни.

Добавить комментарий для Alexey Отменить ответ

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