采用 snaps 为 Linux 社区构建 Slack 
======

![][1]

作为一个被数以百万计用户使用的企业级软件平台，[Slack][2] 可以让各种规模的团队和企业有效地沟通。Slack 通过在一个单一集成环境中与其它软件工具无缝衔接，为一个组织内的通讯、信息和项目提供了一个易于接触的档案馆。尽管自从诞生后 Slack 就在过去四年中快速成长，但是他们负责该平台的 Windows、MacOS 和 Linux 桌面的工程师团队仅由四人组成。我们采访了这个团队的主任工程师 Felix Rieseberg（他负责追踪[上月首次发布的 Slack snap][3]，LCTT 译注：原文发布于 2018.2），来了解更多有关该公司对于 Linux 社区的态度，以及他们决定构建一个 snap 软件包的原因。

- [安装 Slack snap][4]

### 你们能告诉我们更多关于已发布的 Slack snap 的信息吗？

作为发布给 Linux 社区的一种新形式，我们上月发布了我们的第一个 snap。在企业界，我们发现人们更倾向于以一种相对于个人消费者来说较慢的速度来采用新科技，因此我们将会在未来继续提供 .deb 形式的软件包。

### 你们觉得 Linux 社区会对 Slack 有多大的兴趣呢？

我很高兴在所有的平台上人们都对 Slack 的兴趣越来越大。因此，很难说来自 Linux 社区的兴趣和我们大体上所见到的兴趣有什么区别。当然，不管用户们在什么平台上面工作，满足他们对我们都是很重要的。我们有一个专门负责 Linux 的测试工程师，并且我们同时也会尽全力提供最好的用户体验。

只是我们发现总体相对于 Windows 来说，为 Linux 搭建 snap 略微有点难度，因为我们是在一个较难以预测的平台上工作——而这正是 Linux 社区之光照耀的领域。在汇报程序缺陷以及寻找程序崩溃原因方面，我们有相当多极有帮助的用户。

### 你们是如何得知 snap 的？

Canonical 公司的 Martin Wimpress 接触了我，并向我解释了 snap 的概念。说实话尽管我也用 Ubuntu 但最初我还是迟疑的，因为它看起来像需要搭建与维护的另一套标准。然而，一当我了解到其中的好处之后，我确信这是一笔值得的投入。

### snap 的什么方面吸引了你们并使你们决定投入其中？

毫无疑问，我们决定搭建 snap 最重要的原因是它的更新特性。在 Slack 上我们大量运用了网页技术，这些技术反过来也使得我们提供大量的特性——比如将 YouTube 视频或者 Spotify 播放列表集成在 Slack 中。与浏览器十分相似，这意味着我们需要频繁更新应用。

在 MacOS 和 Windows 上，我们已经有了一个专门的自动更新器，甚至无需用户关注更新。任何形式的中断都是一种我们需要避免的烦恼，哪怕是为了更新。因此通过 snap 自动化的更新就显得更加无缝和便捷。

### 相比于其它形式的打包方式，构建 snap 感觉如何？将它与现有的设施和流程集成在一起有多简便呢？

就 Linux 而言，我们尚未尝试其它的“新”打包方式，但我们迟早会的。鉴于我们的大多数用户都使用 Ubuntu，snap 是一个自然的选择。同时 snap 在其它发行版上同样也可以使用，这也是一个巨大的加分项。Canonical 正将 snap 做到跨发行版，而不是仅仅集中在 Ubuntu 上，这一点我认为是很好的。

搭建 snap 极其简单，我们有一个创建安装器和软件包的统一流程，我们的 snap 创建过程就是从一个 .deb 软件包炮制出一个 snap。对于其它技术而言，有时候我们为了支持构建链而先打造一个内部工具。但是 snapcraft 工具正是我们需要的东西。在整个过程中 Canonical 的团队非常有帮助，因为我们一路上确实碰到了一些问题。

### 你们觉得 snap 商店是如何改变用户们寻找、安装你们软件的方式的呢？

Slack 真正的独特之处在于人们不仅仅是碰巧发现它，他们从别的地方知道它并积极地试图找到它。因此尽管我们已经有了相当高的觉悟，我希望对于我们的用户来说，在商店中可以获得 snap 能够让安装过程变得简单一点。

我们总是尽力为用户服务。当我们觉得它比其他安装方式更好，我们就会向用户更多推荐它。

### 通过使用 snap 而不是为其它发行版打包，你期待或者已经看到的节省是什么？

我们希望 snap 可以给予我们的用户更多的便利，并确保他们能够更加喜欢使用 Slack。在我们看来，鉴于用户们不必被困在之前的版本，这自然而然地解决了许多问题，因此 snap 可以让我们在客户支持方面节约时间。snap 对我们来说也是一个额外的加分项，因为我们能有一个可供搭建的平台，而不是替换我们现有的东西。

### 如果存在的话，你们正使用或者准备使用边缘 (edge)、测试 (beta)、候选 (candidate)、稳定 (stable) 中的哪种发行频道？

我们开发中专门使用边缘 (edge) 频道以与 Canonical 团队合作。为 Linux 打造的 Slack 总体仍处于测试 (beta) 频道中。但是长远来看，拥有不同频道的选择十分有意思，同时能够提早一点为感兴趣的客户发布版本也肯定是有好处的。

### 你们如何认为将软件打包成一个 snap 能够帮助用户？你们从用户那边得到了什么反馈吗？

对我们的用户来说一个很大的好处是安装和更新总体来说都会变得简便一点。长远来看，问题是“那些安装 snap 的用户是不是比其它用户少碰到一些困难？”，我十分期望 snap 自带的依赖关系能够使其变成可能。

### 你们对刚使用 snap 的新用户们有什么建议或知识呢？

我会推荐从 Debian 软件包来着手搭建你们的 snap ——那出乎意料得简单。这同样也缩小了范围，避免变得不堪重负。这只需要投入相当少的时间，并且很大可能是一笔值得的投入。同样如果你们可以的话，尽量试着找到 Canonical 的人员来协作——他们拥有了不起的工程师。

### 对于开发来说，你们在什么地方看到了最大的机遇？

我们现在正一步步来，先是让人们接受 snap，再从那里开始搭建。正在使用 snap 的人们将会感到更加稳健，因为他们将会得益于最新的更新。

--------------------------------------------------------------------------------

via: https://insights.ubuntu.com/2018/02/06/building-slack-for-the-linux-community-and-adopting-snaps/

作者：[Sarah][a]
译者：[tomjlw](https://github.com/tomjlw)
校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

[a]:https://insights.ubuntu.com/author/sarahfd/
[1]:https://insights.ubuntu.com/wp-content/uploads/a115/Slack_linux_screenshot@2x-2.png
[2]:https://slack.com/
[3]:https://insights.ubuntu.com/2018/01/18/canonical-brings-slack-to-the-snap-ecosystem/
[4]:https://snapcraft.io/slack/
