Обновление через GPRS, как сократить траффик

Материал из Rosalab Wiki
Перейти к: навигация, поиск

ВНИМАНИЕ -- ТЕКСТ В ПРОЦЕССЕ РЕДАКТИРОВАНИЯ!
Автор рецепта -- участник форума unixforum.org VictorR2007

Не всем везёт иметь быстрый интернет.
Если скорость низкая, то есть варианты при обновлении.
Например пакет kdeartwork4-wallpapers очень тяжёлый, но файлы в нём практически не меняются от версии к версии.
Достаточно раз его установить, скопировать каталог /usr/share/wallpapers, потом удалить пакет kdeartwork4-wallpapers и скопировать этот каталог обратно. Картинки будут установлены, но обновляться не будут.
Теперь протокол, лучше брать зеркало http, с ftp при низкой скорости хуже.
Ещё можно в несколько раз сократить траффик зайдя в "Настройка источников установки/ ..." "Глобальные параметры" и выбрать "Проверка-никогда" "Загрузчик-wget" "Политика загрузки..-никогда". Теперь при обновлении источников объем загружаемой информации сократится в разы. По загрузчику wget, он вроде как и создан для медленных соединений. Потом выбор зеркала. Нужно зеркало с поддержкой докачки, и так как скорость в нашем случае не нужна, то лучший выбор:

http://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2011/ 

зеркало бывает перегружено, но в нашем случае с медленной скоростью это не существенно. Это зеркало поддеживает rsync и докачку, плюс здесь самые свежие пакеты. Подозреваю что остальные зеркала синхронизируются с этим.
Теперь о закачке.
Напишу в виде примера.
Мы хотим обновить KDE4, обновление глобальное.
Скорости нет, ну может ночью хорошая.
Если дать стандартную команду

urpmi --auto-select --auto-update

то может быть некорректное обновление, сбой загрузки или не до конца догруженный файл приведут к краху системы.


Другой вариант

urpmi --auto-select --auto-update --no-install

позволяет только скачать файлы без их установки, а установить их можно позже.
Но с нашей скоростью это не выход.
Urpmi скачивает пакеты порциями в каталог /var/cache/urpmi/partial потом скачанные файлы перемещает в каталог /var/cache/urpmi/rpms, потом начинает скачивает следующую порцию файлов.
Если в процессе загрузки возникнет проблема со связью, да плюс зеркало не поддерживает докачку, мы получим сообшение что необходимо обновить источники, а каталоги /var/cache/urpmi/partial и /var/cache/urpmi/rpms будут очищены и придётся всё скачивать заново. Чтобы это обойти, команда должна быть с ключём --auto такая

urpmi --auto-select --auto-update --auto --no-install

В этом случае каталог /var/cache/urpmi/rpms никогда не очищается и все пакеты останутся при вас.
Потом копируем загруженные файлы в нужный нам каталог. Даём команду

genhdlist2 /путь/к/этому каталогу

и добавляем его как локальный источник. Повторяем команду

urpmi --auto-select --auto-update --auto --no-install 

пока не догрузятся все файлы,после каждой загрузки копируя их в нужный каталог и выполняя

genhdlist2 /путь/к/этому каталогу 

Когда все пакеты загрузятся, можно отключить сетевые источники и обновиться с локального.
Для начала лучше так

urpmi --auto-select --auto-update --test

тут мы посмотрим вывод, нет ли недокачанных пакетов. Если всё хорошо, то обновляемся и радуемся жизни.
Если получаем ошибку на какой-то пакет то не расстраиваемся, возможно просто не докачалось несколько байт.
Копируем его имя и ищем его в локальном репзитарии, чтобы узнать полное имя для докачки, если файл крупный, если мелкий то можно его просто удалить, и повторно запустить

urpmi --auto-select --auto-update --auto --no-install 

Если пакет большой то проще его докачать, смотрим, где он лежит на сервере. Например, у нас есть недокачанный kdebase4-workspace-4.6.5-4-mdv2011.0.x86_64.rpm размером около 60мб, его заново качать нет смысла, путь к нему

ftp://mirror.yandex.ru/mandriva/official/2011/x86_64/media/main/release/ 

мы открываем консоль в каталоге с локальным репозитарием и даем комнду

wget -c ftp://mirror.yandex.ru/mandriva/official/2011/x86_64/media/main/release/kdebase4-workspace-4.6.5-4-mdv2011.0.x86_64.rpm 

пакет докачается и можно обновляться.


Всё, можем отключить сетевые источники и обновиться любым удобным способом, GUI или консоль, тут дело вкуса.