- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
构建 snap 包时,包装器脚本会自动将 $SNAP/usr/lib
添加到 LD_LIBRARY_PATH
。
在 docker 上构建我的包时,一些库(在本例中为 liblapack
和 libblas
)安装在子目录中:$SNAP/usr/lib/lapack
和$SNAP/usr/lib/libblas
分别。
尽管所有依赖项都在我的 snapcraft.yaml 中的 stage-packages
下定义,但上述路径未包含在包装器脚本中。
如何强制 snapcraft 自动将所有库的路径添加到包装器脚本中?
最佳答案
Snapcraft 维护一个常见库路径列表(例如 /usr/lib/
、 /usr/lib/<arch>
等)。如果这些目录存在,它会将它们添加到 LD_LIBRARY_PATH
。想想 Ubuntu 如何在您提到的这种不可预测的路径中“查找”库:这是 /etc/ld.so.conf
背后的原因之一。然而,软件包向 Ubuntu 通知新库的典型方式是在安装 Debian 软件包后运行的 Hook 中。就 Snapcraft 而言,这些钩子(Hook)永远不会运行——阶段包只是简单地解压。这意味着 Snapcraft 没有简单的方法来了解它刚刚解压的阶段包在不可预测的位置有一个库。
虽然 Snapcraft 目前无法自动帮助您,但您绝对可以使用以下两种方法之一自行完成此操作:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SNAP/usr/lib/lapack
的包装器脚本然后执行您实际想要运行的二进制文件。然后在您的 apps
中使用该包装器脚本部分。利用新的和 as yet undocumented environment
关键字,如下所示:
apps:
my-app:
command: my-binary
environment:
LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/usr/lib/lapack
关于Snapcraft 自定义 LD_LIBRARY_PATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42991501/
基本问题/目标: 我希望能够使用一些共享库,它们应该在自定义 PPA 的 cmake 步骤(插件)之前获取。 snapcraft.yaml: name: mraa-blink-example vers
构建 snap 包时,包装器脚本会自动将 $SNAP/usr/lib 添加到 LD_LIBRARY_PATH。 在 docker 上构建我的包时,一些库(在本例中为 liblapack 和 libbl
我正在尝试在 ubuntu 20.04 x64 上为 Alacritty 创建快照。使用 cargo build --release 创建可执行文件工作正常。使用 snapcraft 创建快照给出错误
我刚刚安装了 Snapcraft,然后用它来安装 Ngrok,但不幸的是我仍然无法从我的终端运行 Ngrox。 我的 Ngrok 安装 ╭─yoesoff@yoesoff-ThinkPad-X220
我有一个非常标准的 python 应用程序,包括 setup.py 和 requirements.txt,它可以与 pip 一起安装: $ pip install . $ tree -L 1 env/
我一直在尝试安装 Snapcraft在 ubuntu 16.04 内部。当我尝试安装它时: snap install snapcraft --classic --beta 我收到错误消息: error
在 vala 中,我将像这样启动基本操作系统设置: var appinfo = AppInfo.create_from_commandline ("switchboard", null, AppInf
我已经成功创建并上传了一个 snap 包(教程很棒)。但是,我想知道在每个构建步骤中到底发生了什么,以及我如何利用它们。 进程好像是 pull -> build -> stage -> prime -
我一直在寻找 snap 包管理系统和 alpine linux 之间的兼容性,但找不到任何相关资源。有没有计划让它在 alpine linux 上可用?在这方面有什么进展吗? 最佳答案 需要说明的是:
我试图通过执行以下命令在我的 Ubuntu 20.04.3 LTS 上安装 microk8s: sudo snap install microk8s -- classic 但是我收到了这个错误: er
我正在尝试使用 snapcraft 来构建基于 Java 的 gradle 项目的快照,但是每当使用任何 Gradle 插件时都会出现短缺 - 每当它尝试访问它们时,我都会得到类似于以下错误的东西:
系统 ubuntu 20.04 lts I'm just starting with ubuntu 已安装 我已经从这里安装了 java https://snapcraft.io/openjdk 命令
我在快照运行时创建新文件时遇到问题;示例: 1) Snap 启动并检查 ./config/config.json 处的 config.json 文件 2) 如果找不到该文件(这不是应用程序第一次运行)
最后我在 Ubuntu 16.04 和 17.10 上安装了我的应用程序,但现在我尝试在 Ubuntu Core(使用我的树莓派)上安装它,而我的 python 部分(依赖于 numpy)在构建时遇到
我正在为我的项目构建一个 snap 包,我有一个我只想编译的库。即仅/configure && make不是:/configure && make && make install 当我在 Ubuntu
我是一名优秀的程序员,十分优秀!