Как правильно установить LibreOffice с помощью FlatPak, чтобы команда libreoffice была в переменной среды $PATH?

Я только что удалил deb-пакеты LibreOffice из моей системы Ubuntu 16.04 LTS с помощью

sudo apt purge --auto-remove $(dpkg -l | grep "^ii  libreoffice" | awk '{print $2}')

Чтобы заменить его версией FlatPak на

sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt update
sudo apt install flatpak

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.libreoffice.LibreOffice

Затем перезагрузили систему, чтобы убедиться, что все изменения применены. Затем LibreOffice был указан как установленный согласно

$ flatpak list | grep libreoffice
LibreOffice   org.libreoffice.LibreOffice 7.0.3.1 stable  user

он зарегистрировался в меню XDG, и я могу открывать с его помощью файлы ODT.

Раньше у меня были скрипты, которые вызывают LibreOffice в автономном режиме, что-то вроде

libreoffice --headless --convert-to pdf filename.docx

но пока они не работают.

Когда я пытаюсь запустить эту команду в терминале, она говорит:

$ libreoffice
The program 'libreoffice' is currently not installed. You can install it by typing:
sudo apt install libreoffice-common

Таким образом, он не видит установку LibreOffice через FlatPak:

$ echo $PATH | grep flatpak
$

Обновите, чтобы ответить на комментарий Кулфи:

$ LC_ALL=C ls -al ~/.local/share/flatpak/exports/bin
total 28
drwxrwxr-x 2 user user 4096 Nov 26 15:57 .
drwxrwxr-x 4 user user 4096 Feb  7  2019 ..
lrwxrwxrwx 1 user user   83 Jun  7 13:18 com.github.bcedu.vgrive -> ../../app/com.github.bcedu.vgrive/current/active/export/bin/com.github.bcedu.vgrive
lrwxrwxrwx 1 user user   71 May 24  2020 com.snes9x.Snes9x -> ../../app/com.snes9x.Snes9x/current/active/export/bin/com.snes9x.Snes9x
lrwxrwxrwx 1 user user   79 Oct  2 23:11 org.inkscape.Inkscape -> ../../app/org.inkscape.Inkscape/current/active/export/bin/org.inkscape.Inkscape
lrwxrwxrwx 1 user user   69 Jun 10 16:29 org.kde.kdenlive -> ../../app/org.kde.kdenlive/current/active/export/bin/org.kde.kdenlive
lrwxrwxrwx 1 user user   81 Feb  7  2019 org.libretro.RetroArch -> ../../app/org.libretro.RetroArch/current/active/export/bin/org.libretro.RetroArch

^ как видите, LibreOffice не экспортируется.

Стоит ли настраивать что-то вручную?


Небольшое примечание: установка LibreOffice Snap обычно регистрируется libreoffice в /snap/bin/libreoffice который в $PATH переменная.

1 ответ

Решение

Спасибо @vanadium за идею.

Я создал "умный" сниппет для ~/.bashrc файл:

       # hack for libreoffice
if  [[ ! -f /usr/bin/libreoffice ]] && [[ ! -f /snap/bin/libreoffice ]]
then
    flatpak info org.libreoffice.LibreOffice > /dev/null && \
         alias libreoffice='/usr/bin/flatpak run org.libreoffice.LibreOffice "$@"'
fi

Он проверяет наличие LibreOffice, установленного deb- и snap, а затем определяет псевдоним для libreoffice команда, если установлен LibreOffice, установленный FlatPak.

Приведенный выше фрагмент не универсален, так как в некоторых своих скриптах я также напрямую вызываю lowriter, localc, loimpress.
Поэтому мне нужно будет продолжать использовать LibreOffice 6.2.8 из PPA, чтобы упростить создание сценариев.


Но все это вместе с проблемой, связанной с Snap-fstab, действительно странно. Я понимаю, что встроить LibreOffice 7 для 16.04 LTS в PPA невозможно. Обновление до 18.04 LTS для меня не вариант (на данный момент). В настоящее время я вижу, что эти Snap и FlatPak нежизнеспособны.

Другие вопросы по тегам