用 6 步做出 LocalSend Linux AppImage:从配置到跨发行版验证

发布时间:2026/10/23 3:39:00

用 6 步做出 LocalSend Linux AppImage:从配置到跨发行版验证 用 6 步做出 LocalSend Linux AppImage从配置到跨发行版验证【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsend本文讲解如何制作 LocalSend Linux AppImage适合想把这款工具分发到混合发行版环境的 Linux 用户以及想学习 Flutter Linux AppImage 打包的维护者。内容覆盖最小可行构建流程、appimage-builder 配置读法和 ARM64 的配法照做即可产出一个单文件可执行程序。适用场景与你能得到什么你要把工具发给同事他们的机器混用 Ubuntu、Fedora、Debian 等环境不想逐发行版处理依赖需要以单个文件分发用户chmod x后即可运行希望同一套代码同时跑在 x86_64 与 ARM64 设备上你正在做 Flutter 桌面应用的 Linux 发布想验证整条打包链路收益比较直接使用者不装运行时依赖系统版本不影响应用能否启动你也不用为每个发行版维护一套 deb/rpm 包。为什么选 AppImage 作为打包格式AppImage 把应用二进制、运行时库和桌面集成文件打进一个文件运行时自动解压挂载。相比逐发行版打包无依赖问题库随包携带避免这个发行版能跑、那个发行版起不来免安装不需要 root删除文件即卸载验证成本一致同一个文件可以在多个发行版上验证CI 也不必逐发行版准备环境LocalSend 的 AppImage 内容实际包含 Flutter 构建产物、托盘与 SVG 图标渲染所需的两个系统库以及桌面入口文件。桌面形态就是你在官方页面看到的这个界面文件可以在桌面与手机之间直接互发最小可行制作流程第一步安装构建依赖与 AppImage 工具。# Flutter 构建依赖 sudo apt install curl clang cmake libgtk-3-dev ninja-build sudo apt install libayatana-appindicator3-dev # AppImage 运行时与打包依赖 sudo apt install libfuse2 squashfs-tools再从工具官方发布页获取 appimage-builder 可执行文件chmod x后放入/usr/local/bin。第二步构建并打包。整条流程可以概括为一条流水线对应命令如下git clone https://gitcode.com/GitHub_Trending/lo/localsend cd localsend submodules/flutter/bin/flutter pub get submodules/flutter/bin/flutter pub run build_runner build -d submodules/flutter/bin/flutter build linux mkdir AppDir cp -r build/linux/x64/release/bundle/* AppDir cp support/build/appimage/AppImageBuilder_x86_64.yml AppImageBuilder.yml ./appimage-builder仓库里的 Linux AppImage 构建脚本 就是把这些步骤包成了脚本可以直接对照阅读。最终产物命名为LocalSend-版本号-x86_64.AppImage。appimage-builder 配置怎么读配置文件位于 support/build/appimage/每种架构一份 yml关键字段app_info.id / exec应用标识与可执行文件名exec_args: $表示透传全部命令行参数app_info.version会进入产物文件名发新版本时记得同步修改apt.arch要拉取的 apt 依赖架构apt.sources锁定 Ubuntu Jammy 的一组源用于固定依赖版本apt.include只放运行时必需的两个库托盘与 SVG 渲染files.exclude排除 man 页与文档文件控制体积runtime.env把系统路径补进XDG_DATA_DIRS保证应用能找到桌面资源关键片段x86_64 版本AppDir: app_info: id: org.localsend.localsend_app exec: localsend_app exec_args: $ apt: arch: [amd64] include: - libayatana-appindicator3-1:amd64 - librsvg2-common:amd64 runtime: env: XDG_DATA_DIRS: /usr/local/share/:/usr/share/:${XDG_DATA_DIRS}配置文件顶部的script块还有一条自动检查mksquashfs是否安装的语句写自己的配置时可以参考这个写法。跨架构与跨发行版注意事项两份架构配置之间只有三处不同项目x86_64ARM64apt.archamd64arm64include 架构后缀:amd64:arm64AppImage.archx86_64arm_64做跨发行版部署时另外注意三点依赖基线是 Ubuntu Jammy LTS目标发行版 glibc 越新越容易直接运行若要面向老系统先确认最低 glibc 版本构建机最好与目标架构一致不想准备两套机器就需要自行解决 Flutter 与 apt 的交叉编译yml 里有注释掉的test块可以在不同发行版镜像里跑./AppRun适合放到 CI 中启用 常见失败点与排查方法运行 AppImage 报 FUSE 相关错误目标机缺 libfuse2安装它或确认内核启用了 FUSE打包时提示找不到 mksquashfs构建机安装 squashfs-tools应用能启动但托盘没有图标检查apt.include里的libayatana-appindicator3-1是否带正确架构后缀SVG 图标显示为方块缺少 librsvg2-common产物架构或文件名不对用file命令查看产物架构并与 yml 中AppImage.arch比对 发布前精简检查清单yml 中version号与本次发布版本一致两份架构文件同步修改arch、include 后缀、AppImage.arch干净容器里 AppRun 能正常启动桌面环境下托盘图标与通知显示正常产物体积合理明显变大时检查是哪个包新带了文件已设置可执行位chmod x以上自检全部通过后你就可以把这个 AppImage 交给使用者了。下一步建议先在你支持的最老发行版上验证再在本地日常环境试用文件名保留版本号方便用户区分新旧版本。【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsend创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/22 4:57:26

深信服春招编程题解析:从基础算法到工程思维

1. 聊点题外话:为什么春招编程题值得翻出来反复看每年二三月份都是技术岗春招的集中期,相信不少准备投简历的朋友已经开始刷题了。深信服这家公司,在网络安全、云计算、企业级IT基础设施这个圈子里算是比较有存在感的,它的春招技术…

2026/10/21 19:27:22

OBS Studio 3D LUT 调色完全指南:快速给直播画面套上电影感

OBS Studio 3D LUT 调色完全指南:快速给直播画面套上电影感 【免费下载链接】obs-studio OBS Studio - Free and open source software for live streaming and screen recording 项目地址: https://gitcode.com/GitHub_Trending/ob/obs-studio 直播画面总是…

2026/10/23 4:48:57

基于 Java Spring Boot 的车队管理系统设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 4:48:57

JANUS:针对 LEO 卫星网络中波束跳变的拒绝服务攻击

大家读完觉得有帮助记得关注和点赞!!!摘要 低地球轨道(LEO)卫星网络正越来越多地用于提供全球连接。然而,每颗卫星的资源有限,需要根据地理和时间上变化的需求进行分配。波束跳变通过将卫星的服…

2026/10/23 4:48:56

SpringBoot+Vue的古诗词学习微信小程序设计实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 4:43:55

Rufus 完整指南:4 步做出绕过 TPM 2.0 的 Windows 11 启动盘

Rufus 完整指南:4 步做出绕过 TPM 2.0 的 Windows 11 启动盘 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus Rufus 是一款单文件的 Windows U 盘格式化工具,免费、不用安装…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑