为什么我使用 snap 安装的程序没有使用我在包中包含的库?

为什么我使用 snap 安装的程序没有使用我在包中包含的库?

抱歉我的英语不好。我创建了一个应用程序。我想将其打包成 snap 格式。我做到了。不幸的是,当我启动该应用程序时(在我将其安装在新安装了 Ubuntu 22.04 的 PC 上之后,我显然使用虚拟机进行测试),它不会在 snap 文件夹中查找库,而是在操作系统中查找。显然,在我创建应用程序的 PC 上它可以运行,但在新安装的系统上它无法启动。由于像 flatpaks 这样的 snap 可以安装包含所有依赖项的应用程序,我希望程序能够使用我放入 snap 中的库(这些库是程序运行所需的库)。snapcraft.yaml 文件的配置如下:

name: lamiavideoteca  
    base: core22 
    version: "2.40" 
    summary: Program for cataloging Films description: Program that allows you to catalog your collection of Films and/or Video/Audio.  
    grade: stable 
    confinement: strict
        
    parts: 
     lamiavideoteca: 
       plugin: dump 
       source: .
        
    apps: 
     lamiavideoteca: 
       command: usr/bin/LaMiaVideoteca                       
       desktop: usr/share/applications LaMiaVideoteca.desktop
        
    environment:  
       QT_PLUGIN_PATH: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt6/plugins:$QT_PLUGIN_PATH 
       LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET

从代码中可以看出,我设置了环境变量以向应用程序显示库。包已生成,但当我从终端启动它时,我注意到它找不到必要的库,这些库位于 /snap/lamiavideoteca/current/usr/lib 文件夹中。

我尝试更改 snap 上的库位置。我更改了 snapcraft.yaml(我使用了 stage...stage-packages),但没有任何效果,程序在 usr/lib 上搜索库,而不是在 snap/lamiavideoteca/usr/lib 上搜索。为什么?谢谢您的回答

相关内容