【问题标题】:Install Go Programming Language on Ubuntu core (snappy)在 Ubuntu 核心上安装 Go 编程语言 (snappy)
【发布时间】:2016-01-01 15:08:22
【问题描述】:

我尝试在 Ubuntu Core (snappy) 上安装 Go 语言来创建 Web 服务器。怎么做?我在下载 go-lang 存档时遇到问题,因为 ubuntu 核心中没有“wget”。有什么解决办法吗?

【问题讨论】:

  • 您可以使用浏览器下载存档。
  • 不,我的意思是从命令行。
  • 可能curl 已安装,您可以使用它来代替wget。或者直接安装wget
  • curl 也没有安装。我试图在 snappy 上搜索“wget”包(snappy search wget)但没有结果
  • 很难准确地说出你的用例是什么,但是如果你想在你的 Ubuntu 服务器上部署一个 go 网络服务器,值得注意的是你不需要安装“go”来运行 go二进制文件。如果您的问题实际上只是:您不知道如何将任何文件移动到服务器... ftp?链接?

标签: linux ubuntu go wget snapcraft


【解决方案1】:

一般来说,Snappy 应该被视为一个部署目标,而不是一个开发系统。这一点和安卓或者iOS很像,依赖第二个系统进行开发。

所以在 Snappy 上部署 Go 应用程序的常用方法是:

  1. 在您的开发系统上构建应用程序。
  2. 将二进制文件打包为.snap
  3. 在 Snappy 上部署包(通过商店发布或手动复制到目标系统)。

步骤 (1) 和 (2) 可能最好使用 Snapcraft 工具完成,该工具内置支持构建 Go 应用程序。最后一个可以在目标系统上使用snappy install 命令完成。

需要注意的一点是,Snapcraft 还没有帮助您进行交叉编译,因此如果您选择的开发系统具有不同的架构,您可能会遇到问题(例如,如果您在 x86 上进行开发并且想要部署到 Raspberry Pi)。

如果是这种情况,这里的一种选择是使用 LXC 容器在目标系统上的容器中创建传统的 Ubuntu 系统。您应该可以使用如下命令进行设置(基于this post):

sudo snappy install lxd
lxc remote add images images.linuxcontainers.org
lxc launch images:ubuntu/vivid/armhf dev

然后您可以使用以下方法在容器中获取外壳:

lxc exec dev bash

您可以从那里安装 Go 和 Snapcraft,并构建包的 ARM 版本,以便安装在容器外部(或其他 ARM 设备上)。

【讨论】:

  • 谢谢!我决定在 Snappy 上使用 Docker 作为容器,然后在其上安装 nginx 作为 Web 服务器。基本上,我想创建一个使用 Ubuntu-core 作为操作系统的环境。该环境充当 Web 服务器。我做对了吗?
  • 这当然是您可以在 Snappy 之上运行 Web 应用程序的一种方式。在您询问在 Snappy 上运行 Go 应用程序的问题中,我回答了如何直接部署到该平台。
【解决方案2】:

另一种选择是使用经典模式:

$ sudo snap install classic --edge --devmode
$ classic

【讨论】:

    猜你喜欢
    • 2016-03-06
    • 2016-09-16
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多