Canonical 演示为任意发行版创建一个 Snap 商店是如何的简单
Snappy 和 Flatpak 之间的争吵仍在继续中，现在 Canonical 在刚刚发布的 Fedora 24 上演示了创建一个厂商无关的 Snap 商店是多么的简单。
snap flatpak snappy
113.119.206.180
支持！如果真的能统一各个linux发行版的包就好了。
来自广东广州的 Chrome 51.0|Windows 7 用户
2016-06-27T09:51:04.000
58.61.147.113
no direct reply to &quot;Why open source?&quot;
来自广东深圳的 Opera 38.0|GNU/Linux 用户
2016-06-27T15:05:57.000
58.61.147.113
没有直接回应为啥不是开源软件？打了自己的小算盘？
来自广东深圳的 Opera 38.0|GNU/Linux 用户
2016-06-27T15:57:07.000
58.61.147.113
没有直接回应为啥不是开源软件？打了自己的小算盘？
来自广东深圳的 Opera 38.0|GNU/Linux 用户
2016-06-27T15:57:08.000
111.20.112.126
Flatpak肯定是自由软件的！！！！！！
来自陕西西安的 Chrome 51.0|GNU/Linux 用户
2016-06-27T16:26:28.000
115.197.187.105
Canonical , 你走开！
fxbszj [Firefox 47.0|Windows 7]
2016-06-27T16:27:42.000
124.250.3.18
他也是蛮拼的了。
z75315 [Chrome 51.0|Windows 10]
2016-06-28T11:15:09.000
Snappy 和 Flatpak 之间的争吵仍在继续中，现在 Canonical 在刚刚发布的 Fedora 24 上演示了创建一个厂商无关的 Snap 商店是多么的简单。
![](/data/attachment/album/201606/27/085013exig00r7em82ip8p.jpg)


Snappy 和 Flatpak 之间的[争吵](/article-7484-1.html)仍在继续中，现在 Canonical 在刚刚发布的 Fedora 24 上演示了创建一个厂商无关的 Snap 商店是多么的简单。


Snap 宣传它是[面向各个主要 Linux 发行版的通用二进制软件包格式](/article-7464-1.html)，人们对此非常关注，也有很多[议论](/article-7484-1.html)。就在几天前， Canonical 和 Ubuntu 的创始人 Mark Shuttleworth 对这些人们重点关注的问题[做了一番答复](/article-7506-1.html)，表示 Canonical 并不指望别的操作系统使用 Ubuntu 的 snap 商店，你们完全可以自己搞嘛，就是个 HTTPS 而已。


针对指责 Snap 商店没有开源的意见，Canonical 的 Ubuntu 产品与战略总监 Dustin Kirkland 说，“事实上，你可以在任何支持 Snap 的操作系统上运行你的 Snap 商店，真的。”


### 一个可以提供 Snap 软件包服务的最简单的示例商店


Dustin 给我们介绍了一个由开发者 Bret Barker 发布在 GitHub 上的一个[概念性的独立 Snap 商店](https://github.com/noise/snapstore)，这个软件以 Apache 许可证开源，你可以[在 GitHub 上 fork 它](https://github.com/noise/snapstore)，并安装到任何 GNU/Linux 发行版上去。


#### 服务器端（Snap 商店）


“首先，我启动一个 AWS 实例，当然，我可以启动一个 Ubuntu 16.04 LTS 实例，但实际上我启动的是一个 Fedora 24 实例。”


如果你的机器上已经有了 snap 环境，你可以直接用：



```
snap install snapstore-example
```

来安装这个示例商店。


如果没有，你可以手动来安装。首先安装 python 虚拟环境：



```
sudo dnf install python-virtualenv
```

克隆这个示例商店的代码：



```
git clone https://github.com/noise/snapstore.git
cd snapstore

```

设置虚拟环境并安装依赖包：



```
virtualenv env
. env/bin/activate
pip install -r requirements.txt

```

运行：



```
python store.py
```

这样 snap 商店就安装好了，它会监听在默认的 5000 端口上。


![Snap 商店监听在 5000 端口上](/data/attachment/album/201606/27/085028qf16evklgp9k66ae.jpg)


#### 客户端


在 Fedora 24 上运行 



```
sudo dnf install snapd 
```

来安装 Snappy，它同时也会安装必要的依赖包，如： squashfs-tools、kernel-modules。


你可以通过安装一个测试包来看看 snap 是否正常工作：



```
sudo snap install hello
```

如果正常的话，然后修改 `/etc/environment`，加入你的商店 URL，强制 snapd （Snappy 守护进程）与刚刚创建的 Snap 商店连接：



```
SNAPPY_FORCE_CPI_URL=http://localhost:5000/api/v1/

```

重启 snapd：



```
sudo service snapd restart
```

这个示例商店支持如下命令来查找和安装 snap 软件包：



```
snap find foobar25
sudo snap install foobar25
```

![使用 snap 去查找软件包](/data/attachment/album/201606/27/085029t63lb02wm0qh3lwm.jpg)


更多可以看 Dustin 的[原文](http://blog.dustinkirkland.com/2016/06/howto-host-your-own-snap-store.html)或这个[示例商店的说明](https://github.com/noise/snapstore)。


 

