ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

一个文件、零依赖:在任意 Linux 发行版上免 root 跑起 LocalSend AppImage

一个文件、零依赖:在任意 Linux 发行版上免 root 跑起 LocalSend AppImage

一个文件、零依赖:在任意 Linux 发行版上免 root 跑起 LocalSend AppImage

【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsend

换台新电脑,不想再为依赖折腾半天?LocalSend AppImage 就是为此而生——单个文件拖过来、赋权、双击,局域网里传文件立刻能用,全程免 root、免装系统依赖。

选型前置:先把几种装法比清楚

先想清楚自己要什么,一句话对号入座:

  • 在意"下载即用、哪台机器体验都一个样" → 选 AppImage
  • 在意最强的沙箱隔离 → 选 Flatpak 或 Snap
  • 在意包体积小、交给系统包管理器长期统一维护 → 选原生 deb / rpm

三种没有绝对赢家,只是取向不同。AppImage 赢在"一份文件通吃所有发行版",输在隔离性弱、体积偏大;原生包赢在轻、能被系统自动更新,输在每个发行版各出一版、体验可能漂移。

三步跑起来:从拿到文件到局域网互传

结论先给:只要三步,不用编译、不用碰源码。

1. 下载对应架构的文件

Release 页里按架构挑:普通 x86_64 的 PC 选x86_64版,树莓派这类 ARM 板子选arm_64版。没有现成包就 clone 仓库自建,地址 https://gitcode.com/GitHub_Trending/lo/localsend 。

2. 给文件加执行权限

AppImage 本质是个可执行文件,默认没执行位,得手动补一下。

chmod +x LocalSend-*.AppImage

3. 运行并互传

./LocalSend-*.AppImage

窗口弹出来后,同一局域网里的设备很快互相发现,选文件、点发送就开传。

发送页:选好文件和附近设备,传输马上开始,界面在各平台保持一致。

拆开看:单个 AppImage 里到底装了什么

一句话:它不是"把系统装进去",而是"只带走自己必需的两样东西"。

打包流程长什么样

整个流程就写在约 40 行的构建脚本里,主干是这几步:

  1. 用子模块锁定的 Flutter 版本编译 Linux 产物,不依赖本机装了哪个 Flutter
  2. 把编译产物整体拷进 AppDir
  3. 交给 appimage-builder 按配方只拉两个必需库
  4. 剔除 man、README、changelog 与主题包
  5. 压缩打包成单个.AppImage

传输进行中:选中目标设备后走局域网,实时显示进度与速度,全程不碰互联网。

依赖为什么能锁死

配方把依赖写成"只收名单上这两样":libayatana-appindicator3-1(系统托盘图标)和librsvg2-common(SVG 图标渲染)。运行时库统一按 Ubuntu 22.04(jammy)基线拉取,版本因此被钉死、不随宿主机漂移。同时显式排除adwaita-icon-theme主题、usr/share/man与各依赖的 README/changelog,并注入XDG_DATA_DIRS让应用在沙箱里仍能读到宿主桌面元数据——粗算下来比全量打包轻大约 15%。细节都摆在x86_64 配置里。

树莓派这类 ARM 设备为什么也能跑

因为 x86_64 和 ARM64 各有一份配方,ARM64 配置只是把架构字段换成 arm64,其余一字不差。于是普通 PC 和 ARM 开发板各拿到一个能直接跑的文件,不用二次适配。

排障问答

三个问题覆盖九成线上反馈。

问:双击没反应,终端冒出 FUSE 相关报错? 答:多半是宿主机缺libfuse2运行时库。装上就好:Debian/Ubuntu 系用 apt 装libfuse2,Fedora 系装fuse-libs。

问:两台设备都开着 App,却互相搜不到? 答:大概率是防火墙挡了 LocalSend 的默认端口 53317(tcp 和 udp 都要放通)。ufw 用户跑下面这条,firewalld 用户加 53317 的 tcp/udp 规则后重载即可,顺带查下路由器有没有开 AP 隔离。

sudo ufw allow 53317

问:窗口正常,托盘里却没有图标? 答:LocalSend 走 AppIndicator 协议,部分桌面实现不一致。官方 AppImage 已内置libayatana-appindicator3-1,直接用即可;自己构建则按构建脚本头部注释装libayatana-appindicator3-dev。

对号入座:这套方案适不适合你

适合还是不适合,看你在意什么。

  • 适合你:手上有好几台不同发行版的机器、想一份文件全通吃;或者就图个免安装、用完不留痕。
  • 不适合你:要最强沙箱隔离,去看 Flatpak / Snap;要系统级自动更新、包越小越好,走原生 deb / rpm。

收益很直接:一个文件在任意发行版上免安装、零 root 跑起来,不碰依赖地狱。局限也摆在这:包体自带全套依赖所以偏大,且没有内置自动更新,升级得自己换文件。


核心关键词:LocalSend AppImage 长尾关键词:Linux 免安装运行 LocalSend、AppImage 授权与启动、LocalSend 双架构构建、局域网文件传输端口、AppImage 依赖精简打包

【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsend

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进