xlings
具备类操作系统 SubOS 隔离的通用软件包基础设施。
多版本 · 无根权限 · 去中心化索引 · 支持 Agent。
Website | Docs | Package Index | Forum
中文 | English
使用者:MCPP · 即将推出的 Luban Linux
为什么选择 xlings?
一个工具即可安装任意版本的任何软件,以无根权限运行,并实现类操作系统隔离——适用于 Linux、macOS 和 Windows。
“支持”包含三个独立的问题,因此这里列出三列。xlings 运行的平台并不自动意味着每个软件包都有该平台的构建产物,而这两者也都无法说明 --sandbox
实际能为你提供多少隔离。
| 平台 | xlings 发布状态 | 软件包覆盖范围 | subos --sandbox 隔离 |
|---|---|---|---|
| Linux x86_64 | ✅ 已发布 | 完整 | 文件系统(bwrap / proot) |
| Linux aarch64 | ✅ 已发布 | 部分——许多配方仅发布 x86_64 构建产物 | 文件系统,一旦该架构的可用后端就绪 |
| macOS 14+ arm64 | ✅ 已发布 | 部分——部分配方仅提供 x86_64 | 仅 $HOME |
| Windows x86_64 | ✅ 已发布 | 部分 | 仅 %USERPROFILE% |
包覆盖范围是配方(recipe)的属性,而非 xlings 的属性:xlings install
仅当配方枚举了其架构且你的架构不在其中时,才会拒绝该目标。当配方仅包含一个工件时,它将被安装,
并告知你该配方无法确认你的架构。
macOS 和 Windows
--sandbox并非安全边界。 它重定向 主目录,以便工具将点文件写入某个隔离位置。它不 隔离文件系统、网络或进程。请使用操作系统沙箱或 虚拟机来运行你不信任的代码。
→ xlings 与 apt / nix / docker 的对比
核心能力
- 通用包基础设施 — 二进制 / 脚本 / 配置 / subos / 教程,全部以 xpkg 形式提供
- 多版本共存 — N 个版本并行;版本视图 + 引用计数(N 个环境 ≈ 1 倍存储)
- 3 级 SubOS 隔离 — shell(环境切换)/ FS(bwrap/proot,无 root)/ image(ext4,root)
- 去中心化包索引 — 官方 + 第三方 + 自托管;用于二进制镜像的资源服务器
- JSON 事件接口 —
xlings interface(NDJSON),面向 AI 代理、CI 及第三方工具 - 自诊断 —
xlings self doctor --fix检查四个状态层并在一次运行中修复它们
快速开始
安装 — Linux / macOS
curl -fsSL https://raw.githubusercontent.com/openxlings/xlings/main/tools/other/quick_install.sh | bash
安装 — Windows (PowerShell)
irm https://raw.githubusercontent.com/openxlings/xlings/main/tools/other/quick_install.ps1 | iex
xlings install gcc@16 node@24 cmake # install (version optional)
xlings use gcc@16 # switch active version
xlings search python # search packages
xlings list # list installed
让 AI 智能体安装并解释它
将此内容粘贴到任何 AI 智能体(Claude、Codex、OpenCode、…)中:
Read the README of https://github.com/openxlings/xlings and install xlings on my machine.
- Linux/macOS: curl -fsSL https://raw.githubusercontent.com/openxlings/xlings/main/tools/other/quick_install.sh | bash
- Windows: irm https://raw.githubusercontent.com/openxlings/xlings/main/tools/other/quick_install.ps1 | iex
Then run `xlings agent usage` and follow it to show me how to use xlings.
xlings 内置了一个代理指南——安装后,任何代理都可以自学完整的工作流程:
xlings agent # overview + skill list
xlings agent usage # complete usage guide written for LLM agents
使用场景
🛠 多版本工具链,一处命令通用
安装任意版本的任意工具并让它们并存 — 即时切换,无冲突,无需 sudo。相同的命令在 Linux、macOS 和 Windows 上均可使用。
xlings install gcc@16 gcc@11 node@24 cmake
xlings use gcc@11 # switch back anytime — both stay installed
→ 多版本指南
📦 可复现的项目环境,跨操作系统保持一致
提交一个 .xlings.json,用于声明各平台的版本。每个项目都拥有自己隔离的 SubOS,因此团队成员和 CI —— 无论在任何发行版或操作系统上 —— 都能进入完全相同的环境,而无需触及主机或其他项目。
{
"workspace": {
"xmake": "3.0.7",
"gcc": { "linux": "16.1.0" },
"llvm": { "macosx": "20.1.7", "windows": "19.1.0" }
}
}
cd my-project/ # entering the dir activates the project SubOS
xlings install # installs the declared versions, project-local
→ 项目环境指南
🤖 在隔离的 SubOS 中运行代理与不受信任的代码
在 Linux 上,在根权限隔离的文件系统 SubOS 中运行代理。在 macOS 和 Windows 上,SubOS 会重定向主目录,但不会隔离不受信任的代码;当需要该边界时,请使用操作系统沙箱或虚拟机。
xlings subos new agent-ws --from subos:dev-env@latest
xlings subos use agent-ws --sandbox # enter the isolated world
xlings subos use agent-ws --sandbox --cmd "python run.py" # or one-shot exec
🩺 升级与修复,无需手动编辑状态
升级客户端,然后让 xlings 检查其自身的四个状态层——workspace、 version database、shims、payloads——并修复发现的问题。一次运行;你阅读的 报告是修复之后的状态,且它打印的每条命令都是你可以直接粘贴的。
xlings self update # upgrade xlings itself
xlings self doctor # read-only check (exit 0 = healthy)
xlings self doctor --fix --dry-run # preview the repairs
xlings self doctor --fix # repair
→ 自我管理指南
文档
指南、设计笔记和规范位于 docs/。
| 领域 | 文档 |
|---|---|
| 快速开始 | 多版本 · 项目环境 · SubOS 与 Agent · 自定义索引 · 自我管理 · 从源码构建 |
| 架构 | 系统概览 |
| 设计 | SubOS-as-XPKG · xvm 版本控制 · SubOS 隔离 · 索引生态系统 · 接口协议 |
| 规范 | xpkg manifest v1 · .xlings.json schema · Interface NDJSON v1 |
生态系统
| 项目 | 角色 |
|---|---|
| MCPP | 现代 C++ 构建工具链生态系统 — 通过 xlings 分发 |
| Luban Linux | 即将发布的 Linux 发行版,使用 xlings 作为系统级包管理器 (链接待发布) |
| xim-pkgindex | 官方包索引 — 60+ 个包且持续增长 |
社区
- 论坛: forum.d2learn.org/category/9/xlings
- QQ 群: 167535744 / 1006282943
- Issues: github.com/openxlings/xlings/issues
贡献
贡献者