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

Материал из Rosalab Wiki
Перейти к: навигация, поиск
 
 
(не показано 25 промежуточных версий этого же участника)
Строка 1: Строка 1:
''Автор рецепта -- участник форума '''unixforum.org''' [http://unixforum.org/index.php?showuser=32169 VictorR2007]''
 
  
 +
Не всем везёт иметь быстрый интернет.<br />
 +
Если скорость соединения с интернетом низкая, то обновлять систему или устанавливать тяжелые пакеты <br />
 +
стандартным способом достаточно опасно. Какой-нибудь пакет может скачаться с ошибкой и при установке <br />
 +
что-нибудь сломать. Исправить возникшую проблему будет сложно, или вовсе невозможно и придется <br />
 +
переустанавливать систему, а потом… В общем, лучше пойти другим путем и значительно снизить <br />
 +
вероятность возникновения проблем.<br />
  
Не всем везёт иметь быстрый интернет.<br/>
+
Будьте готовы к работе в эмуляторе терминала. В KDE4/KDE5(PLASMA5) — konsole. В XFCE — xfce4-terminal.<br />
Если скорость низкая, то есть варианты при обновлении.<br/>
+
В GNOME — gnome-terminal. В LXQT — qterminal. Либо в любом другом установленном в системе.<br />
Например пакет {{pkg|kdeartwork4-wallpapers}} очень тяжёлый, но файлы в нём практически не меняются от версии к версии.<br/>
+
Достаточно раз его установить, скопировать каталог {{источник|/usr/share/wallpapers}}, потом удалить пакет {{pkg|kdeartwork4-wallpapers}} и скопировать этот каталог обратно. Картинки будут установлены, но обновляться не будут.<br/>
+
Теперь [http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85 протокол], лучше брать [[Настройка официальных источников| зеркало]] [http://ru.wikipedia.org/wiki/Http http], с [http://ru.wikipedia.org/wiki/Ftp ftp] при низкой скорости хуже.<br/>
+
Ещё можно в несколько раз сократить траффик зайдя в [[Центр управления РОСА]] далее {{Меню|"Управление программами" - "Настройка источников установки/обновления" - "Параметры" - " "Глобальные параметры" - "Проверка-никогда" - "Загрузчик-wget" - "Политика загрузки..-никогда"}}. Теперь при обновлении источников объем загружаемой информации сократится в разы. По загрузчику {{Программа|wget}}, он вроде как и создан для медленных соединений.
+
Потом выбор зеркала. Нужно зеркало с поддержкой докачки, и так как скорость в нашем случае не нужна, то лучший выбор:<br/>
+
  
<nowiki>http://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2011/</nowiki> <br/>
+
Если у вас нет второго компьютера советую сделать загрузочную флешку с росой и перед каждым обновлением<br />
зеркало бывает перегружено, но в нашем случае с медленной скоростью это не существенно. Это зеркало поддеживает {{Программа|rsync}} и докачку, плюс здесь самые свежие пакеты.
+
на всякий случай держать ее рядом. Я некоторое время даже делал резервную копию корневого раздела с<br />
Подозреваю что остальные зеркала синхронизируются с этим.<br/>
+
помощью qt5-fsarchiver, перед тем, как обновляться. Правда ни разу так и не пришлось из нее восстанавливаться...<br />
Теперь о закачке.<br/>
+
Но загрузочная флешка несколько раз меня выручала.<br />
Напишу в виде примера.<br/>
+
Мы хотим обновить KDE4, обновление глобальное.<br/>
+
Скорости нет, ну может ночью хорошая.<br/>
+
Если дать стандартную команду
+
{{cmd|urpmi --auto-select --auto-update}}<br/>
+
то может быть некорректное обновление, сбой загрузки или не до конца догруженный файл приведут к краху системы.<br/>
+
  
 +
P.S.<br />
 +
''Если в этом нет особой необходимости — не обновляйтесь. Не зря же говорят: "Работает — не трогай!".''<br />
  
Другой вариант
+
P.P.S.<br />
{{cmd|urpmi --auto-select --auto-update --no-install}}<br/>
+
Тут оказывается имеется слишком много нюансов, поэтому не уверен, что у меня получится доступно всё<br />
позволяет только скачать файлы без их установки, а установить их можно позже.<br/>
+
объяснить...<br />
Но с нашей скоростью это не выход.<br/>
+
Ну и не судите строго — это моя первая инструкция.<br />
{{Программа|Urpmi}} скачивает пакеты порциями в каталог {{Источник|/var/cache/urpmi/partial}} потом скачанные файлы перемещает в каталог {{Источник|/var/cache/urpmi/rpms}}, потом начинает скачивает следующую порцию файлов.<br/>
+
 
Если в процессе загрузки возникнет проблема со связью, да плюс зеркало не поддерживает докачку, мы получим сообшение что
+
 
необходимо обновить источники, а каталоги {{Источник|/var/cache/urpmi/partial}} и {{Источник|/var/cache/urpmi/rpms}} будут очищены и придётся всё скачивать заново.
+
 
Чтобы это обойти, команда должна быть с ключём --auto такая<br/>
+
 
{{cmd|urpmi --auto-select --auto-update --auto --no-install}}<br/>
+
== Обновление системы ==
В этом случае каталог {{Источник|/var/cache/urpmi/rpms}} никогда не очищается и все пакеты останутся при вас.<br/>
+
 
Потом копируем загруженные файлы в нужный нам каталог. Даём команду<br/>
+
=== Вариант 1 ===
{{cmd|genhdlist2 /путь/к/этому каталогу}}<br/>
+
'''Когда соединение медленное, но достаточно стабильное'''<br />
и добавляем его как локальный источник. Повторяем команду<br/>
+
 
{{cmd|urpmi --auto-select --auto-update --auto --no-install}} <br/>
+
Если последнее обновление было больше недели назад очень высока вероятность того, что оно будет в два<br />
пока не догрузятся все файлы,после каждой загрузки копируя их в нужный каталог и выполняя <br/>
+
этапа. Насколько я понимаю, в этом случае сначала должны обновиться программы, которые отвечают за<br />
{{cmd|genhdlist2 /путь/к/этому каталогу}} <br/>
+
загрузку файлов из интернета (wget и/или curl) и программы управляющие пакетами (rpm и/или urpmi, *URPM).<br />
Когда все пакеты загрузятся, можно отключить сетевые источники и обновиться с локального.<br/>
+
Затем всё остальное. В первом этапе пакетов будет меньше 30 и их размер не будет превышать 20МБ. Во втором<br />
Для начала лучше так <br/>
+
может быть любое кол-во и любой суммарный размер. Пакеты первого этапа можно сразу скачать и установить,<br />
{{cmd|urpmi --auto-select --auto-update --test}}<br/>
+
но на втором  придется действовать по обстоятельствам. Если пакетов будет больше 15, а их суммарный<br />
тут мы посмотрим вывод, нет ли недокачанных пакетов. Если всё хорошо, то обновляемся и радуемся жизни.<br/>
+
размер меньше 20МБ, то можно продолжать обновляться. В ином случае нужно обновление прерывать и запускать<br />
Если получаем ошибку на какой-то пакет то не расстраиваемся, возможно просто не докачалось несколько байт.<br/>
+
команду, которая загрузит все пакеты, но не станет их устанавливать. С медленным интернетом лучше сначала<br />
Копируем его имя и ищем его в локальном репзитарии, чтобы узнать полное имя для докачки, если файл крупный, если мелкий
+
загрузить все пакеты, а потом обновить всё разом.<br />
то можно его просто удалить, и повторно запустить
+
 
{{cmd|urpmi --auto-select --auto-update --auto --no-install}}<br/>
+
Если обновлялись вчера/позавчера, то обновлений может быть совсем мало и в один этап. Здесь уже смотрим, что<br />
Если пакет большой то проще его докачать, смотрим, где он лежит на сервере. Например, у нас есть недокачанный {{pkg|kdebase4-workspace-4.6.5-4-mdv2011.0.x86_64.rpm}} размером около 60мб, его заново качать нет смысла, путь к нему<br/>
+
предлагают обновить. Если, например, два пакета, firefox и firefox-ru, с суммарным размером более 30МБ, то<br />
 +
их сначала нужно скачать, протестировать и только потом установить. Если пакетов 3, а размер ~10МБ — продолжаем<br />
 +
обновление.<br />
 +
 
 +
==== Пример 1 ====
 +
 
 +
Открываем эмулятор терминала и запускаем команду {{cmd|sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0'}}.<br />
 +
 
 +
[[File:Screenshot_01.png||700px]]<br />
 +
 
 +
Нам предлагают загрузить 21 пакет с суммарным размером 10МБ. Пакетов много, но при этом все имеют малый <br />
 +
размер. Можно соглашаться на установку. Просто жмем Enter.<br />
 +
 
 +
[[File:Screenshot_02.png||700px]]<br />
 +
 
 +
Нам предложили загрузить 562 пакета с суммарным размером 799МБ. Отказываемся — вводим n и жмем Enter.<br />
 +
Запускаем команду {{Cmd|sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0' --no-install}}<br />
 +
и соглашаемся на установку. Пакеты будут загружены, но не станут устанавливаться. Если загрузка по какой-то<br />
 +
причине будет прерываться, предыдущую команду нужно выполнять снова, пока не будет загружено всё.<br />
 +
 
 +
[[File:Screenshot_03.png||700px]]<br />
 +
 
 +
Когда все пакеты будут загружены, нужно протестировать установку. Запускаем команду<br />
 +
{{cmd|sudo urpmi --auto-select --test}}<br />
 +
 
 +
[[File:Screenshot_04.png|Этот снимок пришлось сделать на реальной машине. Живой режим в виртуальной не выдержал тестирования установки 562 пакетов|700px]]<br />
 +
 
 +
Тестирование ошибок не выявило. Теперь можно обновлять систему. {{Cmd|sudo urpmi --auto-select}}<br />
 +
 
 +
[[File:Screenshot_05.png|Этот снимок сделан на реальной машине. Живой режим в виртуальной не выдержит установки 562 пакетов|700px]]<br />
 +
 
 +
==== Пример 2 ====
 +
 
 +
Открываем эмулятор терминала и запускаем команду {{cmd|sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0'}}.<br />
 +
 
 +
[[File:Screenshot_16.png||700px]]
 +
 
 +
Нам предлагают обновить 3 пакета с суммарным размером 62МБ. Отказываемся и запускаем команду<br />
 +
{{Cmd|sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0' --no-install}}<br />
 +
Если загрузка будет прерываться, эту команду нужно выполнять пока пакеты не будут полностью загружены.<br />
 +
 
 +
Пакеты загрузились? Тестируем установку — {{cmd|sudo urpmi --auto-select --test}}<br />
 +
 
 +
[[File:Screenshot_17.png||700px]]
 +
 
 +
Установка возможна. Обновляем — {{cmd|sudo urpmi --auto-select}}<br />
 +
 
 +
==== Пример 3 ====
 +
 
 +
[[:File:Пример1-3.zip]]
 +
 
 +
=== Вариант 2 ===
 +
'''Когда соединение медленное и нестабильное'''<br />
 +
 
 +
==== Пример 1 ====
 +
 
 +
Открываем эмулятор терминала и обновляем источники {{Cmd|sudo urpmi.update -a --downloader wget --wget-options '-c -t 0'}}<br />
 +
 
 +
[[File:Screenshot_06.png||700px]]<br />
 +
 
 +
Запускаем команду {{Cmd|sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0' --no-install}}<br />
 +
 
 +
[[File:Screenshot_07.png||700px]]<br />
 +
 
 +
На предложение соглашаемся. Пакеты загрузятся, но не будут устанавливаться. <br />
 +
 
 +
[[File:Screenshot_07_01.png||700px]]<br />
 +
 
 +
От предложения загрузить и установить другие пакеты — отказываемся. <br />
 +
Запускаем {{cmd|sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0'}}<br />
 +
 
 +
[[File:Screenshot_08.png||700px]]<br />
 +
 
 +
Соглашаемся на установку.<br />
 +
 
 +
[[File:Screenshot_09.png||700px]]<br />
 +
 
 +
Отказываемся. Запускаем снова {{Cmd|sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0' --no-install}}<br />
 +
и соглашаемся загрузить предложеные пакеты. Если загрузка по какой-то причине будет прерываться, предыдущую <br />
 +
команду нужно выполнять снова, пока не будет загружено всё.<br />
 +
 
 +
[[File:Screenshot_10.png||700px]]
 +
 
 +
Запускаем тестирование — {{cmd|sudo urpmi --auto-select --test}}<br />
 +
 
 +
[[File:Screenshot_11.png||700px]]
 +
 
 +
Тестирование ошибок не выявило. Теперь можно обновлять систему. {{Cmd|sudo urpmi --auto-select}}<br />
 +
 
 +
==== Пример 2 ====
 +
 
 +
[[:File:Пример2.zip]]<br />
 +
 
 +
В архиве находится текстовый файл. В нем приведены команды из первого примера, но вместо снимков экрана<br />
 +
более подробный текстовый результат их выполнения. В нем также кратко описаны некоторые нюансы, которые<br />
 +
могут возникнуть при обновлении.<br />
 +
 
 +
==== Пример 3 ====
 +
 
 +
[[:File:Пример3.zip]]<br />
 +
 
 +
== Установка пакетов ==
 +
=== Пример 1 (с ошибкой) ===
 +
 
 +
'''Установка wine'''<br />
 +
 
 +
Обновляем источники. {{Cmd|sudo urpmi.update -a --downloader wget --wget-options '-c -t 0'}}<br />
 +
 
 +
[[File:Screenshot_12.png||700px]]<br />
 +
 
 +
Загружаем wine и все требуемые зависимости. {{cmd|sudo urpmi --downloader wget --wget-options '-c -t 0' wine --no-install}} <br />
 +
 
 +
[[File:Screenshot_13.png||700px]]<br />
 +
 
 +
Если загрузка прервется, повторяем предыдущую команду.<br />
 +
 
 +
[[File:Screenshot_14.png||700px]]<br />
 +
 
 +
Упс, ошибка. Похоже в хранилище пакетов попали те, что с ошибкой. Подождем несколько часов пока исправят.<br />
 +
Если эта ошибка потом возникнет снова идем на форум росы или в сообщество во вконтакте и спрашиваем,<br />
 +
как исправить.<br />
 +
 
 +
Если ошибку исправили, обновляем источники, загружаем wine со всеми зависимостями. Когда всё загрузится<br />
 +
запускаем тест установки. {{cmd|sudo urpmi wine --test}}. Если будет ответ "Установка возможна", устанавливаем<br />
 +
{{cmd|sudo urpmi wine}}<br />
 +
 
 +
PS.<br />
 +
Даже интересно стало. Более трех дней ожидания и никаких изменений. Попытка установить wine проводилась<br />
 +
на образе с abf.io от 22 ноября 2019 года. Для пробы попытался произвести установку этой программы в релизном<br />
 +
ROSA.FRESH.PLASMA5.R11, но получил ту же ошибку.<br />
 +
Скачал с abf новый образ от 4 февраля. При установке wine выводится предупреждение о том, что некоторые<br />
 +
пакеты имеют неверные подписи. Если отключить проверку (параметр {{cmd|--no-verify-rpm}}), то они тестируются и<br />
 +
устанавливаются.<br />
 +
Ради эксперимента установил в virtualbox росу с релизного образа про который говорил выше. Попытка<br />
 +
обновиться привела к другой ошибке. Пакет systemd-243 не смог обновиться и не помогла ни команда <br />
 +
{{cmd|sudo urpmi --replacepkgs systemd-243}}, ни его удаление. Там было что-то про отсутствие исходников ядра <br />
 +
в каком-то каталоге, в общем — не важно. Далее я просто попытался провести синхронизацию пакетов в системе <br />
 +
к тому состоянию, что в репозиториях. Мне было предложено скачать без малого 3ГБ пакетов, я согласился и <br />
 +
через некоторое время она была успешно произведена. Потом и попытка установить wine прошла успешно.<br />
 +
 
 +
=== Пример 2 ===
 +
'''Установка calibre'''<br />
 +
 
 +
Обновляем источники. {{Cmd|sudo urpmi.update -a --downloader wget --wget-options '-c -t 0'}}<br />
 +
 
 +
Загружаем calibre и все требуемые зависимости. {{cmd|sudo urpmi --downloader wget --wget-options '-c -t 0' calibre --no-install}} <br />
 +
 
 +
[[File:Screenshot_18.png||700px]]
 +
 
 +
Тестируем установку. {{cmd|sudo urpmi calibre --test}}
 +
 
 +
[[File:Screenshot_19.png||700px]]
 +
 
 +
Устанавливаем. {{cmd|sudo urpmi calibre}}
 +
 
 +
== Загрузка прочих файлов из интернета ==
 +
 
 +
Для загрузки используем программу {{cmd|wget}} с параметрами {{cmd|-c -t 0 -T 60}}<br />
 +
 
 +
Пример:<br />
 +
{{cmd|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}}<br />
 +
 
 +
Если загрузка прервалась, запускаем команду снова. Загрузка файла будет начата с того места, на котором остановилась.<br />
 +
 
 +
[[File:Screenshot_15.png||700px]]
 +
 
 +
Иногда может случиться так, что доступ в интернет есть, но загрузка файла остановилась<br />
 +
и программа не пытается ее продолжить. Жмем ctrl+c и снова запускаем скачивание.<br />
 +
 
 +
Нередко wget присваивает файлу в качестве имени часть ссылки. В этом случае нужно добавлять к вышеуказанным<br />
 +
параметрам {{cmd|--content-disposition}}. {{cmd|wget -c -t 0 -T 60 --content-disposition ссылка}}. Но и он в некоторых ситуациях<br />
 +
не помогает. Тогда придется вручную присваивать нужное название после загрузки, либо используя параметр -O.<br />
 +
{{cmd|wget -c -t 0 -T 60 -O 'Имя файла.расширение' ссылка}}<br />
 +
 
 +
 
 +
== Справка по используемым командам ==
 +
=== Обновление системы ===
 +
 
 +
{{Cmd|sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0' --no-install}}<br />
 +
{{cmd|sudo urpmi --auto-select --test}}<br />
 +
{{Cmd|sudo urpmi.update -a --downloader wget --wget-options '-c -t 0'}}<br />
 +
sudo  — позволяет разрешенному пользователю выполнять команду как суперпользователь
 +
urpmi — загружает и устанавливает rpm пакеты
 +
      --auto-update  — обновляет источники пакетов, а затем выбирает какие пакеты могут быть обновлены
 +
      --downloader  — позволяет выбрать желаемую программу для загрузки пакетов. Мы будем использовать wget
 +
                        Хотя она, вроде как, установлена для urpmi программой для загрузки по умолчанию все-таки
 +
                        лучше перестраховаться
 +
      --wget-options — устанавливает дополнительные опции для wget
 +
          -c  — возобновление загрузки файла. Используется если загрузка файла была прервана
 +
          -t  — устанавливает количество попыток скачать пакет. 0 - бесконечное
 +
      --no-install  — не устанавливать пакеты
 +
      --auto-select  — выбирает какие пакеты могут быть обновлены без обновления источников
 +
      --test        — тестирует установку пакетов. Пакеты не устанавливаются, в системе ничего изменяется
 +
urpmi.update — обновляет источники пакетов
 +
      -a — обновить все источники
 +
{{Cmd|man sudo}}<br />
 +
{{Cmd|man urpmi}}<br />
 +
{{Cmd|man urpmi.update}}<br />
 +
 
 +
=== Загрузка прочих файлов из интернета ===
 +
 
 +
wget — программа для загрузки файлов из интернета
 +
    -c — возобновление загрузки файла. Используется если загрузка файла была прервана
 +
    -t — устанавливает количество попыток скачать пакет. 0 - бесконечное
 +
    -T — устанавливает время ожидания в секундах. Если сервер перестал отвечать, то по истечении
 +
          установленного времени wget попытается к нему переподключиться
 +
    -O — сохранить файл с указанным именем
 +
{{Cmd|man wget}}<br />
  
<nowiki>ftp://mirror.yandex.ru/mandriva/official/2011/x86_64/media/main/release/</nowiki> <br/>
 
мы открываем консоль в каталоге с локальным репозитарием и даем команду<br />
 
  
{{cmd|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}}<br/>
 
пакет докачается и можно обновляться.<br/>
 
  
<gallery widths=700px heights=350px perrow=1 caption="Иллюстрации">
 
File:1.png|Отключение этих пунктов сокращает траффик в несколько раз
 
File:2.png|Даём команду на загрузку пакетов
 
File:3.png|Заходим в каталог {{Источник|/var/cache/urpmi/rpms}}, жмём F3 чтобы разделить {{Программа|Dolphin}} на две панели,
 
во второй панели открываем ранее созданный каталог, в данном случае каталог repo созданный в домашней директории. Выделяем все пакеты и копируем в каталог {{Источник|repo}}.
 
File:4.png|Создаем ''hdlist.cz'' локального репозитория
 
File:5.png|Добавляем локальный репозиторий. Чекбокс "Создать источник для всего дистрибутива" оставляем пустым, если его отметить, будем получать ошибку
 
</gallery>
 
<br/>
 
Всё, можем отключить сетевые источники и обновиться любым удобным способом, GUI или консоль, тут дело вкуса.<br/>
 
  
 
[[Категория:HOWTO]]
 
[[Категория:HOWTO]]

Текущая версия на 12:46, 3 марта 2020

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

Будьте готовы к работе в эмуляторе терминала. В KDE4/KDE5(PLASMA5) — konsole. В XFCE — xfce4-terminal.
В GNOME — gnome-terminal. В LXQT — qterminal. Либо в любом другом установленном в системе.

Если у вас нет второго компьютера советую сделать загрузочную флешку с росой и перед каждым обновлением
на всякий случай держать ее рядом. Я некоторое время даже делал резервную копию корневого раздела с
помощью qt5-fsarchiver, перед тем, как обновляться. Правда ни разу так и не пришлось из нее восстанавливаться...
Но загрузочная флешка несколько раз меня выручала.

P.S.
Если в этом нет особой необходимости — не обновляйтесь. Не зря же говорят: "Работает — не трогай!".

P.P.S.
Тут оказывается имеется слишком много нюансов, поэтому не уверен, что у меня получится доступно всё
объяснить...
Ну и не судите строго — это моя первая инструкция.



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

Вариант 1

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

Если последнее обновление было больше недели назад очень высока вероятность того, что оно будет в два
этапа. Насколько я понимаю, в этом случае сначала должны обновиться программы, которые отвечают за
загрузку файлов из интернета (wget и/или curl) и программы управляющие пакетами (rpm и/или urpmi, *URPM).
Затем всё остальное. В первом этапе пакетов будет меньше 30 и их размер не будет превышать 20МБ. Во втором
может быть любое кол-во и любой суммарный размер. Пакеты первого этапа можно сразу скачать и установить,
но на втором придется действовать по обстоятельствам. Если пакетов будет больше 15, а их суммарный
размер меньше 20МБ, то можно продолжать обновляться. В ином случае нужно обновление прерывать и запускать
команду, которая загрузит все пакеты, но не станет их устанавливать. С медленным интернетом лучше сначала
загрузить все пакеты, а потом обновить всё разом.

Если обновлялись вчера/позавчера, то обновлений может быть совсем мало и в один этап. Здесь уже смотрим, что
предлагают обновить. Если, например, два пакета, firefox и firefox-ru, с суммарным размером более 30МБ, то
их сначала нужно скачать, протестировать и только потом установить. Если пакетов 3, а размер ~10МБ — продолжаем
обновление.

Пример 1

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

Screenshot 01.png

Нам предлагают загрузить 21 пакет с суммарным размером 10МБ. Пакетов много, но при этом все имеют малый
размер. Можно соглашаться на установку. Просто жмем Enter.

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

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

Screenshot 16.png

Нам предлагают обновить 3 пакета с суммарным размером 62МБ. Отказываемся и запускаем команду
sudo urpmi --auto-update --downloader wget --wget-options '-c -t 0' --no-install
Если загрузка будет прерываться, эту команду нужно выполнять пока пакеты не будут полностью загружены.

Пакеты загрузились? Тестируем установку — sudo urpmi --auto-select --test

Screenshot 17.png

Установка возможна. Обновляем — sudo urpmi --auto-select

Пример 3

File:Пример1-3.zip

Вариант 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

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

Пример 3

File:Пример3.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

PS.
Даже интересно стало. Более трех дней ожидания и никаких изменений. Попытка установить wine проводилась
на образе с abf.io от 22 ноября 2019 года. Для пробы попытался произвести установку этой программы в релизном
ROSA.FRESH.PLASMA5.R11, но получил ту же ошибку.
Скачал с abf новый образ от 4 февраля. При установке wine выводится предупреждение о том, что некоторые
пакеты имеют неверные подписи. Если отключить проверку (параметр --no-verify-rpm), то они тестируются и
устанавливаются.
Ради эксперимента установил в virtualbox росу с релизного образа про который говорил выше. Попытка
обновиться привела к другой ошибке. Пакет systemd-243 не смог обновиться и не помогла ни команда
sudo urpmi --replacepkgs systemd-243, ни его удаление. Там было что-то про отсутствие исходников ядра
в каком-то каталоге, в общем — не важно. Далее я просто попытался провести синхронизацию пакетов в системе
к тому состоянию, что в репозиториях. Мне было предложено скачать без малого 3ГБ пакетов, я согласился и
через некоторое время она была успешно произведена. Потом и попытка установить wine прошла успешно.

Пример 2

Установка calibre

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

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

Screenshot 18.png

Тестируем установку. sudo urpmi calibre --test

Screenshot 19.png

Устанавливаем. sudo urpmi calibre

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

Для загрузки используем программу 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 — обновить все источники

man sudo
man urpmi
man urpmi.update

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

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

man wget