资讯详情

资讯详情

LocalSend AppImage:一份文件跑遍所有发行版

LocalSend AppImage一份文件跑遍所有发行版【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsendLocalSend 是开源的 AirDrop 替代方案走局域网传文件。本文拆解它的 LocalSend AppImage 打包是怎么做的从 Flutter 编译到 appimage-builder 配置讲清楚一个文件如何在任意发行版上直接跑起来。一个工具落到 50 台不同的桌面上想象一下运维场景50 台办公电脑一半 Ubuntu 22.04几台 Fedora 39还有开发者自己装的 Arch。装个传文件工具deb 在 Fedora 上装不了rpm 在 Ubuntu 上又装不了Arch 上还得自己编。真实需求其实就一句话给一个文件丢到桌面双击就能跑不装东西、不要 root、不用管对方是什么发行版。Flutter 打包 AppImage 的三步入口是构建脚本 compile_linux_appimage.sh整个流程三步关键决策点值得单独看。第一步编出 Flutter Linux 版脚本不用系统里的 flutter而是用仓库子模块里锁定的版本避免不同机器之间版本漂移先把源码拷到 /tmp 再构建不污染仓库git submodule update --init alias fluttersubmodules/flutter/bin/flutter flutter clean flutter pub get flutter pub run build_runner build -d flutter build linux mkdir AppDir cp -r build/linux/x64/release/bundle/* AppDirflutter build linux的产物只是个 bundle 目录拷进 AppDir 才算 AppImage 打包的起点。第二步appimage-builder 配置写两件事配置 AppImageBuilder_x86_64.yml 是全篇的灵魂用 Ubuntu 22.04jammy的源来拉 Flutter 需要的系统库include 里只有两个包一个是系统托盘、一个是 SVG 渲染其余全部排除apt: arch: [amd64] include: - libayatana-appindicator3-1:amd64 - librsvg2-common:amd64 exclude: - adwaita-icon-theme:* runtime: env: XDG_DATA_DIRS: /usr/local/share/:/usr/share/:${XDG_DATA_DIRS}include 管带什么进包exclude 管不带什么垃圾man 手册和一堆 README 文档都被清掉包才轻。第三步双架构各一份 recipex86_64 和 ARM64 的差异只有两处arch 字段和依赖包的架构后缀ARM 就是单独一份 AppImageBuilder_arm_64.yml。跑一遍appimage-buildersquashfs 压出来就是单文件产物。跨发行版部署跟 Flatpak、Snap 比比方案部署方式跨发行版沙箱隔离AppImage单文件双击运行全发行版通用弱Flatpak仓库/清单安装好强Snap需账号安装好强deb/rpm按发行版安装需逐个适配无结论明确目标是拿来即用、不装任何东西选 AppImage必须把不可信代码关进沙箱选 Flatpak。LocalSend 是局域网内可信工具AppImage 更合适。上手验证十分钟走通一次构建最短路径是直接跑官方脚本git clone https://gitcode.com/GitHub_Trending/lo/localsend cd localsend/support/scripts ./compile_linux_appimage.sh脚本头部注释列了前置依赖libgtk-3-dev这类 Flutter 构建依赖、libayatana-appindicator3-dev外加libfuse2和 appimage-builder 工具本身。构建 → AppDir 组装 → appimage-builder 三步走完得到LocalSend-*-x86_64.AppImagechmod x 后双击收到 Receive 页面、能看到同网段的其他设备就说明做成了。yaml 里的每个参数不必全追能跑起来就算过关。这三种情况别用这套方案⚠️ 坦率说有三个场景不推荐需要严格沙箱的AppImage 隔离弱换 Flatpak需要自动更新推送的AppImage 靠手动拿新包内部分发得自己想办法只要无界面收发文件的仓库里有独立 CLI不必打包桌面版。一句话收束jammy 源锁系统库include 能少一个是一个产物就是放哪都能跑的文件。要支持 ARM 桌面换 arm_64 那份 recipe 再跑一遍即可。关键词LocalSend AppImage, Linux 跨发行版部署, Flutter AppImage 打包【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsend创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →