- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
基本问题/目标:
我希望能够使用一些共享库,它们应该在自定义 PPA 的 cmake 步骤(插件)之前获取。
snapcraft.yaml:
name: mraa-blink-example
version: 'Latest'
summary: mraa for snapcraft
description: |
Blink Example from MRAA lib
grade: stable #devel # must be 'stable' to release into candidate/stable channels
confinement: strict # use 'strict' once you have the right plugs and slots
apps:
blinkapp:
command: bin/blink
parts:
blink:
plugin: cmake
build-packages:
- libmraa1
- libmraa-dev
- mraa-tools
- python-mraa
- python3-mraa
CMakeLists.txt
cmake_minimum_required(VERSION 2.8.9)
project (MRAA)
file(GLOB SOURCES "src/*.cpp")
#For the shared library:
set ( PROJECT_LINK_LIBS libmraa.so )
add_executable(blink ${SOURCES})
target_link_libraries(blink ${PROJECT_LINK_LIBS} )
install(TARGETS blink DESTINATION /bin)
因为构建包来自自定义 PPA,所以出现错误:
Could not find a required package in 'build-packages': "The cache has no package named 'libmraa-dev'"
有没有办法解决这个问题?
最佳答案
背景:
有人努力将 Gnome 库抽象为一个单独的“平台”快照,该快照是使用 Ubuntu 桌面团队的 Gnome-3-26 PPA 在 Launchpad 上构建的。 PPA 包含为适应 Ubuntu Xenial (16.04) 的运行时环境而编译的 gnome 平台,这将允许针对比构建环境通常包含的更新的 Gnome 构建快照。但这需要构建环境中的自定义 PPA,和你一样,我也在努力研究如何做到这一点。
启用 gnome 平台 PPA 后,您仍然需要将快照链接到运行时快照。这是通过添加一个连接到 gnome-3-26-1604
的插件并使用 desktop-gnome-platform
助手
我的解决方案:
我决定使用多部分构建,其中主要应用程序“部分”依赖于声明为使用“nil”插件的部分,这意味着它实际上不执行任何操作。然后,我向 nil 部分添加了一个“准备”脚本,该脚本完成了添加 PPA、PGP key 和强制更新/升级周期所必需的操作。
我认为这需要是一个单独的部分,而不是作为主应用程序上的准备脚本,因为构建包是在运行准备脚本之前获取的,这意味着它将无法找到依赖项的包并死掉有一个很好的错误信息。这是通过执行多部分方法来解决的。我用它来构建 gnome-twitch
snap,它是几天前宣布的,代表 Snapcrafters 的努力。
示例:
下面是 gnome-twitch snapcraft.yaml 的不完整粘贴,用于解释我是如何做到的:
parts:
prepare:
plugin: nil
prepare: |
echo "deb http://ppa.launchpad.net/ubuntu-desktop/gnome-3-26/ubuntu xenial main" | tee /etc/apt/sources.list.d/gnome-3-24.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 399B698EEA9EF163B6F9A0F62CC98497A1231595
apt update
apt upgrade -yy
prime: [-*]
...
gnome-twitch:
after: [prepare, desktop-gnome-platform]
...
plugs:
gnome-3-26-1604:
interface: content
content: gnome-3-26-1604
target: gnome-platform
default-provider: gnome-3-26-1604
apps:
gnome-twitch:
command: desktop-launch $SNAP/usr/bin/gnome-twitch
plugs:
- ... # all the plugs required
- gnome-3-26-1604
关于snapcraft - 如何将自定义 PPA 添加到 snapcraft,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43368821/
基本问题/目标: 我希望能够使用一些共享库,它们应该在自定义 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
我是一名优秀的程序员,十分优秀!