Как правильно установить 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 нежизнеспособны.