Canonical 演示为任意发行版创建一个 Snap 商店是如何的简单
创始人
2024-03-01 17:22:30
0

Snappy 和 Flatpak 之间的争吵仍在继续中,现在 Canonical 在刚刚发布的 Fedora 24 上演示了创建一个厂商无关的 Snap 商店是多么的简单。

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

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

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

Dustin 给我们介绍了一个由开发者 Bret Barker 发布在 GitHub 上的一个概念性的独立 Snap 商店,这个软件以 Apache 许可证开源,你可以在 GitHub 上 fork 它,并安装到任何 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 端口上。

客户端

在 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

更多可以看 Dustin 的原文或这个示例商店的说明

相关内容

Linux 应用打包格式 ...
IT之家 5 月 24 日消息,在今年 4 月召开的 Linux ...
2025-06-07 20:12:01
Linux Mint 新版...
IT之家 5 月 9 日消息,科技媒体 linuxiac 今天(5...
2025-05-09 08:18:50
代号“Xia”:Linux...
IT之家 1 月 16 日消息,代号为“Xia”的 Linux M...
2025-02-06 06:47:22
bwrap: execvp...
这个错误通常是由于GNOME Builder无法找到要执行的应用程...
2025-01-12 19:32:01
不显示字符串,显示此奇怪错...
根据提供的代码片段,错误似乎是由于未定义的函数Fn()导致的。要解...
2025-01-10 09:01:10
新手必读:在Ubuntu上...
在使用Ubuntu这个流行的Linux发行版时,很多新手用户可能会...
2024-12-26 13:12:54

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...