如何在14.04上安装Snapcraft?

我正在尝试按照安装Snapcraft的设置指南在Ubuntu 14.04上进行操作(关于14.04和16.04,文档并没有明确说明,但是1.x版本的安装步骤似乎完全相同)。
我按照步骤进行操作,没有出现任何错误,但是无法安装snapcraft
  • 检查版本:

    $ lsb_release -a
    没有可用的 LSB 模块。
    发布者 ID:Ubuntu
    描述:Ubuntu 14.04.4 LTS
    发布:14.04
    代号名称:trusty
    
  • 添加软件源:

    $ sudo apt-add-repository ppa:snappy-dev/tools
    ...
    OK
    
  • 运行更新:

    $ sudo apt update
    ...(共有57行,无错误)...
    正在读取软件包列表... 完成
    
  • 安装 snappy-tools

    正在读取软件包列表... 完成
    正在构建依赖树
    正在读取状态信息... 完成
    将会安装下列额外软件包:
      android-tools-adb android-tools-fastboot apparmor-easyprof binfmt-support click-reviewers-tools click-ubuntu-policy
      debsig-verify kpartx libxmltok1 python3-apparmor python3-bs4 python3-html5lib python3-libapparmor python3-lxml python3-magic
    准备解包 .../snappy-tools_10_amd64.deb ...
    正在解包 snappy-tools (10) ...
    正在设置 binfmt-support (2.1.5-1) ...
    正在设置 python3-lxml (3.4.4-1) ...
    正在设置 python3-magic (1:5.22+15-2ubuntu1) ...
    正在设置 python3-simplejson (3.7.3-1ubuntu1) ...
    正在设置 python3-xdg (0.25-4) ...
    正在设置 click-reviewers-tools (0.34) ...
    正在设置 libxmltok1 (1.2-3build3) ...
    正在设置 debsig-verify (0.13) ...
    正在设置 python3-bs4 (4.3.2-2ubuntu4) ...
    正在设置 python3-html5lib (0.999-3build1) ...
    正在设置 qemu-user-static (1:2.3+dfsg-5ubuntu9.2) ...
    正在设置 seccomp (2.2.3-2ubuntu1) ...
    正在设置 snappy-remote (0.4-0ubuntu1build1) ...
    # -*- mode: ruby -*-
    正在设置 android-tools-adb (4.2.2+git20130218-3ubuntu42) ...
    正在设置 android-tools-fastboot (4.2.2+git20130218-3ubuntu42) ...
    正在设置 click-ubuntu-policy (0.1) ...
    正在设置 kpartx (0.5.0-7ubuntu7.1) ...
    正在设置 ubuntu-snappy-cli (1.5ubuntu1) ...
    警告:指定的主目录 /nonexistent 无法访问:没有该文件或目录
    正在添加系统用户 `snappypkg'(UID 115)...
    正在添加新组 `snappypkg'(GID 121)...
    正在添加新用户 `snappypkg'(UID 115),具有所属组 `snappypkg'...
    未创建主目录 `/nonexistent'。
    正在设置 ubuntu-device-flash (0.31-0ubuntu1) ...
    正在设置 ubuntu-core-security-seccomp (15.10.17) ...
    正在设置 python3-libapparmor (2.10-0ubuntu6) ...
    
  • 验证安装:

    $ which snappy
    /usr/bin/snappy
    $ which snappy-remote
    /usr/bin/snappy-remote
    $ which snapcraft
    $ snapcraft
    未找到 snapcraft 命令
    $ find / -name snapcraft 2> /dev/null
    $
    
我在这里漏掉了什么吗?
此外,尽管已经安装了“snappy”和“snappy-remote”,但仍然出现错误。
$ snappy try
Unknown command `try'. Please specify one command of: booted, build, config, firstboot, hw-assign, hw-info, hw-unassign, info, install, internal-run-hooks, internal-unpack, list, login, purge, remove, rollback, search, set, update or versions
$ snappy-remote
the required flag `--url' was not specified

让我们在聊天中继续这个讨论。 - Mohit Rajan
1正如Mohit在聊天中所说,您没有粘贴snappy-tools install的完整输出,以便我们能够帮助您。请尝试执行以下操作:apt install snapcraft``` 并将两个输出都粘贴在这里。 - didrocks
@didrocks 是的,你可以帮助我,即使没有完整的 snappy-tools 安装输出(我无论如何都会包含)。实际上,你甚至已经提供了一个答案。我参考的手册没有提到 snapcraft 是一个单独的软件包,并且明确表示在安装 snappy-tools 后我 "将获得(它)"。当然,apt install snapcraft 确实安装了它。 - techraf
好的,谢谢你的反馈!我已经写了一个适当的答案,直到我在发行版中修复它之前,你介意接受它,这样大家就可以轻松找到它了吗?谢谢 :) - didrocks
目前,网页http://snapcraft.io/docs/build-snaps/不再提供适用于14.04版本的说明。看起来支持14.04版本变得太困难了。 - koppor
2个回答

看起来我们在14.04的打包元数据中有一个bug。这个问题将会被修复,但如果你遇到这种情况,只需确保安装了snapcraft即可。
sudo apt install snapcraft

只要snappy trysnappy-remote输出一些内容,就表示它们已经安装好了。在未来的版本中,我们将使用--help来替换它们,因为它们在没有任何参数的情况下触发的错误可能会让人困惑。

1比起snappy-tools的--help-v / --version更为重要。 - techraf
1好主意,我会这样做。 - didrocks

Snapcraft也可以使用snap自身进行安装:
sudo snap install snapcraft

我不知道这是否比apt更受欢迎。


这确实是安装snapcraft的首选方式。 - popey