В ArchLinux имеется скрипт для настройки конфигурационного файла
/etc/pacman.d/mirrorlist
–rankmirrors
.
Что он делает? rankmirrors
берет список IP-адресов зеркал репозиториев ArchLinuxlinux из заранее созданного файла и проверяет их на скорость доступа. А затем формирует список самых быстрых зеркал на основе этой проверки.
Что это дает? В результате работы rankmirrors
в /etc/pacman.d/mirrorlist
мы имеем сервера с самым быстрым (исходяя из местоположения нашей машины) доступом. При обновлении системы или установки какой-либо программы скорость инсталляции существенно возрастает (из чего складывается инсталляция? Из скачивания пакета с сервера и уже затем его установки). rankmirrors
является python-скриптом. man-страницы не имеет, но есть опция -help
с небольшим выбором команд.
Похожими утилитами являются netselect
и особенно – mirrorselect
(для Gentoo). Итак, приступим к настройке нашего списка зеркал с помощью rankmirrors
.
- Так как
rankmirrors
является python-скриптом, для его работы необходим установленный Python в системе. Устанавливаем, если его нет в системе:
$ sudo pacman -Sy python
- Переходим в директорию со списком зеркал pacman’а:
$ cd /etc/pacman.d/
- Делаем копию существующего списка зеркал
mirrorlist
:
$ sudo cp mirrorlist mirrorlist.backup
- Открываем копию списка зеркал в своем любимом редакторе и раскомментируем все строки с адресами серверов, географически наиболее близко расположенных к нам (по идее, это и будут сервера с самым быстрым доступом):
$ sudo nano -w mirrorlist.backup
- Сохраняем изменения в файле и выходим из него. Запускаем скрипт
rankmirrors
для выбора зеркал из указанного нами списка (для запускаrankmirrors
потребуется войти в учетную записьroot
‘а. Подsudo
у меня скрипт отказался работать, ругаясь на отсутствие прав доступа к файлуmirrorlist
).
Переходим в учетную запись root
‘а:
$ su -
Запускаем rankmirrors
под root
‘ом:
# rankmirrors -n 6 mirrorlist.backup > mirrorlist
где:
-n 6
– вывести (в нашем случае – записать) 6 сервером с самым маленьким временем откликаmirrorlist.backup
– список серверов для теста на время откликаmirrorlist
– файл, куда записываются адреса серверов скриптомrankmirros
В результате rankmirrors
удалит все раскомментированные строки в mirrorlist
и снесет адреса шести самых “быстрых” зеркал. Получится что-то вроде этого:
# Result
Server = ftp://ftp.nluug.nl/pub/metalab/distributions/ArchLinuxlinux/$repo/os/i686
Server = ftp://ftp.free.fr/mirrors/ftp.ArchLinuxlinux.org/$repo/os/i686
Server = ftp://ftp.mfa.kfki.hu/pub/mirrors/ftp.ArchLinuxlinux.org/$repo/os/i686
Server = http://gd.tuwien.ac.at/opsys/linux/ArchLinuxlinux/$repo/os/i686
Server = http://ftp.gigabit.nu/$repo/os/i686
Server = http://mirror.svk.su/ArchLinuxlinux/$repo/os/i686
Здесь я раскомментировал все зеркала, географически расположенные в Европе и получил 6 из них.
- Теперь осталось последнее – заставить
pacman
перечитать список зеркал и обновить список пакетов.
Делаем:
# pacman -Syy
Результат:
:: Синхронизируются базы данных пакетов…
core 35,8K
65,8K/s 00:00:01 [######################] 100%
extra 443,7K 15,4K/s 00:00:29 [#########################] 100%
community 367,8K
18,1K/s 00:00:20 [###########################] 100%
ArchLinuxlinuxfr 24,7K 5,7K/s 00:00:04 [############################] 100%
Данная статья является вольным переводом (опробованным для своих нужд) из Википедии ArchLinuxlinux.
На этом все.
Комментарии