#arch-linux #mirror #standard-deviation #mirrorlist #tui #check #hours

mirrors-arch

由 mirro-rs 使用的 ArchLinux mirrorlist 捕获器

4 个版本

0.1.3 2023年11月19日
0.1.2 2023年11月19日
0.1.1 2023年11月11日
0.1.0 2023年1月6日

#353 in Unix APIs


用于 mirro-rs

MIT/Apache

68KB
367 行代码(不包括注释)

GitHub Workflow Status Crates.io Crates.io msrv

mirro-rs

Arch Linux 系统的 mirrorlist 管理器
查看使用示例

报告错误 · 请求功能

app

mirro-rs 提供了一个 TUI,以帮助您更好地可视化镜像列表管理。

功能

  • 排序
    • 完成度 - 成功连接和断开给定 URL 的镜像检查次数(作为百分比)。如果这个百分比低于 100%,镜像可能不可靠。
    • 评分 - 目前计算为(延迟小时数 + 平均持续时间 + 标准差)/ 完成度百分比。 越低越好
    • 标准差 - 连接和检索时间的标准差。高标准差可能表明镜像不稳定或负载过重。
    • 延迟 - 每次检查此镜像 URL 的最后检查 - 最后同步的平均值。由于镜像检查的时间,任何低于一小时的值都应视为理想。
    • 速度 - 根据下载速度排序
  • 过滤
    • 年龄
    • 国家
    • ipv4, ipv6, isos
    • 协议 - http, https, ftprsync
    • 完成度百分比

入门指南

安装

从 Arch Linux 官方仓库安装

pacman -S mirro-rs

mirro-rs 也可在 AUR 中找到。如果您正在使用 paru

paru -S mirro-rs-git

注意 默认情况下,这通过 toml 文件启用 配置。如果您希望使用其他配置格式(或完全禁用配置文件),则应编辑 PKGBUILD

手动编译

  • cargo

    您需要安装 cargo 以构建应用程序。设置此环境的最简单方法是安装 rustup

    pacman -S rustup
    

    安装 Rust 工具链

    rustup install stable
    
  • git

    克隆仓库

    git clone https://github.com/rtkay123/mirro-rs
    

    然后您可以构建发布目标

cargo build --release

用法

-h--help标志传递给mirro-rs以查看配置参数。要预览过去24小时内成功同步的httphttps镜像,并将/home/user/mirrorlist作为最佳(最多)50个镜像的导出位置。

mirro-rs --export 50 --protocols https --protocols http --age 24 --outfile "/home/user/mirrorlist"

执行相同操作,但将来源限制为法国和英国。

mirro-rs --export 50 --protocols https --protocols http --age 24 --outfile "/home/user/mirrorlist" -c France -c "United Kingdom"

配置

为了方便,mirro-rs可选地支持读取配置文件[default: $XDG_CONFIG_HOME/mirro-rs/mirro-rs.toml]以设置一般偏好。如果没有提供,将使用[default: $XDG_CONFIG_HOME/mirro-rs.toml]。如果两者都可用,前者具有优先权。

支持toml

cargo build --release --features toml

支持json

cargo build --release --features json

同样,支持yaml

cargo build --release --features yaml

注意 如果您启用了所有配置文件功能,如果配置目录包含多个有效的文件格式,优先级顺序为toml -> json -> yaml

示例配置文件在examples文件夹中提供。

一个最小化的mirro-rs.toml配置文件可能看起来像

cache-ttl = 24
timeout = 10

注意 在运行时更改配置文件将覆盖作为CLI参数设置的参数

许可

根据以下任一许可进行许可

贡献

除非您明确说明,否则根据Apache-2.0许可证定义的您有意提交给作品的所有贡献,将按上述方式双重许可,没有额外的条款或条件。


lib.rs:

mirrors-arch

依赖项

~4–19MB
~262K SLoC