ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

LocalSend AppImage 跨发行版文件传输与构建指南

LocalSend AppImage 跨发行版文件传输与构建指南 LocalSend AppImage 跨发行版文件传输与构建指南【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsendLocalSend 是一个开源、跨平台的局域网文件传输工具定位是 AirDrop 的替代品。两台设备只要在同一 Wi-Fi 下就能互相发现、互传文件不需要账号也不经过任何第三方服务器。它的 Linux 发行版以 AppImage 形态提供不需要安装、不写系统目录。AppImage 下载与运行跨发行版文件传输从发行版官方软件源Ubuntu、Debian、Fedora、Arch 等均有收录或项目发布页获取对应架构的 AppImage 文件授予执行权限后直接运行chmod x LocalSend-*.AppImage ./LocalSend-*.AppImage如果走源码构建路线构建脚本位于 support/scripts/compile_linux_appimage.sh完整流程是git clone https://gitcode.com/GitHub_Trending/lo/localsend # 安装依赖curl clang cmake libgtk-3-dev ninja-build libayatana-appindicator3-dev bash support/scripts/compile_linux_appimage.sh脚本把 Flutter 编译出的build/linux/x64/release/bundle产物拷入 AppDir再交给appimage-builder打包最终得到一个 AppImage 文件。适用环境Ubuntu 22.04 构建机x86_64 或 ARM64 产物源码构建前置条件为 Flutter 工具链子模块方式固定版本与 Rust 工具链。桌面与手机端在同一局域网下的接收界面打包策略为什么 AppImage 只内置两个系统库LocalSend 的 GUI 是 Flutter Linux 产物本质是一个链接 GTK 3 的动态可执行文件。构建方面临两个约束宿主发行版五花八门包名和库版本对不上但 AppImage 又不可能把整个系统装进去。取舍的结果是GTK 3 这类大多数桌面系统自带的库不打包只内置 Flutter 桌面应用自己会显式链接、且容易缺失的两个库。配方见 support/build/appimage/AppImageBuilder_x86_64.ymlARM64 版本同目录下的_arm_64.yml关键片段apt: sources: - sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy main # 用 Ubuntu 22.04 做统一基线避免跟随宿主版本漂移 include: - libayatana-appindicator3-1:amd64 # 系统托盘缺了图标直接消失 - librsvg2-common:amd64 # SVG 图标渲染 exclude: - adwaita-icon-theme:* # 宿主系统自带图标主题剔除以减体积 runtime: env: XDG_DATA_DIRS: /usr/local/share/:/usr/share/:${XDG_DATA_DIRS} # 图标查找路径指向宿主保留用户主题排除 adwaita 图标主题这类纯外观文件是为控制体积代价则是 AppImage 在极简容器或老旧系统上仍可能因缺 GTK 或 FUSE 起不来而 Snap、Flatpak 自带运行时不存在这一类问题。另一个代价是更新AppImage 没有包管理器的自动更新通道换版本就是手动替换文件。桌面端选中文件、等待目标设备出现的传输流程真实场景怎么用无 root 权限的办公电脑️。你的公司电脑装不了包。把 AppImage 放 U 盘插入后chmod x再运行即可不写任何系统目录卸载就是删文件。无图形界面的远程服务器。仓库里的 cli/ 是 Rust 编写的终端版和 GUI 共享同一套协议核心位于 packages/core/。cargo build --release --manifest-path cli/Cargo.toml LOCALSEND_DESTINATION/data/received ./target/release/localsend-cli接收端用LOCALSEND_DESTINATION指定保存目录按Y接受请求。CLI 内置了一个 GUI 没有显式入口的能力按WS生成一个分享链接浏览器直接 HTTP 下载文件。原因是浏览器无法校验自签名证书链接模式下服务临时切到明文 HTTP同一机制下WR还能让浏览器反向上传文件。给 AppImage 添加自定义依赖。构建配方是纯数据文件在include列表里加一行包名即可include: - libayatana-appindicator3-1:amd64 - librsvg2-common:amd64 - libnotify-bin:amd64 # 追加桌面通知支持改完重跑构建脚本即可。这是二次定制的最低成本入口不用动任何 Dart 或 Rust 代码。和替代方案比一比方案平台覆盖传输方式运行形态LocalSendWindows / macOS / Linux / iOS / Android局域网直连端到端加密AppImage、deb、rpm、Snap 等AirDrop仅苹果生态局域网直连系统内置KDE Connect以 Linux / Android 为主局域网需安装客户端如果你只有一台 iPhone 加一台 Mac系统自带能力就够了跨厂商设备的纯本地传输是 LocalSend 的主场。注意它的发现依赖同一局域网跨网段、需要中转服务器的场景不在它的射程内需要自己解决网络连通性。常见问题FUSE、沙箱与托盘图标提示 FUSE library not found→ 宿主系统缺少 FUSE 运行库。修复sudo apt install libfuse2Fedora 用sudo dnf install fuse-libs。双击无反应或提示沙箱加载失败→ AppImage 的私有挂载bubblewrap被宿主环境拒绝。先试./LocalSend-*.AppImage --no-sandbox。托盘图标不显示→ AppImage 已内置 libayatana-appindicator若你的桌面环境不加载 appindicator 协议改用任务栏入口或调整桌面壳配置。发现不到对端设备→ 两台设备不在同一子网或防火墙拦了多播广播。确认同网段后放行 UDP 多播与 TCP53317CLI 中可通过LOCALSEND_PORT环境变量查看当前端口。该方案不适合的情况跨网段或远程传输依赖局域网多播发现无中继能力需要企业级自动更新与统一管控的桌面Snap、Flatpak 在这两点更完整。仓库地址https://gitcode.com/GitHub_Trending/lo/localsend 也可以直接在你的发行版软件源里搜索 localsend 安装。【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsend创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表