Обновление и установка пакетов через медленное интернет-соединение

Материал из Rosalab Wiki
Версия от 17:25, 4 февраля 2020; Noname (обсуждение | вклад)

Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск

СТАТЬЯ ЕЩЕ НЕ ГОТОВА!

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

Обновление системы

Вариант 1

Когда соединение медленное, но достаточно стабильное

Для начала нужно открыть эмулятор терминала. В KDE4/KDE5(PLASMA5) — konsole. В XFCE — xfce4-terminal.
В GNOME — gnome-terminal. В LXQT — qterminal. Либо любой другой установленный в системе.
Теперь запускаем команду sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0'

Screenshot 01.png

Нам предлагают загрузить 21 пакет с суммарным размером 10МБ. Пакетов много, но при этом все имеют малый
размер. Можно соглашаться на установку. Просто жмем Enter. После загрузки и установки этих пакетов нам
скорее всего предложат обновить и N-ное количество других. Вот дальше уже нужно действовать по обстоятельствам.
Если нам предложат обновить, допустим, больше 15 пакетов с суммарным размером для загрузки меньше 20МБ, то
здесь тоже можно просто согласится на установку. Во всех иных случаях отказываемся.

Screenshot 02.png

Нам предложили загрузить 562 пакета с суммарным размером 799МБ. Отказываемся — вводим n и жмем Enter.
Запускаем команду sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0' --no-install
и соглашаемся на установку. Пакеты будут загружены, но не станут устанавливаться. Если загрузка по какой-то
причине будет прерываться, предыдущую команду нужно выполнять снова, пока не будет загружено всё.

Screenshot 03.png

Когда все пакеты будут загружены, нужно протестировать установку. Запускаем команду
sudo urpmi --auto-select --test

Этот снимок пришлось сделать на реальной машине. Живой режим в виртуальной не выдержал тестирования установки 562 пакетов

Тестирование ошибок не выявило. Теперь можно обновлять систему. sudo urpmi --auto-select

Этот снимок сделан на реальной машине. Живой режим в виртуальной не выдержит установки 562 пакетов


Вариант 2

Когда соединение медленное и нестабильное

Пример 1

Открываем эмулятор терминала и обновляем источники sudo urpmi.update -a --downloader wget --wget-options '-c -t 0'

Screenshot 06.png

Запускаем команду sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0' --no-install

Screenshot 07.png

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

Screenshot 07 01.png

От предложения загрузить и установить другие пакеты — отказываемся.
Запускаем sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0'

Screenshot 08.png

Соглашаемся на установку.

Screenshot 09.png

Отказываемся. Запускаем снова sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0' --no-install
и соглашаемся загрузить предложеные пакеты. Если загрузка по какой-то причине будет прерываться, предыдущую
команду нужно выполнять снова, пока не будет загружено всё.

Screenshot 10.png

Запускаем тестирование — sudo urpmi --auto-select --test

Screenshot 11.png

Тестирование ошибок не выявило. Теперь можно обновлять систему. sudo urpmi --auto-select

Пример 2

File:Пример2.zip

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


Установка пакетов

Пример 1

Установка wine

Обновляем источники. sudo urpmi.update -a --downloader wget --wget-options '-c -t 0'

Screenshot 12.png

Загружаем wine и все требуемые зависимости. sudo urpmi --downloader wget --wget-options '-c -t 0' wine --no-install

Screenshot 13.png

Если загрузка прервется, повторяем предыдущую команду.

Screenshot 14.png

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

Если ошибку исправили, обновляем источники, загружаем wine со всеми зависимостями. Когда всё загрузится
запускаем тест установки. sudo urpmi wine --test. Если будет ответ "Установка возможна", устанавливаем
sudo urpmi wine


Загрузка прочих файлов из интернета

Для загрузки используем программу wget с параметрами -c -t 0 -T 60

Пример:
wget -c -t 0 -T 60 http://mirror.rosalab.ru/rosa/rosa2016.1/iso/ROSA.Fresh.R11/ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso

Если загрузка прервалась, запускаем команду снова. Загрузка файла будет начата с того места, на котором остановилась.

Screenshot 15.png

Иногда может случиться так, что доступ в интернет есть, но загрузка файла остановилась
и программа не пытается ее продолжить. Жмем ctrl+c и снова запускаем скачивание.

Нередко wget присваивает файлу в качестве имени часть ссылки. В этом случае нужно добавлять к вышеуказанным
параметрам --content-disposition. wget -c -t 0 -T 60 --content-disposition ссылка. Но и он в некоторых ситуациях
не помогает. Тогда придется вручную присваивать нужное название после загрузки, либо используя параметр -O.
wget -c -t 0 -T 60 -O 'Имя файла.расширение' ссылка


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

Обновление системы

sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0' --no-install
sudo urpmi --auto-select --test
sudo urpmi.update -a --downloader wget --wget-options '-c -t 0'

sudo  — позволяет разрешенному пользователю выполнять команду как суперпользователь
urpmi — загружает и устанавливает rpm пакеты
      --auto-update  — обновляет источники пакетов, а затем выбирает какие пакеты могут быть обновлены
      --downloader   — позволяет выбрать желаемую программу для загрузки пакетов. Мы будем использовать wget
                       Хотя она, вроде как, установлена для urpmi программой для загрузки по умолчанию все-таки
                       лучше перестраховаться
      --wget-options — устанавливает дополнительные опции для wget
          -c  — возобновление загрузки файла. Используется если загрузка файла была прервана
          -t  — устанавливает количество попыток скачать пакет. 0 - бесконечное
      --no-install   — не устанавливать пакеты
      --auto-select  — выбирает какие пакеты могут быть обновлены без обновления источников
      --test         — тестирует установку пакетов. Пакеты не устанавливаются, в системе ничего изменяется
urpmi.update — обновляет источники пакетов
      -a — обновить все источники

Загрузка прочих файлов из интернета

wget — программа для загрузки файлов из интернета
    -c — возобновление загрузки файла. Используется если загрузка файла была прервана
    -t — устанавливает количество попыток скачать пакет. 0 - бесконечное
    -T — устанавливает время ожидания в секундах. Если сервер перестал отвечать, то по истечении
         установленного времени wget попытается к нему переподключиться
    -O — сохранить файл с указанным именем