首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Snapcraft:找不到可执行文件

Snapcraft:找不到可执行文件
EN

Stack Overflow用户
提问于 2020-07-06 04:25:40
回答 1查看 290关注 0票数 0

我正在尝试创建一个snap包,并且已经让snapcraft构建了一个。

但是,在尝试运行二进制文件时,在安装新构建的快照后,我得到:

代码语言:javascript
复制
cannot snap-exec: cannot exec "/snap/foobar/x1/snap/command-chain/snapcraft-runner": no such file or directory

snapcraft-runner文件存在,所以我假设错误是因为这个文件找不到我的二进制文件。

下面是我的snapcraft.yaml中的相关部分

代码语言:javascript
复制
confinement: devmode
base: bare
build-base: core18

parts:
  foobar:
    plugin: dump
    source: bin/foobar_x64.tgz

apps:
  foobar:
    command: foobar

我在snap外部构建了一个静态链接的二进制文件,所以我真的不需要里面的任何东西。这只是为了让人们可以使用包管理器来更新它,我想(稍后)我会限制它。

tgz只包含一个二进制foobar。我的假设是它不在路径中,这就是它找不到它的原因。我试着用organize指令把它移到bin/中,我试着把命令改成不同的东西,比如${SNAP}/foobar/foobar

所有这些都会在构建过程中被拒绝,因为它会抱怨找不到二进制文件,或者说命令包含非法字符。

./foobar的行为和foobar一样,它会构建,然后就不能工作了。

二进制文件也绝对是复制和可执行的:

代码语言:javascript
复制
$ file /snap/foobar/x1/foobar 
/snap/foobar/x1/foobar: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, no section header

$ ls -la /snap/foobar/x1/foobar 
-rwxrwxr-x 1 root root 1786200 Jul  5 21:00 /snap/foobar/x1/foobar
``


How can I get it to find my executable?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-06 06:28:54

我已经修复了这个问题。

这个包装器可以被禁用,然后它似乎会找到一个/二进制文件

在您的snapcraft.yaml中的apps -> yourapp下添加adapter: none

例如。

代码语言:javascript
复制
apps:
  foobar:
    command: foobar
    adapter: none
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62745954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档