Supposons que nous utilisons Ubuntu 18.04 LTS (Bionic Beaver).
Je connais les méthodes de l'interface graphique pour basculer le miroir APT actuellement utilisé.
L'utilisateur doit ouvrir logiciels et mises à jour (software-properties-gtk
ou software-properties-kde
) et accéder à logiciel Ubuntu () logiciel Kubuntu. ), puis sélectionnez miroir dans Télécharger depuis la liste:
Mais comment changer APT miroir à partir de la ligne de commande?
Notes/mises à jour:
/etc/apt/sources.list
pour éviter les fautes de frappe et automatiser la sélection correcte des miroirs.software-properties-gtk
(il est également intéressant de savoir où les adresses en miroir sont enregistrées dans le système).La liste des serveurs miroir est récupérée par la bibliothèque Python (la procédure get_server_list
est définie dans /usr/lib/python3/dist-packages/aptsources/distro.py
et appelée à partir de /usr/lib/python3/dist-packages/softwareproperties/gtk/SoftwarePropertiesGtk.py
).
La solution consiste à utiliser un outil nommé apt-mirror-updater
. Il est installable à partir de pip
/pip3
:
Sudo pip3 install apt-mirror-updater
Fonctionnalité:
Utilisation: apt-mirror-updater [OPTIONS]
Le programme apt-mirror-updater automatise la sélection robuste de miroirs apt-get pour Debian et Ubuntu en permettant la découverte des miroirs disponibles, le classement des miroirs disponibles, la commutation automatique entre miroirs et la mise à jour robuste de la liste de paquets.
Options supportées:
-r, --remote-Host = SSH_ALIAS
Operate on a remote system instead of the local system. The SSH_ALIAS argument gives the SSH alias of the remote Host. It is assumed that the remote account has root privileges or password-less Sudo access.
-f, --find-current-mirror
Determine the main mirror that is currently configured in /etc/apt/sources.list and report its URL on standard output.
-b, --find-best-mirror
Discover available mirrors, rank them, select the best one and report its URL on standard output.
-l, --list-mirrors
List available (ranked) mirrors on the terminal in a human readable format.
-c, --change-mirror = MIRROR_URL
Update /etc/apt/sources.list to use the given MIRROR_URL.
-a, --auto-change-mirror
Discover available mirrors, rank the mirrors by connection speed and update status and update /etc/apt/sources.list to use the best available mirror.
-u, --update, --update-package-lists
Update the package lists using `apt-get update', retrying on failure and automatically switch to a different mirror when it looks like the current mirror is being updated.
-x, --exclude = MOTIF
Add a pattern to the mirror selection blacklist. PATTERN is expected to be a Shell pattern (containing wild cards like `?' and `*') that is matched against the full URL of each mirror.
-m, --max = COUNT
Don't query more than COUNT mirrors for their connection status (defaults to 50). If you give the number 0 no limit will be applied. Because Ubuntu mirror discovery can report more than 300 mirrors it's useful to limit the number of mirrors that are queried, otherwise the ranking of mirrors will take a long time (because over 300 connections need to be established).
-v, --verbose
Increase logging verbosity (can be repeated).
-q, --quiet
Decrease logging verbosity (can be repeated).
-h, --help
Show this message and exit.
Cela permet donc de trouver le meilleur miroir et de l’appliquer à /etc/apt/sources.list
:
Sudo apt-mirror-updater --auto-change-mirror
En outre, cela permet de sélectionner miroir par URL et de l’appliquer à /etc/apt/sources.list
:
$ apt-mirror-updater --list-mirrors
-----------------------------------------------------------------------------------------------------------------------
| Rank | Mirror URL | Available? | Updating? | Last updated | Bandwidth |
-----------------------------------------------------------------------------------------------------------------------
| 1 | http://mirror.timeweb.ru/ubuntu | Yes | No | Up to date | 6.49 KB/s |
| 2 | http://no.archive.ubuntu.com/ubuntu | Yes | No | Up to date | 6.38 KB/s |
| 3 | http://ftp.aso.ee/ubuntu | Yes | No | Up to date | 5.62 KB/s |
| 4 | http://mirror.plusserver.com/ubuntu/ubuntu | Yes | No | Up to date | 4.77 KB/s |
| 5 | http://nl.archive.ubuntu.com/ubuntu | Yes | No | Up to date | 4.68 KB/s |
...
puis sélectionnez miroir à la main:
Sudo apt-mirror-updater -c "http://mirror.timeweb.ru/ubuntu"
Une solution (testée sur mon Ubuntu 18.04.1 LTS): https://github.com/jblakeman/apt-select.git
pip install apt-select
ou:
pip3 install apt-select
Ajouter un script à PATH pour le lancer de partout ( le rendre permanent ):
export PATH=$PATH:~/.local/bin/apt-select
Obtenez le premier miroir des États-Unis pour générer un nouveau fichier sources.list ::
apt-select --country US
Choisissez parmi les 3 premiers miroirs, y compris ceux mis à jour il y a une semaine:
apt-select -c -t 3 -m one-week-behind
Choisissez parmi 5 miroirs US avec la latence la plus faible pour votre machine:
$ apt-select --country US -t 5 --choose