Snapcraft:找不到可执行文件
Snapcraft: Cannot find executable
我正在尝试创建一个 snap 包,并且已经 snapcraft
构建了一个。
但是,当尝试 运行 二进制文件时,在安装我新构建的 snap 后,我得到:
cannot snap-exec: cannot exec "/snap/foobar/x1/snap/command-chain/snapcraft-runner": no such file or directory
snapcraft-runner
文件存在,所以我假设错误是因为这个找不到我的二进制文件。
这是我 snapcraft.yaml
中的相关部分
confinement: devmode
base: bare
build-base: core18
parts:
foobar:
plugin: dump
source: bin/foobar_x64.tgz
apps:
foobar:
command: foobar
我正在 snap 之外构建一个静态链接的二进制文件,所以我真的不需要里面的任何东西。这只是为了让人们可以使用包管理器来更新它,我想限制它(稍后)。
源 tgz
只包含一个二进制文件 foobar
。我的假设是它不在 PATH 中,这就是它找不到它的原因。我尝试使用组织指令将其移动到 bin/
中,我尝试将命令更改为各种内容,例如 ${SNAP}/foobar
和 /foobar
.
所有这些在构建过程中都被拒绝了,因为它抱怨找不到二进制文件,或者说命令包含非法字符。
./foobar
的行为与 foobar
相同,它构建,然后不起作用。
二进制文件也肯定复制并可执行:
$ 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?
我已经解决了这个问题。
这个wrapper可以禁用,然后好像找到了a/the binary
在你的 snapcraft.yaml 下 apps -> yourapp
添加 adapter: none
例如
apps:
foobar:
command: foobar
adapter: none
我正在尝试创建一个 snap 包,并且已经 snapcraft
构建了一个。
但是,当尝试 运行 二进制文件时,在安装我新构建的 snap 后,我得到:
cannot snap-exec: cannot exec "/snap/foobar/x1/snap/command-chain/snapcraft-runner": no such file or directory
snapcraft-runner
文件存在,所以我假设错误是因为这个找不到我的二进制文件。
这是我 snapcraft.yaml
confinement: devmode
base: bare
build-base: core18
parts:
foobar:
plugin: dump
source: bin/foobar_x64.tgz
apps:
foobar:
command: foobar
我正在 snap 之外构建一个静态链接的二进制文件,所以我真的不需要里面的任何东西。这只是为了让人们可以使用包管理器来更新它,我想限制它(稍后)。
源 tgz
只包含一个二进制文件 foobar
。我的假设是它不在 PATH 中,这就是它找不到它的原因。我尝试使用组织指令将其移动到 bin/
中,我尝试将命令更改为各种内容,例如 ${SNAP}/foobar
和 /foobar
.
所有这些在构建过程中都被拒绝了,因为它抱怨找不到二进制文件,或者说命令包含非法字符。
./foobar
的行为与 foobar
相同,它构建,然后不起作用。
二进制文件也肯定复制并可执行:
$ 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?
我已经解决了这个问题。
这个wrapper可以禁用,然后好像找到了a/the binary
在你的 snapcraft.yaml 下 apps -> yourapp
添加 adapter: none
例如
apps:
foobar:
command: foobar
adapter: none