
开发者发布FELF格式:无需FUSE或root即可打包单文件可执行程序
来源标题:Show HN: FELF – AppImage-like single binaries without FUSE, root, or a runtime
开发者推出FELF打包格式,可在打包时自动收集程序所需的全部共享库,连同自带glibc和修补后的动态链接器塞入单个可执行文件。该文件无需运行时或特殊权限,可在FROM SCRATCH Docker、Alpine Linux等环境中直接运行。它还原生支持通过符号链接提供多程序入口,类似coreutils的做法。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
HN 的朋友们好!我一直以来在分发使用共享库的程序时都很头疼,AppImage 在我看来做得太多了,而容器又太重了——而且集成起来也不总是很顺畅。我很久以前就转到了 nix,但在 nix 和其他发行版之间互相分发仍然很麻烦,尤其是想在 nix 里跑一个外来的应用,或者在其他发行版里不装包管理器就跑一个 nix 应用的时候。为此,在 Claude 的帮助下,我实现了一种格式:它在打包时推断出程序需要的所有共享库,把这些库连同它自己的 glibc 和一个打过补丁的动态链接器一起放进单个可执行文件里。这意味着你实际上不需要任何 runtime,也不需要任何特殊权限,它可以在一个 FROM SCRATCH 的 docker 里、alpine linux 等等环境中运行……而且它还支持像 coreutils 那样通过符号链接访问多个程序,所以很适合这种用途。你只需要用:> felf pack $(which git) --output git.felf这样你就已经得到一个在任何地方都能用的 git 二进制文件了,无论你是在哪个发行版上构建的。它只打包这个二进制文件及其依赖。本质上,效果类似于你把所有它需要的库都 LD_PRELOAD 了。说到底,我们很久很久以来一直在和这些恶魔作斗争,chroots/docker/appimage/flatpack/nix 等等……所以这张 xkcd 漫画很应景:https://xkcd.com/927/我很高兴分享这个项目,希望它能启发这方面的新发现/新工具! 评论 URL:https://news.ycombinator.com/item?id=50415219 点数:1
评论数:0
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。