0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将Linux安装包快速转成玲珑包

深度操作系统 来源: 深度操作系统 2025-03-12 16:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

感谢社区用户@mozixun 投稿,本篇将以 motrix 为例为大家展示如何将 Linux 安装包快速转成玲珑包

本教程适用于使用 AppImage 或基于 Electron 框架构建等几乎不需要额外依赖的应用

01前置知识

在开始教程之前,建议大家提前了解 deb/rpm 应用及玲珑容器内的工作流程,这有助于深入理解后续转换过程。

2c5bea14-fe61-11ef-9310-92fbcf53809c.png

XDG_DATA_DIRS 变量

2c78323c-fe61-11ef-9310-92fbcf53809c.png

玲珑应用运行环境 VSdeb/rpm 应用运行环境

更多详细理论知识可参考:

一级包管理器和二级‍包管理器的区别 玲珑内应用运行和直接用deb/rpm安装应用的区别,以及玲珑应用内的调用转发机制 如意玲珑应用构建指南(一):规范体系与配置文件全解析

通过以上基础知识后,我们不难发现,顺利实现玲珑应用的打包聚焦有 3 个关键点

应用本体 :这是打包的基础,缺少应用本体则无从谈起打包。

XDG_DATA_DIRS 下的快捷方式与图标 :在指定目录设置应用快捷方式和图标,便于用户在系统中快速定位与启动应用。

响应调用能力 :部分应用需具备对文件或网页调用做出响应的功能,以实现与其他应用或系统功能的交互。

02转换教程(以motrix为例)

Step 1下载打包样板并解压到合适目录

首先,我们需要下载打包样板并解压到一个你认为合适的目录,本教程使用安装包如下:

https://gitee.com/LFRon/linyaps-packaging-guide/releases/download/1.1/com.id.linyaps.tar.gz

Step 2解压软件安装包


.deb 解压

dpkg-deb-R<解压到文件夹>
.appimage 解压
 /xx/app.appimage --appimage-extract

Step 3

将软件本体放置到合适位置 首先进入至解压样板后的文件夹,再进入 linglong/sources。随后将 Step 2 中得到的软件本身(可能在 deb 解压后的/opt/xx 或者 /usr/lib 等位置)直接将文件夹本体替换。

以 motrix 为例,在 linglong/sources 文件夹中解压 motrix.appimage 后得到 squashfs-root 文件夹,将其复制到 linglong/sources 里,取代 your_app 文件夹,并重命名为你想要的文件夹名,如 motrix。

2c9be038-fe61-11ef-9310-92fbcf53809c.png

2ca44d22-fe61-11ef-9310-92fbcf53809c.png

经过上述操作后,linglong/sources 文件夹会成为如下结构。

2cbb8a46-fe61-11ef-9310-92fbcf53809c.png

最后,确定程序的执行文件是哪一个。以 motrix 为例,我们发现并不需要执行 AppRun,直接执行 motrix 二进制文件就可以直接启动。于是,我们就了解了在这个文件夹下启动它的命令是 ./motrix。

2ccc0d76-fe61-11ef-9310-92fbcf53809c.png

Step 4编辑 linglong.yaml 及 build 文件


4.1 编辑 linglong.yaml 文件

退回到工程目录后,编辑 linglong.yaml 文件,编写方法如下:

id:对标 deb 包 debian/control 文件里的 Package,这是应用唯一的识别符;

name:玲珑商店上显示的应用名字;

description:应用的介绍。

2ce45796-fe61-11ef-9310-92fbcf53809c.png

注意,在基础运行环境中,使用的 base(基础环境)必须声明,使用的 Runtime(运行库)可以不加。比如类似 motrix 这样的 Electron 应用,使用 org.deepin.base 作底已经足够,那就可以把 runtime 删了变成如下的样子。

2cfb0446-fe61-11ef-9310-92fbcf53809c.png

接着,在 Command 命令中,把"com.id.linyaps"字样改成你自己设置的 id 即可。 之所以没有要在 Command 里直接执行,是由于 Command 这一行在玲珑打包识别应用时会自动调整,无需人工干预,打包者只需在 Command 处调整好包名即可。如果需要,可以在自定义脚本中添加其他参数以适应玲珑环境或增加新功能。

4.2 编辑 build 脚本

2d0bc1be-fe61-11ef-9310-92fbcf53809c.png

将脚本中对应应用本体文件夹名称的部分改为你的应用本体文件夹名称。例如,案例中将文件夹名称改为 motrix,就直接在脚本中修改为 motrix。


接下来,根据已知的软件启动方式,修改脚本中的启动命令。对于 motrix,由于其 appimage 安装包设计是进入程序主文件夹后直接执行 motrix,因此将脚本中 "./样本启动文件.sh" 改为直接执行 motrix即可,如下图所示。

2d28afcc-fe61-11ef-9310-92fbcf53809c.png

若想开启 Electron 的 Wayland 会话,那也可以如下图所示修改(但目前 Electron 的 Wayland 显示协议版并不成熟,不建议使用)。

2d33f486-fe61-11ef-9310-92fbcf53809c.png

最终,build 构建脚本应如下所示(以 motrix 为例):

2d46b74c-fe61-11ef-9310-92fbcf53809c.png

Step 5加入 desktop 启动快捷方式和应用图标



主要的部分完成后,剩下的就是让应用的快捷方式可以正常运行应用,以及能正常显示图标。

5.1 修改 desktop 文件

首先,从 deb 安装包和 appimage 解压后的文件里找出 .desktop 的快捷方式,将其复制到工作目录 /linglong/sources/share/applications 文件夹。

2d61f534-fe61-11ef-9310-92fbcf53809c.png

打开 .desktop 文件,设置关键属性:

Name:设置启动菜单里会显示的应用名字;

Categories:设置应用快捷方所在的文件夹类型 (如图会放在网络应用里);

Exec:设置双击快捷方式后会执行的命令;

Icon:设置图标显示,如果你只如图设置应用名字那么桌面环境就会自动去寻找以该名字(不包括后缀名)对应的图片。

在这里我们主要设置 Exec 和 Icon 两个属性,Exec 只需要填写容器内执行路径,玲珑会自动生成前置路径。

2d799702-fe61-11ef-9310-92fbcf53809c.png

所以我们如下图填写 Exec 路径即可。

2d880f26-fe61-11ef-9310-92fbcf53809c.png

图像直接填写成你想要的名字即可(不要填绝对路径),比如我这里填成motrix。

2d9ca63e-fe61-11ef-9310-92fbcf53809c.png

最后保存 desktop 文件即可完成对desktop快捷方式的编辑。

5.2 放置对应应用图标

首先找到你想给应用设置成的图标,注意分辨率不要过高(以 KDE Plasma 为例,最高支持 512x512 像素)。

随后返回工作目录 /linglong/sources/share 并新建文件夹,命令如下:

mkdir -p icons/hicolor/512x512/apps
在文件管理器打开效果如下:

2daaab26-fe61-11ef-9310-92fbcf53809c.png

将图标重命名为 desktop 文件中设置的 Icon 名称加上后缀(如 motrix.png),然后复制到新建的图标路径中,效果如下:

2dbf7d3a-fe61-11ef-9310-92fbcf53809c.png

完成以上步骤,桌面快捷方式和应用图标就设置成功了。如果 AppImage 应用直接提供 usr/share 下的 icons 文件夹,只需确认图标名称,然后将图标复制到对应路径并按设置的名称重命名即可。

Step 6构建和调试应用


返回工作目录(linglong.yaml所在的文件夹),打开终端运行以下命令,开启构建应用。

ll-builder build

运行情况如下所示:

2dced6c2-fe61-11ef-9310-92fbcf53809c.png

若报错提示缺少 so 二进制库文件,需在 pkgs.org 或 Debian Packages 下载对应安装包,解包后将 so 文件放到工作目录的 linglong/sources/libs 文件夹下,重新执行 ll-builder build,如有需要重复此操作。

·pkgs.org:https://pkgs.org

·Debian Packages:https://www.debian.org/distrib/packages#search_contents

构建完成后,在终端中运行以下命令调试,检查应用是否正常运行。

ll-builder run
随后会出现以下界面:

2de93238-fe61-11ef-9310-92fbcf53809c.png

若出现由于 org.deepin.base 缺失 xdg-open 和 systemd-run 导致文件夹内打开和内置浏览器打开异常的问题,可下载以下压缩包,将 bin 和 libs 覆盖原文件夹以解决。

Step 7导出 layer 安装包


由于导出可运行的 uab 文件在除 deepin/UOS 以外的发行版不支持,而且导出的文件体积会巨大(因为包括 Runtime),所以本文只提供导出安装包的教程。 在 ll-builder run 测试通过后,终端运行以下命令导出安装包。

ll-builder export --layer

输出内容示例如下:

2e07b3e8-fe61-11ef-9310-92fbcf53809c.png

导出安装包后的工作区目录如下:

2e179c40-fe61-11ef-9310-92fbcf53809c.png

随后安装本地导出的 layer 包即可。 经过检查,桌面图标显示正常,那么一个样板玲珑应用就已经打包成功了。本教程至此结束,希望这个教程能更好地帮助您构建玲珑包!

再次感谢社区用户@mozixun 的分享。如果您在构建过程中遇到了任何问题,或者对我们的教程有任何建议,欢迎随时在deepin 社区论坛与我们交流,参与项目讨论。

关于项目

如意玲珑(Linyaps)是一种新型的独立包管理工具集,专注于解决 Linux 系统下由传统软件包格式的复杂性和交叉依赖关系引起的兼容性问题。项目通过先进的隔离技术,将应用与系统完全解耦,从根本上解决因环境变化引发的应用兼容性问题,实现“一个架构,一次构建”,致力于简化软件开发流程、降低维护成本、加强数据安全,促进技术与平台间的协同合作,构建一个更加繁荣、安全和高效的 Linux 软件生态环境。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217980
  • 软件
    +关注

    关注

    69

    文章

    5299

    浏览量

    90882
  • 容器
    +关注

    关注

    0

    文章

    521

    浏览量

    22812
  • 安装包
    +关注

    关注

    1

    文章

    16

    浏览量

    3901

原文标题:技术市集 | 如何将 Linux 安装包快速转成玲珑包

文章出处:【微信号:linux_deepin,微信公众号:深度操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    labview程序生成安装包问题

    一个编写好的labview程序生成安装包如何将其需调用的txt文件植入安装包,使得该程序安装于没有labview的电脑上时,程序运行时能
    发表于 05-07 11:35

    labview程序生成安装包问题

    一个编写好的labview程序生成安装包如何将其需调用的txt文件植入安装包,使得该程序安装于没有labview的电脑上时,程序运行时能
    发表于 05-08 08:34

    Linux版的labview安装包

    谁那里有Linux系统下的labview安装包?求发一份,不胜感激!!!!!!NI官网的2010XiLinx.iso(1.8G)请问这个是不是Linux版的labview?
    发表于 11-14 17:48

    linux下的labview安装包

    linux下的labview安装包,官方无法直接下载到,有资源的大神,麻烦分享一下,谢谢!!!
    发表于 10-24 14:01

    如何将多个LabVIEW生成的exe打包进同一个安装包??

    我用labview写了个软件,生成了多个版本的exe,如何将多个exe打包到同一个安装包中。在安装时能选择安装。不同的版本环境也不一样,在安装
    发表于 11-14 10:50

    sttoolset(STM8软件STVD安装包)

    sttoolset(STM8软件STVD安装包)
    发表于 09-17 09:45 603次下载

    altium designer 09安装包

    电子发烧友网站提供《altium designer 09安装包.zip》资料免费下载
    发表于 07-23 18:23 128次下载

    PROTUES安装包

    PROTUES安装包精心为大家准备的希望大家多多利用
    发表于 06-21 16:27 97次下载

    安装包 | 工具 | 资料 | 文档

    安装包 | 工具 | 资料 | 文档
    的头像 发表于 03-06 16:35 4416次阅读

    Office安装包软件在线下载

    Office安装包软件在线下载
    发表于 05-18 09:46 16次下载

    LINGO11软件安装包

    LINGO11软件安装包
    发表于 11-13 15:43 11次下载

    cosmic安装包

    cosmic 安装包免费下载。
    发表于 09-07 15:31 2次下载

    APM32 PROG安装包

    APM32 PROG安装包
    发表于 11-09 21:03 6次下载
    APM32 PROG<b class='flag-5'>安装包</b>

    NOTEPAD++安装包

    NOTEPAD++安装包
    发表于 11-14 14:55 11次下载

    照明护照APP安装包如何安装到手机

    1、以微信为例,接收到安装包后,点击安装包,然后点击保存到手机APP首先保存到手机2、找到手机的文件管理,然后点开里面的下载管理找到手机的文件管理3、点击APP安装包,然后点击应用点击安装包
    的头像 发表于 12-29 14:53 3301次阅读
    照明护照APP<b class='flag-5'>安装包</b>如何<b class='flag-5'>安装</b>到手机