Вопрос или проблема
Я использую Fedora 23 и хочу изменить настройки по умолчанию в dnf
, чтобы использовать конкретное зеркало сервера отсюда: здесь.
Существует несколько вариантов, вы можете жестко закодировать это (/etc/yum.repos.d/fedora.repo
) или использовать fastmirror
.
Для использования fastmirror
вы сначала должны активировать его:
в /etc/dnf/dnf.conf
добавьте fastestmirror=true
, затем с помощью этой команды dnf config-manager --add-repo
добавьте зеркало, которое вы хотите использовать, вы можете добавить несколько зеркал, и будет использовано самое быстрое.
Пример:
sudo dnf config-manager --add-repo http://ftp.byfly.by/pub/fedoraproject.org/linux/releases/23/Everything/x86_64/os/
Вы должны использовать путь /linux/releases/23/Everything/x86_64/os/
для релизов Fedora 23 и для обновлений Fedora 23 /linux/updates/23/x86_64/
, иначе это не сработает.
Мне надоело, как dnf взаимодействует с моим файрволом, и я написал этот скрипт для изменения файлов. Вам, возможно, нужно будет добавить или убрать раздел в зависимости от ваших настроек.
Скрипт сначала создает резервную копию конфигурации репозитория, и вы, вероятно, захотите сделать свою собственную. Скрипт может установить новое зеркало с командной строки или добавить его в сам скрипт, если оно будет редко изменяться. Я назвал его set_fedora_mirrors.sh
:
#!/usr/bin/bash -eux
# Ищем префикс /pub, многие его не имеют. Сохраняйте завершающий слеш!
DEFAULT_REPO=https://mirror.foo.net/
LOCAL_REPO=${1:-$DEFAULT_REPO}
# создаем резервные копии, идемпотентность:
BASE_DIR=/etc/yum.repos.d
sudo mkdir --parents $BASE_DIR/bak
sudo cp \
--preserve=mode,ownership,timestamps \
--no-clobber \
"$BASE_DIR"/*.repo \
"$BASE_DIR"/bak/ \
|| true # если уже есть, это не ошибка
echo
# устанавливаем конкретное локальное зеркало
FILES=("$BASE_DIR"/fedora*.repo)
sudo \
sed --in-place \
-e 's ^metalink= #metalink= ' \
-e "s ^#baseurl=http://download.example/pub/ baseurl=$LOCAL_REPO " \
"${FILES[@]}"
echo
# не изменяем хост, но привязываемся к текущему
FILES=("$BASE_DIR"/rpmfusion*.repo)
sudo \
sed --in-place \
-e 's ^metalink= #metalink= ' \
-e "s ^#baseurl= baseurl= " \
"${FILES[@]}"
Чтобы изменить зеркало Fedora и некоторые настройки для достижения максимальной скорости, сделайте это
Отредактируйте файл конфигурации dnf
sudo nano /etc/dnf/dnf.conf
Добавьте следующие строки:
deltarpm=false
keepcache=true
ip_resolve=4
Это зависит от ваших предпочтений, нравится ли вам DeltaRPM или нет (true или false). Посмотрите в Google, чтобы узнать, что именно он делает.
В директории /etc/yum.repos.d/
находятся файлы, которые требуют небольшого редактирования. Главный файл – fedora-updates.repo
Добавьте country=us
(используйте свой собственный код страны) в конец всех строк “metalink
” для файлов репозитория Fedora в /etc/yum.repos.d/
Лучше использовать de, nl или любую европейскую страну с мощными, быстрыми серверами. Важна пропускная способность, а не задержка.
Ответ или решение
Как использовать конкретный сервер-зеркало в Fedora
Если вы используете Fedora 23 и хотите изменить настройки DNF (Dandified YUM) для использования конкретного сервера-зеркала, следуйте указанным ниже шагам.
1. Использование конфигурации DNF
Fedora использует dnf
для управления пакетами, и вы можете легко настроить его для работы с конкретным зеркалом. Это можно сделать несколькими способами:
Изменение конфигурации репозиториев
-
Резервное копирование файлов конфигурации:
Перед внесением изменений рекомендуется сделать резервную копию существующих файлов. Вы можете выполнить следующие команды:sudo mkdir -p /etc/yum.repos.d/bak sudo cp --preserve=mode,ownership,timestamps /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
-
Редактирование файла
fedora.repo
:
Откройте файл конфигурации репозитория для редактирования:sudo nano /etc/yum.repos.d/fedora.repo
Найдите строки с
metalink=
и закомментируйте их, добавив символ#
передmetalink
. Затем добавьтеbaseurl=
с URL вашего желаемого зеркала. Пример:#metalink=http://mirrors.fedoraproject.org/metalink?repo=fedora-23&arch=$basearch baseurl=http://ftp.byfly.by/pub/fedoraproject.org/linux/releases/23/Everything/x86_64/os/
Для обновлений используйте аналогичный подход для
fedora-updates.repo
. -
Настройка конфигурации DNF:
Для увеличения производительности и повышения скорости работы с пакетами, добавьте или измените следующие параметры в файле/etc/dnf/dnf.conf
:deltarpm=false keepcache=true ip_resolve=4
2. Использование fastmirror
Для использования fastmirror
сначала необходимо активировать его:
-
Активируйте
fastmirror
:
Добавьте следующую строку в файлdnf.conf
:fastestmirror=true
-
Добавьте нужное зеркало:
Используйте командуdnf config-manager
для добавления выбранного зеркала:sudo dnf config-manager --add-repo http://ftp.byfly.by/pub/fedoraproject.org/linux/releases/23/Everything/x86_64/os/
Для обновлений используйте путь
/linux/updates/23/x86_64/
.
3. Скрипт для автоматизации
Если вы хотите автоматизировать процесс изменения зеркал, можете использовать следующий Bash-скрипт:
#!/usr/bin/bash -eux
DEFAULT_REPO=https://mirror.foo.net/
LOCAL_REPO=${1:-$DEFAULT_REPO}
BASE_DIR=/etc/yum.repos.d
sudo mkdir --parents $BASE_DIR/bak
sudo cp --preserve=mode,ownership,timestamps --no-clobber "$BASE_DIR"/*.repo "$BASE_DIR"/bak/
FILES=("$BASE_DIR"/fedora*.repo)
sudo sed --in-place -e 's ^metalink= #metalink= ' -e "s ^#baseurl=http://download.example/pub/ baseurl=$LOCAL_REPO " "${FILES[@]}"
FILES=("$BASE_DIR"/rpmfusion*.repo)
sudo sed --in-place -e 's ^metalink= #metalink= ' -e "s ^#baseurl= baseurl= " "${FILES[@]}"
Вывод
Настройка конкретного зеркала в Fedora 23 — это простой процесс, который может значительно улучшить скорость и стабильность соединения с репозиторией. Следуя вышеуказанным шагам, вы сможете изменить настройки DNF, настроить использование fastmirror
и автоматизировать процесс с помощью собственного скрипта. Понимание того, как правильно управлять зеркалами, поможет обеспечить бесперебойное обновление вашего программного обеспечения и снизить время загрузки.