9 votes

Comment changer de miroir APT depuis la ligne de commande ?

Supposons que nous utilisons Ubuntu 18.04 LTS (Bionic Beaver).

Je connais des moyens GUI pour changer le miroir APT actuellement utilisé.

L'utilisateur doit ouvrir Logiciels et mises à jour ( software-properties-gtk o software-properties-kde ) et naviguez jusqu'à Logiciel Ubuntu ( Logiciel Kubuntu ) et sélectionnez ensuite le miroir dans Télécharger à partir de liste :

picking mirror

Mais comment changer de miroir APT depuis la ligne de commande ?

Notes/mises à jour :

  1. J'ai besoin d'une solution sans modification directe de /etc/apt/sources.list pour éviter les fautes de frappe et automatiser la sélection correcte des miroirs.
  2. J'ai besoin de changer de miroir avec une simple commande, ce qui équivaut à choisir un miroir parmi les suivants Télécharger à partir de liste en software-properties-gtk (il est également intéressant de savoir où les adresses miroir sont enregistrées dans le système).
    3. J'ai créé discussion et sondage intitulés "Ubuntu a-t-il besoin d'une alternative de console pour software-properties-gtk / software-properties-kde ?" sur community.ubuntu.com .

8voto

N0rbert Points 86925

La liste des serveurs miroirs est récupérée par la bibliothèque Python (l'outil get_server_list La procédure est définie dans /usr/lib/python3/dist-packages/aptsources/distro.py et appelé de /usr/lib/python3/dist-packages/softwareproperties/gtk/SoftwarePropertiesGtk.py ).

La solution consiste à utiliser l'outil nommé apt-mirror-updater . Il peut être installé à partir de pip / pip3 :

sudo pip3 install apt-mirror-updater

Fonctionnalité :

Utilisation : apt-mirror-updater [OPTIONS].

Le programme apt-mirror-updater automatise le miroir robuste apt-get pour Debian et Ubuntu en permettant la découverte des miroirs disponibles miroirs disponibles, le classement des miroirs disponibles, le basculement automatique entre les miroirs et une mise à jour robuste de la liste des paquets.

Options prises en charge :

-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-miroir

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=PATTERN

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.

Il permet donc de trouver le meilleur miroir et de l'appliquer à /etc/apt/sources.list :

sudo apt-mirror-updater --auto-change-mirror

Il permet également de sélectionner un miroir par URL et de l'appliquer à l'un des éléments suivants /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 le miroir à la main :

sudo apt-mirror-updater -c "http://mirror.timeweb.ru/ubuntu"

6voto

mature Points 3529

Quelques solutions (testées sur mon Ubuntu 18.04.1 LTS) : https://github.com/jblakeman/apt-select.git

Installer :

pip install apt-select

ou :

pip3 install apt-select

Ajout de script à PATH pour l'exécuter de partout ( le rendre permanent ) :

export PATH=$PATH:~/.local/bin/apt-select

Exemples d'utilisation :

Obtenez le meilleur miroir des États-Unis pour générer une nouvelle liste de sources : :

apt-select --country US

Choisissez parmi les 3 meilleurs miroirs, y compris ceux mis à jour il y a une semaine: :

apt-select -c -t 3 -m one-week-behind

Choisissez parmi 5 miroirs américains présentant la latence la plus faible pour votre machine :

$ apt-select --country US -t 5 --choose

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X