Skip to content

Instantly share code, notes, and snippets.

@LinuxDicasPro
Last active March 9, 2025 16:20
Show Gist options
  • Save LinuxDicasPro/5da0c06a41791f1b6a8c15bbd69d442d to your computer and use it in GitHub Desktop.
Save LinuxDicasPro/5da0c06a41791f1b6a8c15bbd69d442d to your computer and use it in GitHub Desktop.
Soluções de Problemas ao Criar AppImage e ArchImage

Limitações e Soluções para a Criação de AppImage

Dicas e aprendizados durante a criação de AppImages, bem como limitações, problemas encontrados, recomendações, soluções e dicas extras.

Links Extras:

Encontrar pacotes para criar AppImage com ArchImage e ArchAppImage:

Resolvendo problemas com ld-linux:

Projetos para tentar resolver os problemas com o glibc (não testei nunhum desses):


Tecnologias para Criar AppImage

Projetos Link Descrição
Projeto AppImage https://github.com/AppImage/ A Base de Tudo
AppImageTool https://github.com/AppImage/appimagetool Ferramenta Base para Criar AppImage
Pkg2AppImage https://github.com/AppImageCommunity/pkg2appimage Usa Arquivos .yml (pacotes deb)
Deb2AppImage https://github.com/simoniz0r/deb2appimage Usa Arquivos .json (pacotes deb)
ArchImage https://github.com/ivan-hc/ArchImage Usa Conteiner junest (Arch Linux)
AppImaGen https://github.com/ivan-hc/AppImaGen Usa pacotes Debian e Ubuntu
Snap2AppImage https://github.com/ivan-hc/Snap2AppImage Pacotes SNAP para AppImage
FlatPak2AppDir https://github.com/sudo-give-me-coffee/flatpak2appdir FlatPak para AppDir
LinuxDeployQt https://github.com/probonopd/linuxdeployqt Útil para Programas em Qt
go-appimage https://github.com/probonopd/go-appimage Projeto AppImage em Go
AppRun https://github.com/AppImageCrafters/AppRun AppRun Binário como Alternativa
libunionpreload https://github.com/project-portable/libunionpreload Sistema de Arquivos Union

Métodos para Criação de AppImage

Cada método tem seus objetivos, vantagens e desvantagens.


Método Tradicional (Manual/AppImageTool - Pkg2AppImage - Deb2AppImage - LinuxDeployQt)

Recomendações:

  • Programas autocontidos (tarball).
  • Programas com poucas dependências.
  • Programas que usam tecnologia Electron.

Problemas do Método Tradicional

  • Se o seu Sistema for muito desatualizado, você vai se deparar com um erro parecido com esse:
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/libstdc++.so.6)
  • Não é possível garantir a adição de todas as dependências, uma vez que bibliotecas de baixo nível não costumam ser recomendadas para adição no AppImage.

  • O AppImage é montado no modo somente leitura, se o programa precisar gravar suas configurações no diretório do próprio AppImage, o programa não terá permissão para isso e não funcionará corretamente.

  • Ainda há programas que não foram pensados para serem portáteis e podem exigir acesso a caminhos absolutos em seus códigos.

  • É difícil criar Appimages de programas desenvolvidos em Python.


Solução para inserir o glic e o ld-linux no AppImage

Ao invés de LD_LIBRARY_PATH, use LIBRARY_PATH como abaixo e execute com ld-linux-x86-64.so.2.

#!/bin/sh

HERE="$(dirname "$(readlink -f "${0}")")"

for dir in "$HERE/app/lib/"*/; do
  export LIBRARY_PATH="$dir":$LIBRARY_PATH
done

export LIBRARY_PATH="$HERE/app/lib":$LIBRARY_PATH
export LIBRARY_PATH="$HERE/usr/lib":$LIBRARY_PATH
export LIBRARY_PATH="$HERE/lib":$LIBRARY_PATH
export LIBRARY_PATH="$HERE/usr/lib/i386-linux-gnu":$LIBRARY_PATH
export LIBRARY_PATH="$HERE/lib/i386-linux-gnu":$LIBRARY_PATH
export LIBRARY_PATH="$HERE/usr/lib/i386-linux-gnu/pulseaudio":$LIBRARY_PATH
export LIBRARY_PATH="$HERE/usr/lib/i386-linux-gnu/alsa-lib":$LIBRARY_PATH
export LIBRARY_PATH="$HERE/usr/lib/x86_64-linux-gnu":$LIBRARY_PATH
export LIBRARY_PATH="$HERE/lib/x86_64-linux-gnu":$LIBRARY_PATH
export LIBRARY_PATH="$HERE/usr/lib/x86_64-linux-gnu/pulseaudio":$LIBRARY_PATH
export LIBRARY_PATH="$HERE/usr/lib/x86_64-linux-gnu/alsa-lib":$LIBRARY_PATH
export LIBRARY_PATH="$LIBRARY_PATH":"${LD_LIBRARY_PATH}"

MAIN="$HERE/app/bin/comando

exec "${HERE}/lib64/ld-linux-x86-64.so.2" --inhibit-cache --library-path "${LIBRARY_PATH}" ${MAIN} "$@"

Método Usando ArchImage

Recomendações:

  • Programas com muitas dependências ou dependências complexas.
  • Programas que dependem de caminhos absolutos.

Problemas do Método Usando ArchImage

  • Não é possível a execução do AppImage usando superusuário. É preciso uma conta de usuário comum para poder executar o AppImage. Distros modulares como o Puppy costumam usar conta root por padrão, o que faz do AppImage incompatível com o sistema sem uma conta de usuário comum.

  • Alguns programas podem necessitar de acesso ao sistema host para funcionar conforme esperado. Eles podem assumir o conteiner como host.


Problemas Durante a Criação de AppImage

São problemas que eu encontrei ao gerar alguns AppImages que usavam Gtk e Qt e também programas em Python. Provavelmente vou me deparar com mais situações como essa.


Ícones e checkbox não aparecendo em programas gtk que usam gdk-pixbuf-2

No terminal, você vai visualizar um erro como esse:

(abiword:11736): Gtk-WARNING **: 16:39:45.175: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.

Para solucionar esse problema, você precisa garantir que todas as dependências serão inclusas no AppImage e depois atualizar o gdk-pixbuf-2.

DEPENDENCES="gdk-pixbuf2 hicolor-icon-theme adwaita-icon-theme shared-mime-info"

/usr/bin/gdk-pixbuf-query-loaders --update-cache

Programa em QT com Erro Pedindo para Reinstalar o Programa pra Corrigir

No terminal, você vai visualizar um erro como esse:

This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Isso ocore porque nem todos os recursos do Qt foram adicionados ao AppImage e isso deve ser Configurado. Acontece no ArchImage. A solução é simples:

LIBSAVED="qt6" # Ou qt para qt5.

Erro de Cache de Plugins VLC

No terminal, você vai visualizar vários erros como esse:

[000055f540e64a80] main libvlc error: stale plugins cache: modified /usr/lib/vlc/plugins/codec/libcc_plugin.so

A solução é atualizar o cache do Vlc dessa forma:

/usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins

Alerta do QT Relacionado ao ThumbCreator

No terminal, você vai visualizar um erro como esse:

01-12-24 11:29:31.534 [Warning ] kf.service.services: KServiceTypeTrader: serviceType "ThumbCreator" not found

Esse problema está relacionado ao kio e ao kio-extras, que precisam ser adicionados:

DEPENDENCES="kio kio-extras" # Para qt5 é kio5 e kio5-extras.

Ícones dos programas em Qt não Aparecendo

Pelo incrível que pareça, pode não aparecer uma mensagem aparente denunciando o problema. Mas para resolver, alguns temas devem ser inseridos:

DEPENDENCES="breeze-icons hicolor-icon-theme"

Se o programa usa ícones SVG pode ser necessário:

DEPENDENCES="qt6-svg" # Para qt5 é qt5-svg.

Erro no Hypnotix do mpv.py que não Encontra as libs que Estão Disponíveis

No terminal, você vai visualizar um erro como esse:

 File "/usr/lib/hypnotix/mpv.py", line 49, in <module>
    raise OSError("Cannot find libmpv in the usual places. Depending on your distro, you may try installing an "
OSError: Cannot find libmpv in the usual places. Depending on your distro, you may try installing an mpv-devel or mpv-libs package. If you have libmpv around but this script can't find it, consult the documentation for ctypes.util.find_library which this script uses to look up the library filename.

Isso acontece porque o ctypes.util.find_library não está conseguindo encontrar as libs em /usr/lib pois ele precisa que o pacote binutils esteja incluído para incluir também as ferramentas relacionadas ao ld em /usr/bin. Então, deve-se adicionar o binutils como dependência mesmo:

DEPENDENCES="binutils"

Erro Relacionado aos Ícones SVG no Python

No terminal, você vai visualizar um erro como esse:

gi.repository.GLib.GError: gdk-pixbuf-error-quark: Couldn’t recognize the image file format for file “/usr/share/hypnotix/pictures/tv.svg” (3)

É o pacote necessário para a exibição do svg que não está disponível e deve ser inserido:

DEPENDENCES="librsvg"

Erro Relacionado aos Ícones SVG no Perl

No terminal, você vai visualizar um erro como esse:

error while opening image svg. couldnt recognize the image file format

É o pacote necessário para a exibição do svg que não está disponível e também deve ser inserido:

DEPENDENCES="librsvg"

Problemas com o VDPAU não Encontrado

No terminal, você vai visualizar um erro como esse:

Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory

Pra Nvidia, não tem muito o que fazer, pois precisa do nvidia-utils, mas pra Intel ou AMD, dá pra resolver com:

DEPENDENCES="libvdpau-va-gl mesa"

Erro Relacionado ao ImageMagick 'Magick::ErrorMissingDelegate'

No terminal, você vai visualizar um erro como esse:

terminate called after throwing an instance of 'Magick::ErrorMissingDelegate'
  what():  converseen: Coder array not returned!

Nesse caso, o diretório do ImageMagick não foi adicionado e precisa ser configurado dessa forma dependendo da versão:

LIBSAVED="ImageMagick-7.1.1"

Erro de Inicialização do GLX

No terminal, você vai visualizar um erro como esse:

[FATAL] Could not initialize GLX

Para resolver esse problema, o GLX precisa ser incluído no AppImage:

DEPENDENCES="libglvnd"

Erro de OpenGL Faltando

No terminal, você vai visualizar um erro como esse:

BC_WindowBase::glx_window_fb_configs: opengl initialization failed failed

Geralmente acontece em programas que exigem aceleração de hardware. Essas dependências são necessárias para cobrir todos os casos:

mesa vulkan-intel vulkan-radeon nvidia nvidia-utils

Poder ser um problema adicionar as dependências relacionados a nvidia no AppImage, pois isso não resolveria o problema, necessitando de métodos alternativos.


Erros Relacionados ao gobject-introspection

No terminal, você vai visualizar um erro como esse:

GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib/perl5/5.40/vendor_perl/Glib/Object/Introspection.pm line 110.

Alguma dependência relacionada ao Introspection está faltando. Pode ser resolvido da seguinte forma:

DEPENDENCES="glib2 gobject-introspection perl-glib-object-introspection perl-gtk3 pango-perl cairo-perl"

O ideal também é verificar a existência do diretório no AppImage: /usr/share/gir-1.0.


Erro do Módulo Gtk3 não Encontrado no Perl

No terminal, você vai visualizar um erro como esse:

Subroutine Pango::Layout::set_text redefined at /usr/share/perl5/vendor_perl/Gtk3.pm line 2299.
        require Gtk3.pm called at /usr/bin/shutter line 72

É um erro avisando que requer o Gtk3.pm e portanto, ele aponta que não está disponível. Por isso, deve ser adicionado:

DEPENDENCES="perl-gtk3"

Programas Pedindo por Fonte Específicas

No terminal, você vai visualizar um erro como esse:

(shutter:829): Pango-WARNING **: 21:37:36.266: failed to create cairo scaled font, expect ugly output. the offending font is 'Noto Sans Bold 9.999'

O jeito é adicionar as fontes que o programa necessita:

DEPENDENCES="noto-fonts noto-fonts-extra noto-fonts-cjk noto-fonts-emoji"

Diretórios que Podem ser Excluídos do AppImage

Você pode remover os seguintes diretórios para deixar o AppImage mais leve:

rm -rf $APPDIR/usr/share/gtk-doc
rm -rf $APPDIR/usr/share/info
rm -rf $APPDIR/usr/share/licenses
rm -rf $APPDIR/usr/share/man
rm -rf $APPDIR/usr/share/pkgconfig
rm -rf $APPDIR/usr/share/doc
rm -rf $APPDIR/usr/lib64/cmake
rm -rf $APPDIR/usr/lib64/systemd
rm -rf $APPDIR/usr/lib64/tmpfiles.d
rm -rf $APPDIR/etc/pacman.d
rm -rf $APPDIR/etc/systemd

Limitações e Soluções

Dependendo do programa, você pode encontrar alguns problemas que necessitam ajustes específicos. Também há algumas soluções que podem ser utilizadas caso prefira uma auto integração.


Problemas ao Criar AppImage, pois o Ícone não é Encontrado

Você preparou o AppDir e quando foi rodar o comando se deparou com um erro parecido com esse:

ventoy{.png,.svg,.xpm} defined in desktop file but not found
For example, you could put a 256x256 pixel png into
/home/mxnt/GIT_LDP/_APPIMAGE/ventoy.AppDir/ventoy.png

O comando appimagetool usa como referência o arquivo .desktop para buscar o ícone. O nome do ícone deve ser no formato .png, .svg ou .xpm e deve ter o mesmo nome configurado em Icon=. Por Exemplo:

[Desktop Entry]
Name=Ventoy
GenericName=Ventoy
Comment=Bootable USB Creator
Exec=ventoy
Icon=ventoy
Type=Application
Terminal=false
Categories=Utility;

Conforme o Icon=ventoy, o ícone deve ser por exemplo ventoy.png e não Ventoy.png.


Solução para Programas que Precisam ser Executados como Root

Para executar um programa com permissões no modo gráfico, você pode executar:

pkexec DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY comando

Mas, esse comando não funciona após iniciar o AppImage e executar o comando de exemplo, devido as propriedades e a forma como o diretório do AppImage foi criado, só que funciona para executar o próprio AppImage. Isso acontece porque o comando de exemplo está dentro do diretório de montagem do AppImage e por isso o pkexec não é executado corretamente , mas o próprio AppImage está fora desse diretório e por isso o pkexec vai funcionar corretamente, assim como qualquer outro comando externo que necessite ser aberto.

Então, segue a solução:

if [ "$EUID" -ne 0 ]; then
  pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY "$APPIMAGE" "$@"
  exit 0
fi

Se o AppImage não for executado como root, ele executa a si mesmo com sudo gráfico para ele poder executar como superusuário.


Link Simbólico não Redefine a Variável $APPIMAGE para seu Nome

Eu usei isso no FreeOffice. A variável $APPIMAGE retorna o seu próprio nome e isso é conveniente. Assim, posso criar links simbólicos para executar diferentes aplicações no FreeOffice, permitindo uma autointegração bem facilitada. Como por exemplo:

cd "$APPDIR"
BASEIMAGE="${APPIMAGE##*/}"

text="FreeOffice-TextMaker.AppImage"
plan="FreeOffice-PlanMaker.AppImage"
pres="FreeOffice-Presentations.AppImage"

cd FreeOffice
[ "$BASEIMAGE" == "$text" ] && {
    ./textmaker "$@"
    exit 0
}

[ "$BASEIMAGE" == "$plan" ] && {
    ./planmaker "$@"
    exit 0
}

[ "$BASEIMAGE" == "$pres" ] && {
    ext="${@##*.}"
    shopt -s nocasematch
    case "$ext" in
        "prs" ) ./presentations -S "$@";;
        "pps" ) ./presentations -S "$@";;
        "ppsx" ) ./presentations -S "$@";;
        * ) ./presentations "$@";;
    esac
    exit 0
}

cwd="${APPIMAGE%/*}"
cd "$cwd"
ln -s "$BASEIMAGE" "$text"
ln -s "$BASEIMAGE" "$plan"
ln -s "$BASEIMAGE" "$pres"

Mas não funcionou. A definição da variável $APPIMAGE parece seguir o link simbólico até o arquivo original e por isso não funciona e a variável é sempre definida com a localização do arquivo original.

Então, uma alternativa é usar Hard Link. Enquanto o link simbólico é um link baseado no caminho do arquivo ou diretório, o Hard Link é baseado no inode do arquivo original. Ao invés de apontar para um caminho, ele compartilha o mesmo inode do arquivo original, ou seja, ele aponta direto para a localização do arquivo original no espaço físico. Então, é como se esse link fosse o próprio arquivo e por isso funciona.

Nesse caso, só foi preciso alterar essas linhas:

ln "$BASEIMAGE" "$text"
ln "$BASEIMAGE" "$plan"
ln "$BASEIMAGE" "$pres"

Configurações Feitas no Próprio Diretório do Programa

Você precisa testar bem o programa para descobrir isso. Como por exemplo o PeaZip, tinha esse comportamento. E isso pode ser resolvido da seguinte forma:

rm -rf peazip/res/conf
ln -sf ~/.local/share/peazip/conf peazip/res/conf

Esses comandos são executados dentro do AppDir do PeaZip ou no script que vai gerar o AppImage. Ele remove o diretório de configuração do PeaZip dentro do AppDir e substitui por um link simbólico para um local que deve ser criado pelo AppRun:

conf=~/.local/share/peazip/conf
test ! -f "$conf" && mkdir -p "$conf"

Programa não Funciona bem dentro do AppImage ou Precisa Estar Fora Dele

Tem desses. A solução é pré-instalar ele fora do AppImage para ser executado pelo AppRun. Como Exemplo:

test ! -e ~/.local/bin && mkdir ~/.local/bin
test ! -e ~/.local/bin/noisetorch && {
    cp ./noisetorch ~/.local/bin
}
~/.local/bin/noisetorch

Como Fazer uma Auto Integração com o Sistema

Se preferir fazer uma integração automática na primeira inicialização do AppImage, esse é um exemplo simplificado:

prg=abiword

cd $APPDIR
desktopfile=~/.local/share/applications/$prg.desktop
iconfile=~/.local/share/pixmaps/$prg.png

test ! -e "$desktopfile" && cp $prg.desktop ~/.local/share/applications/
test ! -e "$iconfile" && cp $prg.png ~/.local/share/pixmaps/

if ! grep -q "$APPIMAGE" "$desktopfile"; then
    sed -i "s:Exec=.*:Exec=$APPIMAGE:" "$desktopfile"
    sed -i "s:Icon=.*:Icon=$iconfile:" "$desktopfile"
    /usr/bin/update-desktop-database -q || true
    test -e usr/share/icons/hicolor/icon-theme.cache && {
        test -x /usr/bin/gtk-update-icon-cache && /usr/bin/gtk-update-icon-cache ~/.local/share/pixmaps/ 2>&1 >&- || true
    }
fi

Adicionar libunionpreload no AppImage

Aqui está um exemplo simples de como fazer isso:

HERE="$(dirname "$(readlink -f "${0}")")"
export UNION_PRELOAD="${HERE}"
export LD_PRELOAD="${HERE}/libunionpreload.so"

Você vai precisar baixar a lib: https://github.com/project-portable/libunionpreload/releases


Resolvendo Namespace Não Encontrado no Python

No terminal, você pode visualizar um erro como esse:

ERROR: cannot import name GObject, introspection typelib not found

Isso acontece porque programas em Python que usam introspection typelib, geralmente necessitam de pacotes como esses:

DEPENDENCES="libgirepository gobject-introspection-runtime python-gobject"

Há mais dependências como essas como glib2 e glibc. Isso é necessário para que o módulo gi funcione perfeitamente. Ele é útil para usar os TypeLib em /usr/lib/girepository-1.0. Se alguma TypeLib estiver faltando, vai gerar erros parecidos com esses:

Typelib file for namespace 'libxml2', version '2.0' not found
Typelib file for namespace 'Pango', version '1.0' not found

Geralmente pode ser resolvido adicionando como dependência os pacotes de libs que contém os TypeLib. Aqui estão alguns pacotes que contém TypeLib para consultar facilmente:

gobject-introspection-runtime:
 usr/lib/girepository-1.0/DBus-1.0.typelib
 usr/lib/girepository-1.0/DBusGLib-1.0.typelib
 usr/lib/girepository-1.0/GL-1.0.typelib
 usr/lib/girepository-1.0/Vulkan-1.0.typelib
 usr/lib/girepository-1.0/cairo-1.0.typelib
 usr/lib/girepository-1.0/fontconfig-2.0.typelib
 usr/lib/girepository-1.0/freetype2-2.0.typelib
 usr/lib/girepository-1.0/libxml2-2.0.typelib
 usr/lib/girepository-1.0/win32-1.0.typelib
 usr/lib/girepository-1.0/xfixes-4.0.typelib
 usr/lib/girepository-1.0/xft-2.0.typelib
 usr/lib/girepository-1.0/xlib-2.0.typelib
 usr/lib/girepository-1.0/xrandr-1.3.typelib
glib2:
 usr/lib/girepository-1.0/GIRepository-3.0.typelib
 usr/lib/girepository-1.0/GLib-2.0.typelib
 usr/lib/girepository-1.0/GLibUnix-2.0.typelib
 usr/lib/girepository-1.0/GModule-2.0.typelib
 usr/lib/girepository-1.0/GObject-2.0.typelib
 usr/lib/girepository-1.0/Gio-2.0.typelib
 usr/lib/girepository-1.0/GioUnix-2.0.typelib
at-spi2-core:
 usr/lib/girepository-1.0/Atk-1.0.typelib
 usr/lib/girepository-1.0/Atspi-2.0.typelib
gtk4:
 usr/lib/girepository-1.0/Gdk-4.0.typelib
 usr/lib/girepository-1.0/GdkWayland-4.0.typelib
 usr/lib/girepository-1.0/GdkX11-4.0.typelib
 usr/lib/girepository-1.0/Gsk-4.0.typelib
 usr/lib/girepository-1.0/Gtk-4.0.typelib
gtk3:
 usr/lib/girepository-1.0/Gdk-3.0.typelib
 usr/lib/girepository-1.0/GdkX11-3.0.typelib
 usr/lib/girepository-1.0/Gtk-3.0.typelib
gtk2:
 usr/lib/girepository-1.0/Gdk-2.0.typelib
 usr/lib/girepository-1.0/GdkX11-2.0.typelib
 usr/lib/girepository-1.0/Gtk-2.0.typelib
gdk-pixbuf2:
 usr/lib/girepository-1.0/GdkPixbuf-2.0.typelib
 usr/lib/girepository-1.0/GdkPixdata-2.0.typelib
pango:
 usr/lib/girepository-1.0/Pango-1.0.typelib
 usr/lib/girepository-1.0/PangoCairo-1.0.typelib
 usr/lib/girepository-1.0/PangoFT2-1.0.typelib
 usr/lib/girepository-1.0/PangoFc-1.0.typelib
 usr/lib/girepository-1.0/PangoOT-1.0.typelib
 usr/lib/girepository-1.0/PangoXft-1.0.typelib
spice-gtk:
 usr/lib/girepository-1.0/SpiceClientGLib-2.0.typelib
 usr/lib/girepository-1.0/SpiceClientGtk-3.0.typelib
harfbuzz:
 usr/lib/girepository-1.0/HarfBuzz-0.0.typelib

graphene:
 usr/lib/girepository-1.0/Graphene-1.0.typelib

gtksourceview4:
 usr/lib/girepository-1.0/GtkSource-4.typelib

Vte3:
 usr/lib/girepository-1.0/Vte-2.91.typelib

Problemas com TypeLib também pode acontecer com Perl.


Resolvendo Módulos Faltantes no Perl

No terminal, você pode visualizar um erro como esse:

Can't locate Glib.pm in @INC (you may need to install the Glib module) (@INC entries checked: 
[ ... ] 
) at /usr/lib/perl5/5.40/vendor_perl/Glib/Object/Introspection.pm line 20.

Nesse caso, você precisa ir atrás dos módulos pm. Aqui estão alguns pacotes para consultar facilmente:

perl-http-message:
  usr/share/perl5/vendor_perl/HTTP/Config.pm
  usr/share/perl5/vendor_perl/HTTP/Headers.pm
  usr/share/perl5/vendor_perl/HTTP/Message.pm
  usr/share/perl5/vendor_perl/HTTP/Request.pm
  usr/share/perl5/vendor_perl/HTTP/Response.pm
  usr/share/perl5/vendor_perl/HTTP/Status.pm
perl-libwww:
  usr/share/perl5/vendor_perl/LWP.pm
  usr/share/perl5/vendor_perl/LWP/Authen/Basic.pm
  usr/share/perl5/vendor_perl/LWP/Authen/Digest.pm
  usr/share/perl5/vendor_perl/LWP/Authen/Ntlm.pm
  usr/share/perl5/vendor_perl/LWP/ConnCache.pm
  usr/share/perl5/vendor_perl/LWP/Debug.pm
  usr/share/perl5/vendor_perl/LWP/DebugFile.pm
  usr/share/perl5/vendor_perl/LWP/MemberMixin.pm
  usr/share/perl5/vendor_perl/LWP/Protocol.pm
  usr/share/perl5/vendor_perl/LWP/RobotUA.pm
  usr/share/perl5/vendor_perl/LWP/Simple.pm
  usr/share/perl5/vendor_perl/LWP/UserAgent.pm
```r

```r
perl-sub-quote:
  usr/share/perl5/vendor_perl/Sub/Defer.pm
  usr/share/perl5/vendor_perl/Sub/Quote.pm
glib-perl:
  usr/lib/perl5/5.40/vendor_perl/Glib.pm

perl-cairo-gobject:
  usr/lib/perl5/5.40/vendor_perl/Cairo/GObject.pm

perl-xml-parser:
  usr/lib/perl5/5.40/vendor_perl/XML/Parser.pm
perl-xml-twig:
  usr/share/perl5/vendor_perl/XML/Twig.pm
  
perl-encode-locale:
  usr/share/perl5/vendor_perl/Encode/Locale.pm
  
perl-uri:
  usr/share/perl5/vendor_perl/URI.pm
  
perl-lwp-protocol-https:
  usr/share/perl5/vendor_perl/LWP/Protocol/https.pm

Também acontece esse tipo de erro:

Can't load '/usr/lib/perl5/5.40/vendor_perl/auto/Pango/Pango.so' for module Pango: /usr/lib/perl5/5.40/vendor_perl/auto/Pango/Pango.so: undefined symbol: cairo_struct_from_sv at /usr/lib/perl5/5.40/core_perl/DynaLoader.pm line 206.

Nesse caso, é só instalar essas depencdências:

DEPENDENCES="cairo-perl pango-perl glib-perl"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment