spread icon indicating copy to clipboard operation
spread copied to clipboard

spread (via snap) exec: "lxc": executable file not found in $PATH

Open ryan-beisner opened this issue 8 years ago • 5 comments

Cannot allocate lxd:ubuntu-16.04: cannot launch lxd container: exec: "lxc": executable file not found in $PATH

I was looking to start using spread very soon while we're redeploy some ci infra. I've got a fresh Xenial instance. I can launch and list lxc a-ok as my user, but can't get spread to do the examples.

It has the same error whether installed in strict or in dev mode.

ubuntu@osci-slavehost:~/temp⟫ tree
.
├── examples
│   └── hello
│       └── task.yaml
└── spread.yaml

2 directories, 3 files


ubuntu@osci-slavehost:~/temp⟫ head -n999 examples/hello/task.yaml spread-hello.yaml spread.yaml 
==> examples/hello/task.yaml <==
summary: Greet the planet
environment:
    GREETING: Hello
    GREETING/bar: Goodbye
    SUBJECT/baz: world
execute: |
    echo "$GREETING $SUBJECT!"
    exit 1


==> spread.yaml <==
project: hello-world

backends:
    lxd:
        systems:
            - ubuntu-16.04

suites:
    examples/:
        summary: Simple examples
        environment:
            SUBJECT/foo: sanity
            SUBJECT/bar: lunacy

path: /remote/path


ubuntu@osci-slavehost:~/temp⟫ lxc list
+-----------------------+---------+------------------+------+------------+-----------+
|         NAME          |  STATE  |       IPV4       | IPV6 |    TYPE    | SNAPSHOTS |
+-----------------------+---------+------------------+------+------------+-----------+
| intergalactic-shellie | RUNNING | 10.0.8.45 (eth0) |      | PERSISTENT | 0         |
+-----------------------+---------+------------------+------+------------+-----------+

# ^ lxc unit created by ubuntu user manually


ubuntu@osci-slavehost:~/temp⟫ spread -list
lxd:ubuntu-16.04:examples/hello:baz
lxd:ubuntu-16.04:examples/hello:bar
lxd:ubuntu-16.04:examples/hello:foo
ubuntu@osci-slavehost:~/temp⟫ spread -v
2016/08/26 00:14:57 Found /home/ubuntu/temp/spread.yaml.
2016/08/26 00:14:57 Allocating lxd:ubuntu-16.04...
2016/08/26 00:14:57 Cannot allocate lxd:ubuntu-16.04: cannot launch lxd container: exec: "lxc": executable file not found in $PATH
2016/08/26 00:14:57 Successful tasks: 0
2016/08/26 00:14:57 Aborted tasks: 3
error: unsuccessful run


1 ubuntu@osci-slavehost:~/temp⟫ snap list
Name         Version     Rev  Developer  Notes
spread       2016.08.23  11   niemeyer   -
ubuntu-core  16.04.1     216  canonical  -

ryan-beisner avatar Aug 26 '16 02:08 ryan-beisner

FYI: My use case is to use LXD local, and prefer to consume spread by snaps.

ryan-beisner avatar Aug 26 '16 02:08 ryan-beisner

I'm having the same issue on dev/zesty: max@eden:~/workspace.d$ snap list Name Version Rev Developer Notes spread 2016.10.05 23 niemeyer - ubuntu-core 16.04.1 423 canonical -

nuclearbob avatar Oct 25 '16 14:10 nuclearbob

Assuming this is a snap confinement issue, is there a PPA available as a work around? I haven't found install instructions anywhere detailing supported installation methods

stub42 avatar Nov 21 '16 11:11 stub42

I guess the problem here is that spread is installed from a snap and that spread binary can't access the lxc binary from the host as this is a general thing snaps can't do. Same problem applies for the qemu backend.

The only way out is to build spread on your own and copy it somewhere into your $PATH

$ mkdir work
$ export GOPATH=`pwd`/work
$ go get -d -v github.com/snapcore/snapd/...
$ go build github.com/snapcore/spread/cmd/spread
$ sudo cp spread /usr/local/bin

morphis avatar Dec 06 '16 06:12 morphis

Hi All,

I'm re-revisiting spread as a runner for some OpenStack engineering efforts, and still found the lxc client issue in spread snap 2018.08.30.

I've moved around it for our evaluation purposes by just building spread, but we still prefer to consume it via snaps.

Cheers,

Ryan

ryan-beisner avatar Apr 06 '20 18:04 ryan-beisner