
虚拟化AI Agent人工智能CLI【免费下载链接】smolvmAn embeddable, portable, branchable virtual machine to safely run Agents locally.项目地址https://gitcode.com/gh_mirrors/sm/smolvm点击查看免费下载本篇指南围绕 smolvm 在 Arch Linux 上的官方 pacman 仓库安装路径展开你会学到如何向/etc/pacman.conf添加官方仓库并一键安装、为什么仓库以Optional TrustAll提供完整性保障、官方包与 AUR 第三方包在 libkrun 符号上的本质差异以及包内各文件wrapper、二进制、agent-rootfs、磁盘模板最终落在系统中的哪些位置。读完即可在 Arch Linuxx86_64 或 aarch64上完成安装并通过pacman -Syu持续获得升级。适用前提以下内容基于当前仓库中的 docs/install-arch.md、packaging/arch/PKGBUILD 与 .github/workflows/pacman-repo.yml 所述现状编写命令与路径以仓库内文档为准。一、为什么 Arch 用户需要官方的 pacman 仓库smolvm 是一个可嵌入、可移植、可分支的轻量级虚拟机方案其核心依赖名为 krun 的虚拟化运行时。smol-machines 团队为 Arch 维护了一个官方 pacman 仓库为x86_64与aarch64两个架构提供预编译包并随每次发布自动更新。这一官方渠道存在的根本原因写在了 docs/install-arch.md 的开篇说明与 packaging/arch/PKGBUILD 的注释里smolvm 需要 smol-machines 维护的 libkrun/libkrunfw forksoname 为libkrun.so.2而 Arch 软件源中的 stocklibkrun缺少 smolvm 运行所需的六个符号。若使用依赖系统 libkrun 的第三方包磁盘 overlay、快照、egress 策略等核心功能将无法工作。仓库根目录下的 lib/linux-x86_64/libkrun.provenance 与 lib/linux-aarch64/libkrun.provenance 正是这个 fork 的构建来源记录。二、配置官方仓库并安装2.1 添加仓库到 pacman.conf编辑/etc/pacman.conf需要 root 权限追加以下段落[smol-machines] SigLevel Optional TrustAll Server https://smol-machines.github.io/smolvm/pacman/$archSigLevel Optional TrustAll在仓库尚未提供 GPG 签名之前允许不校验包签名直接安装见下文“安全模型”一节。仓库提供签名后这一行为会随官方文档更新。Server中的$arch会被 pacman 自动替换为x86_64或aarch64无需手工区分。仓库发布站点 packaging/repos/site/index.html 与 pacman 仓库索引页 packaging/repos/site/pacman/index.html 都给出了完全相同的配置片段可直接对照。2.2 安装 smolvmsudo pacman -Sy smolvm-S从新加入的仓库安装-y先刷新软件包数据库——由于 smol-machines 是一个滚动仓库rolling repo只保留最新版本首次添加仓库后务必先刷新数据库。2.3 日常升级sudo pacman -Syu升级与 Arch 常规系统更新流程完全一致无需额外步骤。三、官方包与 AUR 第三方包的本质差异务必阅读docs/install-arch.md 特别提醒AUR 上的smolvm、smolvm-bin、smolvm-git均为第三方维护不属于官方渠道。截至文档记录的 1.4.7 版本这些包链接的是 Arch 官方源的 stocklibkrun缺少 smolvm 所需的六个符号导致以下功能不可用磁盘 overlays快照snapshotsegress 策略官方包则捆绑 smol-machines 的 libkrun fork功能完整。PKGBUILD 中conflicts(smolvm-bin smolvm-git)一条见 packaging/arch/PKGBUILD从包管理器层面声明了与 AUR 包的冲突防止两种安装方式并存。3.1 从包内容看差异来源对比 packaging/arch/PKGBUILD 的package()阶段可以看出官方包的核心布局install -Dm0755 smolvm $pkgdir/usr/bin/smolvm install -Dm0755 smolvm-bin $pkgdir/usr/lib/smolvm/smolvm-bin cp -a lib $pkgdir/usr/lib/smolvm/lib cp -r agent-rootfs $pkgdir/usr/lib/smolvm/agent-rootfs install -Dm644 storage-template.ext4.zst $pkgdir/usr/lib/smolvm/storage-template.ext4.zst install -Dm644 overlay-template.ext4.zst $pkgdir/usr/lib/smolvm/overlay-template.ext4.zst官方包的 libkrun fork 被放置在私有路径/usr/lib/smolvm/lib而非/usr/lib因此不会与系统libkrun包产生文件冲突——系统 libkrun 仍可被其他软件继续使用这是“不冲突”设计的关键。此外package()还会用sed将发行版自带 wrapper 中脚本相对路径的变量改写为打包后的绝对路径SMOLVM_BIN/usr/lib/smolvm/smolvm-binSMOLVM_LIB/usr/lib/smolvm/libSMOLVM_BUNDLED_ROOTFS/usr/lib/smolvm/agent-rootfs3.2 依赖关系一览PKGBUILD 声明的运行时依赖为seatd、crun、jq、e2fsprogs、util-linux、libcap、gzip、tar。这些依赖会被 pacman 自动解析安装其中seatd与crun与 smolvm 的运行时OCI 容器与图形/输入事件相关e2fsprogs与util-linux则与磁盘模板的展开与挂载工具链有关。四、仓库的构建与发布机制仓库内容不进入 Git 历史而是由 CI 在每次 release 发布时构建并部署为一个原子化的 GitHub Pages 站点。相关流程见 .github/workflows/pacman-repo.yml触发release: [published]事件也可通过workflow_dispatch手工对指定 tag 打包如v1.7.7。构建在archlinux:base-devel容器内将 packaging/arch/PKGBUILD 的pkgver/pkgrel改写为本次 tag 版本后依次以x86_64与aarch64--ignorearch执行makepkg。组装仓库对每个架构执行repo-add smol-machines.db.tar.gz ...生成 pacman 数据库再复制出smol-machines.db与smol-machines.files。部署与 apt/yum 仓库一同组装为静态站点部署到 GitHub Pages部署前校验每个架构恰好有 2 个包、数据库非空且站点无符号链接。该工作流同时配置了concurrency分组与cancel-in-progress: true确保最新一次发布会替换而非排队等待上一次发布历史上曾因队列积压导致一次发布在等待审批时被取消、后续包未发布。因为滚动仓库只保留最新版本旧版本包不会出现在仓库中历史版本仍保留在 GitHub Releases 页面。五、安全模型TrustAll 背后的完整性设计当前官方仓库尚未提供 GPG 包签名文档注明签名计划中完整性保障来自三层设计sha256 校验源文件PKGBUILD 对每个架构的发行版 tarball 固化sha256sumspackaging/arch/PKGBUILD 中sha256sums_x86_64、sha256sums_aarch64CI 构建时运行updpkgsums使校验和与发布产物严格对应CI 构建包由 GitHub Actions 从 release 产物构建而非人工打包上传构建过程可审计HTTPS 传输仓库托管于 GitHub Pages全程走 HTTPS防止传输层篡改。因此SigLevel Optional TrustAll是签名上线前的过渡方案并非鼓励随意信任完整性由“sha256 钉死的源码 CI 构建 HTTPS”共同兜底。5.1 PKGBUILD 中的一个历史构建陷阱PKGBUILD 的prepare()特意绕过了 makepkg 的自动解包原因写在其注释中arm64 tarball 内的storage-template.ext4是全稀疏文件makepkg 依赖的bsdtarlibarchive会在解包时失步静默丢弃后续所有成员包括 smolvm wrapper而 GNU tar 能正确处理稀疏成员。因此官方包通过noextract排除 tarball、再在prepare()中手动tar -xf。这是官方包质量受控的一个侧面证据。六、安装后的文件布局与验证官方包安装后关键路径如下以 x86_64 架构为例路径内容/usr/bin/smolvmwrapper 启动器脚本负责解析并转发给真实二进制/usr/lib/smolvm/smolvm-bin实际的可执行二进制/usr/lib/smolvm/lib/smol-machines 的 libkrun/libkrunfw forklibkrun.so.2等与系统 libkrun 隔离/usr/lib/smolvm/agent-rootfs/内嵌的 agent 根文件系统/usr/lib/smolvm/storage-template.ext4.zst预格式化的存储磁盘模板zstd 压缩/usr/lib/smolvm/overlay-template.ext4.zst预格式化的 overlay 磁盘模板zstd 压缩/usr/share/licenses/smolvm/LICENSEApache-2.0 许可证文件/usr/share/doc/smolvm/README.txt发行版附带的说明文档磁盘模板为可选运行时组件引擎在首次使用时将其展开为稀疏文件省去一次 mkfs 过程。仓库目录 lib/linux-x86_64/ 与 lib/linux-aarch64/ 中放置的libkrun.so.2、libkrunfw.so.5及 provenance 记录与包内lib/内容同源。安装完成后可验证smolvm --version # 应打印发行版本号 smolvm --help # 查看可用命令安装脚本非 pacman 路径的通用验证流程可参考 docs/install/README.md 与 docs/install/SKILL.md这两份文档强调“版本号什么都证明不了”真正的验收标准是在本机实际启动一个一次性 microVM。对 Arch 用户而言若后续首次启动 VM 失败如krun_start_enter -22、KVM 权限被拒可对照 docs/install/references/traps.md 中的故障排查章节并使用 docs/install/scripts/preflight.sh 检查宿主环境accel_access、/dev/kvm可读写等。七、与其他发行版打包渠道的关系Arch 的 pacman 仓库只是 smolvm 官方打包矩阵中的一环同一套发布产物还被组装为Debian/Ubuntu 的 apt 仓库docs/install-debian.mdFedora/RHEL 的 yum 仓库docs/install-fedora.mdNix/NixOS flakedocs/install-nix.md对应仓库中的 flake.nix 与 nix/smolvm.nix三套 Linux 仓库pacman/apt/yum由同一个 .github/workflows/pacman-repo.yml 发布安全姿态一致包均未签名完整性由 CI 构建与 HTTPS 提供详见 docs/install-debian.md 与 docs/install-fedora.md 的对应说明。若你需要在 macOS 上安装或希望体验通用的用户级安装方式可参考 docs/install/README.md 中的curl -sSL https://smolmachines.com/install.sh | bash路径Arch 用户则优先使用本文介绍的官方 pacman 仓库。八、快速参考Arch 安装清单# /etc/pacman.conf —— 追加 [smol-machines] SigLevel Optional TrustAll Server https://smol-machines.github.io/smolvm/pacman/$arch# 安装 sudo pacman -Sy smolvm # 升级随日常系统更新 sudo pacman -Syu # 验证 smolvm --version要点回顾优先使用官方 pacman 仓库而非 AUR 第三方包——后者的 stock libkrun 缺少磁盘 overlay、快照、egress 策略所需的六个符号官方包将 libkrun fork 置于/usr/lib/smolvm/lib与系统 libkrun 隔离共存仓库为滚动模式仅保留最新版本旧版本请到 GitHub Releases 页面获取当前无 GPG 签名TrustAll的完整性由 sha256 钉死源码、CI 构建与 HTTPS 共同承担包内附带的 zstd 磁盘模板会在首次使用时展开为稀疏文件节省一次 mkfs。赞分享虚拟化AI Agent人工智能CLI【免费下载链接】smolvmAn embeddable, portable, branchable virtual machine to safely run Agents locally.项目地址https://gitcode.com/gh_mirrors/sm/smolvm点击查看免费下载相关推荐Win11Debloat 一键精简 Windows 1110 分钟移除预装应用与遥测随时可回滚Win11Debloat 一键精简 Windows 1110 分钟移除预装应用与遥测随时可回滚 我拿一台用了几周的 Win11 笔记本实测了 Win11De桌面应用CLIyayYet Another Yogurt完整指南Arch Linux AUR Helper 的安装、命令与 Lua 配置yayYet Another Yogurt完整指南Arch Linux AUR Helper 的安装、命令与 Lua 配置 yayYet Another开发工具包管理器CLIArch Linux 终极软件更新指南pacman与AUR助手的最佳实践Arch Linux 终极软件更新指南pacman与AUR助手的最佳实践 想要让您的Arch Linux系统始终保持最新状态吗掌握正确的 pacman软件包运维CLI上一篇终极指南如何将 Axe-core 无障碍测试集成到 CI/CD 流水线下一篇Rustup组件管理终极指南轻松添加、移除和更新Rust开发工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考