Failed to install or refresh a snap

I’m trying to build a snap that requires a few other snaps.

    build-snaps:
      - go/stable
      - ipfs/edge
      - node/12/stable
snapcraft

Failed to install or refresh a snap: ‘ipfs’ does not exist or is not available on the desired channel ‘edge’. Use snap info ipfs to get a list of channels the snap is available on.

snap info ipfs
name:      ipfs
summary:   global, versioned, peer-to-peer filesystem
publisher: Leo Arias (elopio)
contact:   https://keybase.io/elopio
license:   unset
description: |
  IPFS combines good ideas from Git, BitTorrent, Kademlia, SFS, and the Web.
  It is like a single bittorrent swarm, exchanging git objects. IPFS provides
  an interface as simple as the HTTP web, but with permanence built in. You
  can also mount the world at /ipfs.
commands:
  - ipfs
snap-id:      I6dDApWtLUoTumoebqg7wpcL78qIOj81
tracking:     edge
refresh-date: today at 09:11 EDT
channels:
  stable:    v0.4.21 2019-07-24 (1170) 18MB -
  candidate: v0.4.21 2019-07-05 (1170) 18MB -
  beta:      v0.4.21 2019-07-05 (1170) 18MB -
  edge:      master  2019-08-05 (1267) 18MB -
installed:   master             (1267) 18MB -

Here, you can clearly see that the edge channel exists and it’s even installed. What’s wrong with Snapcraft?

You have to use a full channel spec for this to work.

build-snaps:
  - go/latest/stable
  - ipfs/latest/edge
  - node/12/stable
  • Daniel
1 Like

Thanks, that worked.

Is there a way to specify somewhere in the docs what’s a “full channel”?

Moreoever, this means that the snap info command is misleading since it doesn’t show the latest/ part, which is crucial to understanding what’s happening when using Snapcraft.

I rather think it’s a bug in snapcraft; latest being implicit is a well-known channel specification behavior (see https://snapcraft.io/docs/channels).

  • Daniel
2 Likes