Обновление через 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 

пакет докачается и можно обновляться.
Картинка 1. Отключив эти пункты траффик сократится в разы. Картинка 2. Даём команду на загрузку пакетов. Картинка 3. Заходим в каталог /var/cache/urpmi/rpms, жмём F3 что-бы разделить Dolphin на две панели, во второй панели открываем ранее созданный каталог, в данном случае каталог repo созданный в домашней директории. Выделяем все пакеты и копируем в каталог repo. Картинка 4. Создаем hdlist.cz локального репозитария. Картинка 5. Добавляем локальный репозитарий, Чекбокс "Создать источник для всего дистрибутива" оставляем пустым, если его отметить будем получать ошибку.
Всё, можем отключить сетевые источники и обновиться любым удобным способом, GUI или консоль, тут дело вкуса.