web-dev-qa-db-ja.com

コマンドラインからAPTミラーを切り替える方法は?

Ubuntu 18.04 LTS(Bionic Beaver)を使用していると仮定しましょう。

現在使用されているAPTミラーを切り替えるGUIの方法を知っています。

ユーザーはSoftware&Updatessoftware-properties-gtkまたはsoftware-properties-kde)を開き、buntu SoftwareKubuntu Software)タブに移動する必要があります。 ダウンロード元リストでミラーを選択します:

picking mirror

しかし、コマンドラインからAPTミラーを切り替える方法は?

注/更新:

  1. タイプミスを防ぎ、正しいミラー選択を自動化するために、/etc/apt/sources.listを直接編集しないソリューションが必要です。
  2. ダウンロード元software-properties-gtkのリストから1つを選択するのと同じように、1つの簡単なコマンドでミラーを切り替える必要があります(システムのミラーアドレスが保存されている場所も興味深い)。
    3。 community-ubuntu.comで 「Ubuntuにはsoftware-properties-gtk/software-properties-kdeの代替コンソールが必要ですか?」というディスカッションと投票 を作成しました。
6
N0rbert

ミラーサーバーのリストは、Pythonライブラリによって取得されます(get_server_listプロシージャは/usr/lib/python3/dist-packages/aptsources/distro.pyで定義され、/usr/lib/python3/dist-packages/softwareproperties/gtk/SoftwarePropertiesGtk.pyから呼び出されます)。

解決策は、 apt-mirror-updater という名前のツールを使用することです。 pip/pip3からインストールできます。

Sudo pip3 install apt-mirror-updater

機能:

使用法:apt-mirror-updater [オプション]

Apt-mirror-updaterプログラムは、利用可能なミラーの検出、利用可能なミラーのランキング、ミラー間の自動切り替え、堅牢なパッケージリストの更新を可能にすることで、DebianおよびUbuntuの堅牢なapt-getミラー選択を自動化します。

サポートされているオプション:

-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 = 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、-静か

Decrease logging verbosity (can be repeated).

-h、-help

Show this message and exit.

したがって、最適なミラーを見つけて/etc/apt/sources.listに適用できます。

Sudo apt-mirror-updater --auto-change-mirror

また、URLでミラーを選択し、/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      |
...

次に、手動でミラーを選択します。

Sudo apt-mirror-updater -c "http://mirror.timeweb.ru/ubuntu"
3
N0rbert

解決策(Ubuntu 18.04.1 LTSでテスト済み): https://github.com/jblakeman/apt-select.git

インストール:

pip install apt-select

または:

pip3 install apt-select

スクリプトをPATHに追加して、どこからでも実行する( 永続化する ):

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

使用例:

米国からトップミラーを取得して、新しいsources.listを生成します。

apt-select --country US

1週間前に最後に更新されたものを含む、上位3つのミラーから選択します。

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

マシンへの待ち時間が最も短い5つのUSミラーから選択します。

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