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 clonehttps://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 的原文或這個示例商店的說明。