16 个版本
新 0.1.16 | 2024年8月24日 |
---|---|
0.1.15 | 2024年8月24日 |
199 在 文件系统
每月 1,338 下载
46KB
876 代码行
mktool
本工具旨在收集一系列实用程序来替换 pkgsrc 的 mk 基础设施的一部分。
在 mk/
目录下,许多目标是通过 shell 和 awk 的组合实现的,并且可能会因输入大小增长而出现性能不足的问题。
例如,随着在较新的 Go 软件中使用 Go 模块的增加,www/grafana 现在有超过 5,000 个 distfiles。这暴露了当前 pkgsrc 校验和脚本的各个方面,难以解决。此工具在 32 核 SmartOS 主机上运行时实现了以下性能改进的替代方案:
命令 | 现有的 pkgsrc 脚本 | mktool | 加速 |
---|---|---|---|
bmake checksum |
10 秒 | 2 秒 | 5 倍 |
bmake distinfo |
3 分钟 30 秒 | 2 秒 | 100 倍 |
bmake fetch |
47 分钟 58 秒 | 5 秒 | 500 倍 |
由于 pkgsrc 力求尽可能具有可移植性,在任何时候,mktool
实现的任何命令都不会成为强制性的。此工具仅存在于那些能够运行 Rust 软件的人中,以显著提高 pkgsrc 性能。
安装
使用 cargo
安装
cargo install mktool
并将其添加到 mk.conf
TOOLS_PLATFORM.mktool= ${HOME}/.cargo/bin/mktool
对 pkgsrc 基础设施的钩子尚未提交。在此之前,您需要手动应用 这些更改集
。一旦获得批准,这些更改集有望很快被添加。
命令
这些是目前实现的命令。
checksum
pkgsrc/mk/checksum/checksum.awk 的替代方案
distinfo
pkgsrc/mk/checksum/distinfo.awk 的替代方案
fetch
pkgsrc/mk/fetch/fetch 的替代方案
symlinks
pkgsrc/pkgtools/mktools 提供的 mk-buildlink-symlinks
工具的替代方案
依赖项
~9–22MB
~360K SLoC