测试 openSUSE 镜像速度的小工具

我懂了,只是 —no-confirm 没用,还是要用特定的包测试,必须得用那种没有依赖的,随机包不行。20000 个包里随机,随机到 kernel 这种的话,在一个空的 tmpdir 里下载也会下载它的全部依赖…设定的超时时间肯定下不完的 :joy:

boling@localhost:~> sudo zypper --root=~/.cache/Tumbleweed --no-gpg-checks ar -c https://download.opensuse.org/Tumbleweed/repo/oss Tumbleweed
[sudo] root 的密码:
在 --root 选项中指定的路径必须是绝对路径。
旗标 root 与参数 ~/.cache/Tumbleweed 不兼容 (在 --root 选项中指定的路径必须是绝对路径。)。
boling@localhost:~> sudo zypper --root=/home/boling/test/.cache/Tumbleweed --no-gpg-checks ar -c https://download.opensuse.org/Tumbleweed/repo/oss Tumbleweed
正在添加软件源 ‘Tumbleweed’ …[完毕]
成功添加了软件源 ‘Tumbleweed’

URI : https://download.opensuse.org/Tumbleweed/repo/oss
已启用 : 是
GPG 检查 : 是
自动刷新 : 否
优先级 : 99 (默认优先级)

软件源优先级无效。所有已启用的软件源将使用相同的优先级。
boling@localhost:~> sudo zypper --root=/home/boling/test/.cache/tumbleweed --no-gpg-checks refresh
警告: 未定义状态为启用的软件源。
请使用 ‘zypper addrepo’ 或者 ‘zypper modifyrepo’ 命令添加或启用软件源。
boling@localhost:~> sudo zypper --root=/home/boling/test/.cache/tumbleweed --no-gpg-checks install --no-recommends --download-only VIM
正在加载软件源数据…
警告: 未定义软件源。只能操作已安装的可解析项。不能安装新东西。
正在读取已安装的软件包…
在软件包名中未找到 ‘VIM’。正在尝试在功能中查找。
未找到 ‘VIM’ 的提供者。
正在解决软件包依赖关系…
无事可做。
boling@localhost:~>


boling@localhost:~> sudo zypper --no-gpg-checks --root=/home/boling/test/.cache/tumbleweed -v
正在进入无 gpg 校验模式。
详细程度:2

用法:

zypper [–全局选项] <命令> [–命令选项] [参数]
zypper <子命令> [–命令选项] [参数]

全局选项:

--help, -h 帮助。
--version, -V 输出版本号。
--promptids 输出 zypper 的用户提示列表。
……

子命令:

 subcommand            列出可用子命令。
 appstream-cache       <zypper-appstream-cache 没有 man 手册>
 lifecycle             products and packages lifecycle information
 log                   zypper logfile reader

输入 ‘zypper help ’ 获取具体命令的帮助。
boling@localhost:~>


是不是因为少了 zypper_ranker.go 的缘故?

@Aui 不是的,是你两个 Tumbleweed 的大小写打错了,源添加到了一个 dir,刷新和安装在另一个 dir 跑的…

BTW,我的 v2 也已经好用了,测试用包是 glibc,一共会 download-only 三个包

下一步是 packaging 一个 AppImage,v1 和 v2,爱用哪个用哪个了…

1赞

我是直接把 slbtty 写的指令复制到终端,然后把路径改成了绝对路径(Tumbleweedtumbleweed 确实是两个不同的文件夹啊):joy:

@slbtty @Aui

AppImage 已经打包好了:

https://github.com/marguerite/rankmirror-ng/releases/download/v1.0.0/rankmirror-ng-v2-1.0.0.x86_64.AppImage

直接下载就可以品尝,默认是只排序,加 sudo 可以自动设置软件源。

配合 systemd timer 和 service 可以实现每日自动设置最快的 mirror,我已经用上了…挺香的

3赞

我这里用起来挺完美的。要不要小小地 Marketing 一下,比如告诉 tg 群的人 :lizard:

一个两毛钱的建议,启动后的时候加一个 “正在测试…” 的提示语,要不肯定会有人觉得没用,就直接 Ctrl-C 关掉了。。。。

http://mirrors.ustc.edu.cn/opensuse/:   4.17s
http://mirrors.tuna.tsinghua.edu.cn/opensuse/:  4.29s
https://mirror.sjtu.edu.cn/opensuse/:   4.76s
https://mirrors.bfsu.edu.cn/opensuse/:  5.10s
http://mirror.bjtu.edu.cn/opensuse/:    5.69s
http://mirrors.zju.edu.cn/opensuse/:    7.42s
https://mirrors.huaweicloud.com/opensuse/:      8.99s
https://mirrors.cqu.edu.cn/opensuse/:   10.12s
http://mirrors.nju.edu.cn/opensuse/:    11.66s
https://mirrors.bit.edu.cn/opensuse/:   12.88s
https://mirrors.cloud.tencent.com/opensuse/:    13.61s
http://mirrors.163.com/openSUSE/:       0.00s
https://mirror.lzu.edu.cn/opensuse/:    0.00s
https://mirrors.pinganyun.com/opensuse/:        0.00s

@slbtty 呃,这个是自动化工具啊…加提示岂不是污染 journal 输出…我之前有 testing mirror xxx 的提示,然后发现特别丑就取消了…

上面更新的地址有提示输出了,源里还附赠了 systemd service 和 timer。

的确是小文件慢。下载大文件我从不担心,而小文件,尤其是被依赖的一大堆的包的下载会极大地拖慢一次安装软件的速度。

俺寻思比较好的办法大概还是在北京建个官方 mirror,让国内其他镜像从这边同步(

不然大部分用户怕是在安装阶段就被劝退了

1赞

并没有这个必要,很多国内镜像都能直连到官方主源。

再创建一个官方镜像实际上是重复造轮子。

1赞

不,问题是 opensuse.org 并不能自动解析到国内的这些非官方镜像上——而安装阶段让用户自己去改 mirror 其实是比较麻烦的事情……

2赞

@hokuto 这个帖子是另一个分支出来的
openSUSE 国内软件源(镜像)列表

1赞

就是这个手动步骤很麻烦。考虑到我国的出口带宽情况,我觉得至少在国内应该有个 MirrorBrain 元信息的镜像——我是不想再来一次 livecd 装 tw 花两个晚上的体验了……

而且我怀疑那次安装的时候 mirrorbrain 给我分配到了奇怪的镜像去(

1赞

对!就是下载元信息的时候特别慢,外加之前 mirrorbrain 在国内只有 4 个镜像(南方一个)。所有才有了上个帖子,扩充到 9 个,然而元信息依旧感人的龟速 =.=

已经有镜像了?那为什么速度还这么感人……DNS 没配置对么(

我觉得应该找个时间好好排查一下这个问题(。这两天我找个地方看看能不能提一嘴

1赞

@marguerite (很久) 之前可能给他们提过,但是并没有解决 (

如果你能从内部解决,那国内用户装机和安装软件的体验可以直接翻一番 :)

最晚下周组会我找个时间问问吧(。我一个开发者上次都差点被那个安装时间劝退

1赞

@hokuto

最早我问过 SUSE 北京能不能做源,当时告诉我说你们那边是 R&D,infrastructure 在德国,纽伦堡的服务器随便用… 我又不能为了解决国内 metadata 下载慢的问题在德国再安排一个同样慢的服务器…

1赞

live CD?我记得这东西是可以离线装的。莫非你下载了 Network Image? :joy:

目前的情况,除非使用代理服务,不然只有换镜像才能提升用户体验。

看样子相关的内容和介绍有必要增加一条注释了。