TIP for Mirrorlist - This is better than Reflector

I use fish too (my only issue with it is that it makes flatpaks not work properly unless you use Gnome, but that’s because flatpaks are badly implemented to begin with). I still prefer making aliases, especially since you can call aliases from aliases (so my “update-all” alias runs the aliases “update-mirrors”, “update-papirus” and then “yay -Syyu”). Handy since I have installed papirus thru wget / github, not the repos.

update:

“rate-arch-mirrors” has been renamed to “rate-mirrors” and now supports 3 modes:

  • arch
  • manjaro
  • stdin (for custom mirror lists, fed via stdin)

It’s available on AUR as:

  • rate-mirrors-bin
  • rate-mirrors

updated README

3 Likes

Thanks for the update!

So now the command to update the mirror list is:

rate-mirrors arch | sudo tee /etc/pacman.d/mirrorlist 

In my opinion, arch should be the default subcommand (instead of displaying help when no subcommand is given), but I’m guessing the Manjaro market is large :wink:

Alternatively, the program could look at /etc/lsb-release to determine whether it’s running on a Manjaro system or not.

2 Likes

I like the idea of detecting the distro – thank you! :slight_smile:
More distros are yet to come, that’s why I’m not sure about making “arch” the default choice.

Considering market sizes, Ubuntu is huge – but it’s unclear whether ubuntu users would benefit from such a tool (I’ve heard thoughts that the proper ubuntu upgrade is the system re-install; package installs would take less though).

I think it would be best to develop a different tool for Debian-based distros, and focus this one only on Arch and Arch-derivatives like Manjaro (specifically, distros that use pacman as their main package manager).

I don’t think it is a good idea to try to make one-size-fits-everyone tool, because then it won’t fit anyone well enough.

Arch makes total sense to be the default, if the tool is focused on distros that use pacman as their package manager.

2 Likes

it’s bad to use arch home page to make a mirrorlist?

Pacman Mirrorlist Generator
https://archlinux.org/mirrorlist/

It isn’t bad but it isn’t optimal. I believe that is just filtering the mirrors.

Tools like reflector and rate-mirrors actually connect to the mirrors from your machine to determine which is faster for you, specifically.

2 Likes

on their website they write
This page generates the most up-to-date mirrorlist possible for Arch Linux. The data used here comes straight from the developers' internal mirror database used to track mirror availability and tiering. There are two main options: get a mirrorlist with every available mirror, or get a mirrorlist tailored to your geography.

why i ask is because i have had problems with reflector many times
and I have never had problems making a mirrorlist from their website, my downloads are faster when I use their website

That does not match my experience.

I used to use reflector but now I’ve switched to rate-mirrors because it generates a mirror list which is just as good as the one generated by reflector, but I prefer the simplicity of the command-line syntax of it (and also I like Rust more than I like Python). I will still keep reflector as a backup.

That corresponds to my experience
i never use reflector
i have had so many problems with reflector before
I have never tried rate mirrors
maybe I should try rate mirrors just for fun :slightly_smiling_face:

Keep in mind that reflector is a pretty flexible tool so depending on what options you pass it you can get really variable results. You need to tailor it to your specific needs. If you just cut and paste a random reflector command from the internet or the Wiki you may not get good results.

2 Likes

@dalto
thank you I will remember

does not retrieve reflector mirrorlist from this
https://archlinux.org/mirrorlist/

I get the same results if I use their side or reflector
but the reflector itself gives me problems sometimes

–entry-country no longer works? it is listed in the --help options but does not work “Not a valid option”

Edit: Ah, you have to put --entry-country BEFORE arch in the command.

How are you using reflector(what command line) and what problems?

sometime is very slow repo
sudo reflector --country ‘France,Germany’ --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
sudo reflector --verbose --latest 5 --sort rate --save /etc/pacman.d/mirrorlist
sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist

and sometime will do this

2021-06-24_14-48

maybe I’m using the reflector incorrectly :frowning_face:

Those are 3 totally different commands. Hopefully you aren’t using them all at once. :grin:

Let’s take them one at a time:

sudo reflector --country ‘France,Germany’ --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

I would expect this one to provide pretty good results if you are somewhere with reasonable connectivity to France and Germany because there are many fast reliable mirrors in Germany and you are limiting your results to https.

sudo reflector --verbose --latest 5 --sort rate --save /etc/pacman.d/mirrorlist

This limits the results to the most recently synchronized servers and only 5 of them. This will yield highly variable results depending on which 5 servers are the latest at the time you run it. I would strongly recommend using a number bigger than 5 if you use “latest”.

sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist

Uhh…this one is super strange. You are aren’t even saying how you want them sorted. But they are limited by speed, number and recency. I would not use this one.

My advice is always exclude the rsync mirrors. On average, they are significantly less reliable in my experience. It will also make the running of reflector much faster.

1 Like

thank you very much for explaining now understand a little more
no of course I do not use all 3 at once
I try them one at a time to see which one works best
and I’m not for France or Germany
I am from Denmark but in Denmark we only have these 4

## Denmark
Server = http://mirrors.dotsrc.org/archlinux/$repo/os/$arch
Server = https://mirrors.dotsrc.org/archlinux/$repo/os/$arch
Server = http://mirror.one.com/archlinux/$repo/os/$arch
Server = https://mirror.one.com/archlinux/$repo/os/$arch 

@dalto
thank you for your time

1 Like

You don’t need to be in France and Germany you just need to have reasonable connectivity to them which you probably do in Denmark.

I am in the US and there are usually German mirrors in my top 10.

(Wtf? Post can’t be empty? It’s got four quotes, ffs!)

3 Likes