Flatpak: como configurar caminhos quando um app depende de um executável externo?

Olá, meus amigos.

Eu instalo quase tudo via flatpak, mas se tem uma coisa que é um inferno é conseguir configurar caminhos quando um app depende de um executável externo.
Por exemplo: estou tentando processar imagens em formato RAW no Hugin, para fazer Focus Stacking. Para importar as imagens, ele usa o darktable-cli que precisa estar no PATH.
Aqui vem o problema… se tudo for instalado via repositórios (apt no meu caso), tudo funciona perfeitamente, mas e quando tudo, ou parte, está em Flatpak?
O Flatpak não tem acesso a pastas como /usr/bin e isto não vai funcionar mesmo alterando propriedades de permissões com o FlatSeal. Ou seja, só consigo configurar se for tudo instalado via repositório (DEB files).
Então, me digam, por favor, como eu configuro isto? Como faço para indicar um caminho de executável quando ele é um Flatpak e fica numa pasta com caminho que não poderia ser mais obscuro e não funcional?

Se você está em um sistema totalmente baseado em Flatpak, como fica uma coisa destas?

Flatpak (Snaps, AppImagens) podem ser formatos interessantes para disponibilizar Apps, mas está longe de ser algo funcional em muitos aspectos…

Um jeito bem gambiarra talvez seja colocar o executável em /var/lib/flatpak/app/[APP.ID]/current/active/files/bin e dar permissão de execução

É possível que após uma atualização do app o arquivo suma. Não testei.

Não tenho este app, então fiz um teste com o Epiphany aqui que deu certo. Verifique se dará certo no seu caso em específico

# abrir um shell dentro do container do Epiphany
flatpak run --command=sh org.gnome.Epiphany 

dentro do container recém aberto

# verificar pastas na variável PATH
echo $PATH
# retorna /app/bin:/usr/bin

fora do container (uma nova aba no terminal).

# ir para a pasta
cd /var/lib/flatpak/app/org.gnome.Epiphany/current/active/files/bin

# OBS: As modificações só são possíveis como administrador, por isso a utilização do comando `sudo`

# criar um arquivo teste
sudo touch test

# dando permissão de execução ao arquivo
sudo chmod +x test

# editando com nano
sudo nano test

editando o arquivo com nano
(CTRL+S pra salvar CTRL+X pra fechar)

echo Hello World

dentro do container

# testando a execução do arquivo
/app/bin/test
# retorna Hello World

O motivo de existir Flatpak é não ter que lidar com esse tipo de situação. Infelizmente o empacotador não foi feliz e não aproveitou para incluir todas as dependências do programa no pacote.

1 curtida