You are not logged in.

#1 2021-05-06 17:25:21

HisDudeness
Member
From: Melzo, Milan (Italy)
Registered: 2014-09-29
Posts: 109

About mirror status and up-to-date packages

A good day to everyone! I usually update my mirrorlist with this one-liner, taken from the Mirrors wiki page, before doing a system update

curl -s "https://archlinux.org/mirrorlist/?protocol=https&use_mirror_status=on" | sed -e 's/^#Server/Server/' -e '/^#/d' | rankmirrors -n 5 - > mirrorlistYYYY.MM.GG

(I then manually proceed to move the file in /etc/pacman.d/ after backing the previous mirrorlist up).

However, this time I forgot and did it immediately after updating. Then, I went on to check if the mirror I previously used got out of sync by doing a

pacman -Syyu

To my surprise, some packages were instead out of date in the feshly top-sorted mirror:

warning: alsa-card-profiles: local (1:0.3.27-1) is newer than extra (1:0.3.26-1)
warning: ffmpeg: local (2:4.4-3) is newer than extra (2:4.4-2)
warning: libass: local (0.15.1-1) is newer than extra (0.15.0-2)
warning: libnm: local (1.30.4-3) is newer than extra (1.30.4-1)
warning: libretro-core-info: local (1.9.2-1) is newer than community (1.9.1-1)
warning: linux: local (5.12.1.arch1-1) is newer than core (5.11.16.arch1-1)
warning: linux-firmware: local (20210426.fa0efef-1) is newer than core (20210315.3568f96-2)
warning: networkmanager: local (1.30.4-3) is newer than extra (1.30.4-1)
warning: pipewire: local (1:0.3.27-1) is newer than extra (1:0.3.26-1)
warning: ppp: local (2.4.9-1) is newer than core (2.4.8-1)
warning: python-chardet: local (4.0.0-2) is newer than extra (4.0.0-1)
warning: qt5-webengine: local (5.15.3-5) is newer than extra (5.15.3-4)
warning: retroarch: local (1.9.2-1) is newer than community (1.9.1-1)
warning: svt-av1: local (0.8.6-3) is newer than community (0.8.6-2)

I checked, for example, ffmpeg to see if I had a testing version or if the package had just been downgraded for some sort of issue with the new version but the one being currently distributed is the one I installed with the "old" mirror. That means that, despite using the mirror status filter, I got a mirror with some outdated packages.

Is this normal (I see that ffmpeg has been updated just today)? Am I using the correct procedure to update, or am I missing something? How can I be sure to always get the latest packages version when doing an update?


The Dude minds.

Offline

#2 2021-05-06 19:23:14

schard
Forum Moderator
From: Hannover
Registered: 2016-05-06
Posts: 2,609
Website

Re: About mirror status and up-to-date packages

$ rankmirrors --help
rankmirrors v1.4.0

Ranks pacman mirrors by their connection and opening speed. Pacman mirror
files are located in /etc/pacman.d/. It can also rank one mirror if the URL is
provided.

Fast mirrors are not necessarily up-to-date. I suggest you rather use reflector.


Inofficial first vice president of the Rust Evangelism Strike Force

Offline

#3 2021-05-07 08:05:05

HisDudeness
Member
From: Melzo, Milan (Italy)
Registered: 2014-09-29
Posts: 109

Re: About mirror status and up-to-date packages

Thank you for your reply! That I did know, actually. I thought the "use_mirror_status=on" part of the link provided you with up-to-date ones. In other words, are correctly-syncing mirrors (from what I understood, status is out-of-sync and correctly syncing) up-to-date? Or are those two things different ones, and status and up-to-date two different things? In that case, how can I be sure to get up-to-date mirrors? Only by using reflector? How does reflector manage it?


The Dude minds.

Offline

#4 2021-05-07 09:43:21

philo
Member
Registered: 2015-01-26
Posts: 275

Offline

#5 2021-05-10 01:47:24

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: About mirror status and up-to-date packages

https://archlinux.org/mirrors/status/

Successfully syncing mirrors are fully operational and 100% syncing, but they might sync once per hour, once per minute, or once per day (look at the "μ Delay (hh:mm)" field in that table). Switching back and forth isn't guaranteed to only give you updates.

On the other hand, unless you used a double -y in your -Syyu it does not matter, since you'll just get told the remote repos are not newer than your synced versions, therefore "already up to date, nothing to do". However, since you did use -yy, you told pacman "gosh freaking darn it, shut up!!! I don't care if you think the repos are older than what I've already got, just sync it already. I know best!"

I do not generally advise using -yy unless you previously used a mirror with broken file timestamping, or got brutally assaulted by some corporation with an attack dog captive portal; in both cases, you cannot trust the timestamps you previously retrieved by -Syu.

Note the warning on the wiki page you linked (I added this):

Warning: In most cases if you force refresh the pacman database, you will want to force downgrade any potentially too-new packages to correspond to the versions offered by the new mirror. This prevents issues where packages are inconsistently upgraded, leading to a partial update.

# pacman -Syyuu

For switching between ordinary, successfully syncing mirrors... I'd generally recommend switching, waiting a few hours since the last -Syu to resolve/catch up to "mirror had a different sync schedule", and proceeding normally with -Syu.

Last edited by eschwartz (2021-05-10 01:49:12)


Managing AUR repos The Right Way -- aurpublish (now a standalone tool)

Offline

Board footer

Powered by FluxBB