什么是pica ?pica 怎么用?
官方文档介绍:https://linyaps.org.cn/guide/ll-pica/introduction.html
玲珑pica是一套用于将不同格式的应用包(deb、AppImage、Flatpak)转换为玲珑(Linglong)格式应用包工具集。该工具集由二进制程序和脚本组成,形成了一个完整的应用包转换生态系统。
deepin V23-25系统可以通过右键打开终端 输入 apt download linglong-pica 获取安装deb包
目前仓库最新版本是 linglong-pica_1.2.4-1+u005_amd64.deb
我们可以通过dpkg-deb -R 命令来解包deb包,一探究竟里面都有些什么内容(里面包含二进制文件及相关脚本)
DEB 包转换(ll-pica)
https://linyaps.org.cn/guide/ll-pica/convert.html
AppImage 应用转换(ll-appimage-convert)
https://linyaps.org.cn/guide/ll-appimage-convert/convert-appimage.html
Flatpak 应用转换(ll-pica-flatpak)
https://linyaps.org.cn/guide/ll-flatpak-convert/convert-flatpak.html
我们来重点学习和理解 如何利用ll-pica-flatpak convert 实现将flatpak的应用转换成 玲珑应用
$HOME/.cache/linglong-pica-flathub
$HOME/.pica/ll-pica-flatpak-config.json
$HOME/.pica/ll-pica-flatpak-refs.txt
--base
--base-version
--version
--build
--layer
ostree init --repo="$FLATHUB_CACHE" --mode bare-user-only
ostree --repo="$FLATHUB_CACHE" remote add --if-not-exists --no-sign-verify flathub "$FLATHUB_URL"
ll-pica-flatpak-utils generate_ref_cache
ostree --repo="$FLATHUB_CACHE" pull "$REF"
$REF
flathub:app/$APPID/$ARCH/stable
mkdir -p "$WORKDIR"
ostree --repo="$FLATHUB_CACHE" checkout "$REF" "$WORKDIR/flatpak"
org.deepin.base.flatpak.$(echo "$FLATPAK_RUNTIME"|awk -F'.' '{print $2}')
/app
/opt/apps/$APPID/files
1.创建 linglong.yaml
2.创建 profile 文件
ll-builder build
ll-builder export --layer
ll-builder export
经过大量应用测试,发现通过ostree 拉取应用时间比想象中的要久,而且非常不稳定,为了解决这个问题。作了好几套方案,把心路历程跟大家交流如下:
对于新手来说 首先要先本地配置好Flatpak 商店,打开网址 https://flathub.org/zh-Hans 根据自己的发行版 安装Flatpak,这里以Deepin 来演示。
sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak remote-modify flathub --url=https://mirror.sjtu.edu.cn/flathub
sudo flatpak remote-modify flathub --url=https://mirrors.sjtug.sjtu.edu.cn/flathub
如果想恢复官方源:
flatpak remote-modify flathub --url=https://dl.flathub.org/repo
如果想查看flatpak仓库的详细信息
flatpak remotes --show-details
到这里,针对Flatpak 部分就已经介绍完毕,如有错误,请多执教!
方法一:将Flathub 缓存目录 config 里面的默认仓库 改为上海交大的国内镜像站点)如下图
仅显示最新版
ll-cli search . --type=runtime
查看仓库中所有版本
ll-cli search . --type=runtime --show-all-version
下面红色框选部分就是 基于 Flatpak 运行时生成玲珑基础镜像名称
(部分flatpak 应用如果没有对应的runtime版本,可以手动修改linglong.yaml里面的版本号来测试是否可以正常运行)
flatpak remote-info [远程仓库名] [应用ID]
比如我想查询一个应用ID为 net.nokyan.Resources 在终端输入以下命令
flatpak remote-info flathub net.nokyan.Resources
方法二:通过使用本地已安装的 Flatpak 应用数据来构建玲珑包,而不是从远程仓库拉取,大大提高了转换效率和速度。(下一期详细介绍)先睹为快.....
实用
Featured Collection
Popular Events
什么是pica ?pica 怎么用?
官方文档介绍:https://linyaps.org.cn/guide/ll-pica/introduction.html
玲珑pica是一套用于将不同格式的应用包(deb、AppImage、Flatpak)转换为玲珑(Linglong)格式应用包工具集。该工具集由二进制程序和脚本组成,形成了一个完整的应用包转换生态系统。
deepin V23-25系统可以通过右键打开终端 输入 apt download linglong-pica 获取安装deb包
目前仓库最新版本是 linglong-pica_1.2.4-1+u005_amd64.deb
我们可以通过dpkg-deb -R 命令来解包deb包,一探究竟里面都有些什么内容(里面包含二进制文件及相关脚本)
DEB 包转换(ll-pica)/ AppImage 应用转换(ll-appimage-convert)/ Flatpak 应用转换(ll-pica-flatpak)
DEB 包转换(ll-pica)
https://linyaps.org.cn/guide/ll-pica/convert.html
AppImage 应用转换(ll-appimage-convert)
https://linyaps.org.cn/guide/ll-appimage-convert/convert-appimage.html
Flatpak 应用转换(ll-pica-flatpak)
https://linyaps.org.cn/guide/ll-flatpak-convert/convert-flatpak.html
我们来重点学习和理解 如何利用ll-pica-flatpak convert 实现将flatpak的应用转换成 玲珑应用
ll-pica-flatpak convert 工作原理详解
1. 初始化和配置-(首次运行有点久)
$HOME/.cache/linglong-pica-flathub
$HOME/.pica/ll-pica-flatpak-config.json
$HOME/.pica/ll-pica-flatpak-refs.txt
--base
:指定基础镜像名称--base-version
:指定基础镜像版本--version
:指定应用版本--build
:是否构建 UAB 包--layer
:是否导出为layer格式安装包ostree init --repo="$FLATHUB_CACHE" --mode bare-user-only
ostree --repo="$FLATHUB_CACHE" remote add --if-not-exists --no-sign-verify flathub "$FLATHUB_URL"
2. 应用获取和提取
ll-pica-flatpak-utils generate_ref_cache
ostree --repo="$FLATHUB_CACHE" pull "$REF"
$REF
的格式为:flathub:app/$APPID/$ARCH/stable
mkdir -p "$WORKDIR"
ostree --repo="$FLATHUB_CACHE" checkout "$REF" "$WORKDIR/flatpak"
3. 元数据提取和处理
org.deepin.base.flatpak.$(echo "$FLATPAK_RUNTIME"|awk -F'.' '{print $2}')
4. 路径调整
/app
路径替换为/opt/apps/$APPID/files
5. 生成玲珑配置文件
1.创建 linglong.yaml
2.创建 profile 文件
6. 构建和导出
--build
选项,执行:ll-builder build
--layer
选项,执行:ll-builder export --layer
ll-builder export
经过大量应用测试,发现通过ostree 拉取应用时间比想象中的要久,而且非常不稳定,为了解决这个问题。作了好几套方案,把心路历程跟大家交流如下:
对于新手来说 首先要先本地配置好Flatpak 商店,打开网址 https://flathub.org/zh-Hans 根据自己的发行版 安装Flatpak,这里以Deepin 来演示。
安装 Flatpak
添加 Flathub 仓库
更换为国内镜像——(这里提供上海交大的两个国内高速镜像站点-思源-致远)
如果想恢复官方源:
如果想查看flatpak仓库的详细信息
到这里,针对Flatpak 部分就已经介绍完毕,如有错误,请多执教!
方法一:将Flathub 缓存目录 config 里面的默认仓库 改为上海交大的国内镜像站点)如下图
补充几个非常重要的命令 在这里分享
1.玲珑base 和 runtime查询方法
仅显示最新版
查看仓库中所有版本
下面红色框选部分就是 基于 Flatpak 运行时生成玲珑基础镜像名称
(部分flatpak 应用如果没有对应的runtime版本,可以手动修改linglong.yaml里面的版本号来测试是否可以正常运行)
2.Flatpak 查询应用程序的元数据信息(无需本地安装该应用)
flatpak remote-info [远程仓库名] [应用ID]
比如我想查询一个应用ID为 net.nokyan.Resources 在终端输入以下命令
方法二:通过使用本地已安装的 Flatpak 应用数据来构建玲珑包,而不是从远程仓库拉取,大大提高了转换效率和速度。(下一期详细介绍)先睹为快.....