简单的介绍下他
Flatpak(前世为xdg-app) 是一种用于构建,分发,安装和运行应用程序的技术。它主要针对的是Linux桌面,通过在沙箱中隔离应用程序来提高Linux桌面的安全性,允许应用程序安装在任何Linux发行版上。
其实说白了就是解决了Linux软件安装时的依赖问题(和我一样使用debain系列并且使用gdebi的同学表示我们用的挺好的)解决过程就是把依赖一起打包进去。
现在deepin开始了仓库迁移计划,部分软件开始提供flatpak包安装,用deepin的小伙伴们还是过得比较滋润的。
毕竟为了发展成真正可以独当一面的伟大linux,deepin使用flatpak也是为了尽可能的回避Linux长久以来的依赖问题,并且由于类似于沙盒,不会干扰系统(绿色啊),算是一种比较实在的解决方法吧,这样也促使开发者竟可能的使用依赖较少的软件结构,这样也有利于软件的瘦身,不然要是像qt那种玩意,我估计是“哇,我还是不装了吧”
好吧不多说了上例子吧,这边使用官网的Helloworld例子吧(我也是刚刚接触,来传播一下而已)
第一步:install flatpak
Fedora用户(毕竟红帽亲儿子)
$ sudo dnf install flatpak
ubuntu用户:
$ sudo add-apt-repository ppa:alexlarsson/flatpak
$ sudo apt update
$ sudo apt install flatpak
第二步:install a runtime
Flatpak要求每一个应用指定一个只包含这个应用所需要的依赖的runtime,我们使用gnome的开发平台对应的runtime,为了安装他我们需要先使用ppa添加软件仓库
flatpak remote-add --from gnome https://sdk.gnome.org/gnome.flatpakrepo
然后安装
$ flatpak install gnome org.gnome.Platform//3.22
环境安装完成后我们就可以开始创建我们的经典项目HelloWod了
首先我们需要按照标准创建项目目录(app的源代码目录):
$ mkdir hello
$ mkdir hello/files
$ mkdir hello/files/bin
$ mkdir hello/export
然后我们需要在bin目录下创建一个简单的脚本打印HelloWorld
即在hello/files/bin下创建helloworld.sh
helloworld.sh中写入去下内容:
#!/bin/sh
echo "Hello world, from a sandbox"
然后我们需要提供一些关于我们应用的信息,我们载hello目录下创建一个文件metdata,内容为
[Application]
name=org.test.Hello
runtime=org.gnome.Platform/x86_64/3.22
command=hello.sh
指定应用,runtime以及一些其他信息
好了现在我们可以去打包应用了
打包扔仓库
flatpak build-export repo hello
这会创建一个本地仓库repo放我们的应用
好了我们已经打包好了我们的应用,可以开始安装了
flatpak --user remote-add --no-gpg-verify tutorial-repo repo
flatpak --user install tutorial-repo org.test.Hello
OK我们完成了,这个软件会安装的我们的当前用户的家目录下
让我们运行一下
flatpak run org.test.Hello
他会打印出:Hello world, from a sandbox
大功告成
希望deepin能帮忙汉化下官方文档,毕竟看着吃力。
剩下的周末更新,我得把我们宿舍的大作业给搞了,单撸代码的日子又到了