资讯动态

uutils coreutils 多平台安装指南:Cargo、系统包管理器与源码构建全解析

发布时间:2026/9/12 17:29:33 来源:尧图企业网站定制
uutils coreutils 多平台安装指南Cargo、系统包管理器与源码构建全解析【免费下载链接】coreutilsCross-platform Rust rewrite of the GNU coreutils项目地址: https://gitcode.com/GitHub_Trending/co/coreutilsuutils coreutils 是一个用 Rust 编写的 GNU coreutils 跨平台重实现支持 Linux、macOS、Windows、FreeBSD、WASI 等平台。本文以仓库文档 docs/src/installation.md 为核心系统梳理该项目在各发行版与包管理器中的安装方式、Cargo 安装命令、源码构建方法与关键 feature 体系帮助你在任意目标平台上一站式完成安装、验证与定制构建。安装方式概览uutils coreutils 的安装途径可分为三类可按使用场景任选其一系统包管理器安装Alpine、Arch、Debian、Fedora、Ubuntu、NixOS、Homebrew、Winget 等均提供了打包好的uutils-coreutils部分发行版包名为rust-coreutils一条命令即可完成安装Cargo 安装通过cargo install coreutils从 crates.io 编译安装跨平台体验一致从源码构建仓库本身是完整的 Rust workspace可借助 Cargo 或 GNU Make 编译出多调用multicall二进制或独立的单工具二进制。需要特别注意的是docs/src/installation.md 明确指出各发行版与包管理器中的包由第三方维护打包可能包含补丁因此行为与主线源码可能存在细微差异。如果你是打包维护者请参考 docs/src/packaging.md普通用户只需按本文安装即可。通过 Cargo 安装跨平台统一途径无论目标平台是 Unix 系还是 WindowsCargo 安装命令都高度一致区别仅在 feature 选择上# Unix 系Linux / macOS / *BSD 等 cargo install coreutils --features unix --locked # Windows cargo install coreutils --features windows --locked这里有几个值得展开的细节--features unix/--features windows从根 Cargo.toml 看这两个是平台特性短码分别展开为feat_os_unix与feat_os_windows。unix会启用 Tier1 通用工具集加上stdbuf等 Unix 专属工具windows则在 Tier1 基础上额外包含stdbuf。选择与目标平台匹配的 feature是获得该平台“完整工具集”的关键。--locked要求 Cargo 严格使用仓库Cargo.lock中锁定的依赖版本保证可复现构建避免因上游依赖更新导致编译结果漂移。前置条件需要 Rust 工具链cargo、rustc。从 Cargo.toml 的 workspace 配置可以看到当前版本为0.11.0MSRV最低支持 Rust 版本为1.88.0edition 为2024。默认 feature若不加--no-default-features默认启用feat_common_core基础核心工具集包含cat、ls、cp、sort、wc等近百个工具与feat_diagnostics终端下的编译器风格错误诊断渲染见 Cargo.toml。安装完成后可通过多调用二进制验证coreutils --help # 打印可用工具列表 coreutils ls -l # 以 coreutils 调用 ls 工具关于多调用二进制的用法说明参见 docs/src/multicall.md。Linux 发行版包安装Alpineapk update uutils-coreutils注意需要启用edge软件仓库Stable 分支可能没有对应包。Arch Linuxpacman -S uutils-coreutilsDebianapt install rust-coreutils # 使用前需将二进制目录加入 PATH export PATH/usr/lib/cargo/bin/coreutils:$PATHDebian 系将包命名为rust-coreutils且二进制安装位置不在默认 PATH 中需要手动导出。Fedoradnf install uutils-coreutils # 使用前需将二进制目录加入 PATH export PATH/usr/libexec/uutils-coreutils:$PATHGentooemerge -pv sys-apps/uutils-coreutils-p即--pretend会先打印将要安装的包与依赖确认无误后可去掉该选项正式安装。Manjaropacman -S uutils-coreutils # 或使用 pamac图形化/交互式包管理器 pamac install uutils-coreutilsNixOSnix-env -iA nixos.uutils-coreutils在 NixOS 或启用 nix 的环境下亦可使用声明式配置方式在configuration.nix中声明该包。OpenMandriva Lxdnf install uutils-coreutilsRHEL / AlmaLinux / CentOS Stream / Rocky LinuxEPEL 9# 先安装 EPEL 9 仓库RHEL 用户请先确认已启用 codeready-builder-for-rhel-9再安装 epel dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y # 安装 coreutils dnf install uutils-coreutils # 使用前需将二进制目录加入 PATH export PATH/usr/libexec/uutils-coreutils:$PATHUbuntuapt install rust-coreutils # 使用前需将二进制目录加入 PATH export PATH/usr/lib/cargo/bin/coreutils:$PATH值得注意的是README 中说明 uutils coreutils 自Ubuntu 25.10 起默认随系统发布见 README.md届时即可开箱即用。AURArch 用户仓库AUR 提供两个与主线同步的包uutils-coreutils-git从 main 分支源码构建uutils-coreutils-git-bin直接使用 main 分支的预编译二进制。源码构建方式git clone https://aur.archlinux.org/uutils-coreutils-git --depth1 cd uutils-coreutils-git makepkg -si-s自动安装构建依赖-i在打包完成后自动安装。macOSHomebrewbrew install uutils-coreutilsMacPortsport install coreutils-uutilsFreeBSDpkg install rust-coreutilsWindowsWingetwinget install uutils.coreutilsScoopscoop install uutils-coreutilsMSYS2MSYS2 提供两套包面向 Windows 原生MinGW-w64的mingw-w64-uutils-coreutils以及面向 Cygwin 环境的uutils-coreutils。两者均通过 MSYS2 包管理器安装可根据运行环境选择对应版本。其他安装器Condaconda install -c conda-forge uutils-coreutils包由 conda-forge 渠道提供适合在 Conda 管理的 Python/科学计算环境中使用。Yoctouutils-coreutils 的 recipe 由 meta-openembedded 的meta-oe层提供适合嵌入式 Linux 构建场景。接入步骤克隆 poky 与 meta-openembedded 仓库在build/conf/bblayers.conf中将meta-openembedded/meta-oe添加为 layer直接构建该包bitbake uutils-coreutils或通过build/conf/local.conf将其设为 coreutils 的首选提供者随镜像一起构建PREFERRED_PROVIDER_coreutils uutils-coreutils设置后按原有方式构建 Yocto 镜像即可镜像会使用 uutils-coreutils 替代系统 coreutils。从源码构建与特性定制若系统包管理器中暂无对应包、或需要定制工具集可从源码构建。构建入口文档为 docs/src/build.md其内容直接内嵌自 README.md 的 Building 章节。基本构建命令cargo build --release # 默认 common_core 工具集多调用二进制 cargo build --release --features windows # Windows 完整工具集 cargo build --release --features unix # Unix 完整工具集 cargo build --release --target wasm32-wasip1 --no-default-features --features feat_wasm # WASI 目标构建产物为多调用二进制coreutils即coreutils [util] [util options]的调用形式详见 docs/src/multicall.md相比为每个工具单独生成二进制可显著减小体积、便于移植分发。Feature 体系如何理解 unix / windows根 Cargo.toml 中定义了一套分层的 feature 集合理解这套体系有助于精确控制构建内容Feature含义关键内容节选feat_common_core基础核心工具集多数平台可编译运行cat、ls、cp、sort、wc、md5sum、sha*sum等约 90 个工具feat_Tier1在 Rust Tier1 平台上可用的扩展工具集feat_common_corearch、kill、uname、whoami、timeout等feat_os_unixUnix 平台完整工具集feat_Tier1chmod、chown、id、stat、stdbuf、pinky/uptime/who等 Unix 专属工具feat_os_windowsWindows 平台完整工具集feat_Tier1stdbuffeat_wasmWASI 目标可用工具集面向 wasm32-wasip1 裁剪的集合feat_selinuxSELinux 安全上下文支持启用cp、id、ls、mkdir、stat等的 SELinux 能力并要求运行时内核开启 SELinux且编译期需要libselinux头文件feat_smackSMACK 安全上下文支持为id、ls、mkdir、mknod等启用 SMACKopenssl用 OpenSSL 替代纯 Rust 摘要实现为md5sum/sha*sum/cksum系列加速无 SHA-NI 指令的 CPU 上收益明显默认静态链接 vendored OpenSSL此外还有feat_external_libstdbufstdbuf 使用外部 libstdbuf.so 而非内嵌、feat_systemd_logind为who、uptime等启用 logind 支持等可选开关。打包维护者如需更细粒度地挑选工具可参考 docs/src/packaging.md 的建议先关闭默认 feature 集再按工具名逐个启用。自定义工具子集与单二进制构建如果不需要平台完整工具集可以只构建特定工具# 只构建 base32、cat、echo、rm 四个工具关闭默认 feature 集 cargo build --features base32 cat echo rm --no-default-features # 为每个工具生成独立的单二进制排除多调用核心与 SELinux 相关工具 cargo build --release --bins --workspace --exclude coreutils --exclude uu_runcon --exclude uu_chcon # 构建指定的单个工具包 cargo build -p uu_base32 -p uu_cat -p uu_echo -p uu_rm这也是打包发行时常用的做法每个工具对应src/uu/name下的独立 crate如src/uu/cat、src/uu/sort。构建 profile 说明根 Cargo.toml 提供了两个开箱即用的 release 级 profilerelease默认发布配置启用lto fat、codegen-units 1、panic abort性能优先release-small继承release改用opt-level z并strip true面向体积敏感如嵌入式场景。通过cargo build --profile release-small即可使用小体积配置。GNU Make 方式构建除 Cargo 外仓库还支持 GNU Make 构建GNUmakefile/Makefile适用于需要同时产出完整文档等场景。构建完整包含全部文档需要 Cargo 与 GNU Make 同时在 Unix 平台可用具体命令以 README.md 的 Building 章节为准。安装后的验证与使用无论通过哪种途径安装都可以用下面几步快速验证coreutils --help # 打印多调用二进制支持的完整工具列表 coreutils ls -l # 验证工具可正常执行等价于 ls -l几个常见注意事项PATH 导出Debian/Ubuntu 与 Fedora/EPEL 系的包把二进制放在非标准目录使用前需按上文export PATH...导出否则 shell 找不到coreutils命令与 GNU coreutils 并存uutils 旨在成为 GNU coreutils 的 drop-in 替代README 明确将输出差异视为 bug可以安全地与系统自带 coreutils 并存通过显式路径或别名切换使用版本差异第三方打包的版本可能与主线存在补丁差异追求最新特性时可选择 Cargo 安装或直接构建 main 分支平台限制并非所有工具在所有平台可用例如chmod、chown、stat等 Unix 专属工具在 Windows 构建中不会包含这正是需要按平台选择 feature 的原因见 Cargo.toml。至此你已掌握 uutils coreutils 在主流发行版、包管理器与源码层面的全部安装路径可以根据自己的平台和定制需求选择最合适的方式。【免费下载链接】coreutilsCross-platform Rust rewrite of the GNU coreutils项目地址: https://gitcode.com/GitHub_Trending/co/coreutils创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价