Обновление системы из пакетов

В связи с периодически возникающими на форуме вопросами касающихся обновления системы из пакетов, сделал вывод, что в документации этот вопрос освещен недостаточно подробно.
Итак, начнем.
# Обновляем оверлей и portage
eix-sync
# Посмотрим для начала сколько пакетов требуется обновить, какие это пакеты, наличие конфликтов, а так же объем скачиваемых пакетов
emerge -upvDN world
В случае, если вы хотите обновить не все пакеты, а только основные системные
emerge -upvDN system
(правда достаточно часто при этом могут выявится неразрешимые конфликты и все равно придется обновляться полностью)
Про параметры emerge можно почитать отдельно в руководстве.
# В случае, если вы удаляли какие-то пакеты из базового набора Calculate они могут вновь попробовать вернуться (так как входят в состав профиля calculate). В этом случае системе надо сказать “игнорировать” эти пакеты. Наиболее оптимальным является внесение удаляемых пакетов в файл /etc/portage/profile/package.provided
# Пакеты, которые вы устанавливали самостоятельно автоматически прописываются в world-файле и будут обновляться вместе с остальными пакетами. Не засоряйте world-файл лишними записями, стирайте упоминания об удаленных пакетах, не включайте в него пакеты, устанавливаемые по зависимостям - все это может способствовать возникновению конфликтов при обновлении.
# Собственно обновление системы
emerge -uvDN world
# После обновления не забываем внимательно изучить сообщения emerge часто возникает необходимость в совершении дополнительных действий. Обновившись несколько раз вы уже сами будете знать, что вам дополнительно потребуется, но поначалу читаем сообщения внимательно. Наиболее частые это:

  • *emerge `preserved-rebuild - проверяет соответствия установленных библиотек
    Сходная команда - “revdep-rebuild”:http://www.calculate-linux.ru/main/ru/revdep-rebuild. В чем нюансы отличий - точно не скажу - буду рад за подсказку :slight_smile:
    • emerge `module-rebuild* - при обновлении ядра или драйверов устройств (частный случай - emerge @x11-module-rebuild - при обновлении драйвера видеокарты). Альтернативный вариант - использование пакета module-rebuild
  • perl-cleaner --reallyall при обновлении perl
  • обновление python.
    После установки обновленного пакета необходимо через eselect python выбрать версию, которая будет считаться основной, а затем запустить python-updater.
  • обновление конфигурационных файлов dispatch-conf принципе, если вы никогда вручную не правили ни один конфиг можно просто зажать клавишу “использовать новый конфигурациооный файл” и обновить все “по умолчанию”.

Обновление можно считать завершенным. Теперь займемся “уборкой мусора”

# Проверяем систему на наличие ненужных пакетов
emerge -c или emerge --depclean
Желательно конечно вначале запустить эту команду с параметрами -p и -v для оценки предполагаемых изменений
# Удаляем уже ненужные исходные тексты/пакеты
eclean-pkg или eclean-dist
При этом удалятся лишь уже устаревшие версии пакетов. Актуальные (в том числе и те, которые вы только скачали) сохранятся.

Собственно все :-). Жду дополнений, критики, рекомендаций…

Да. Хотелось бы комментариев от авторитетных пользователей. А то выходит я уже 7месяцев не совсем верно обновляюсь. * Руководство по обновлению системы* http://www.calculate-linux.ru/main/ru/system_update_guide

Павел К писал(а):

Да. Хотелось бы комментариев от авторитетных пользователей. А то выходит я уже 7месяцев не совсем верно обновляюсь. * Руководство по обновлению системы* http://www.calculate-linux.ru/main/ru/system_update_guide

Если вы обновляетесь из ISO образа - то это руководство к вам не имеет отношения.
Если из пакетов - то по приведенной вами ссылке лишь краткое руководство, не раскрывающее нюансов обновления того же python, perl и многого другого описанного выше.
И многие темы на форуме (за последнюю неделю только две) - тому подтверждение.

На мой взгляд хорошее руководство. С небольшими правками и дополнениями будет весьма хорошим подспорьем для новичков.

К команде emerge можно добавлять параметр -a, который выдает запрос на продолжение операции после предварительного вывода на экран предварительного анализа предполагаемого действия. Это позволяет пользователю не тратить время на предварительную оценку с помощью параметра -p. Команда revdep-rebuild разрешает вопросы с зависимостями пакетов. Лучше применять такой вариант revdep-rebuild -i. Она выявляет сломанные зависимости у основных пакетов и осиротевшие, которые потом можно удалить, к примеру, командой emerge -ac или исправить, если не ошибаюсь как раз командой emerge @preserved-rebuild (поправьте, если это не так).

“Про параметры emerge можно почитать отдельно в руководстве.” Лучше сделать сразу со ссылкой на описание emerge.

P.S.

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

При описании ключа возможность делать ссылку именно на ту часть страницы, где расположено описание конкретного ключа команды. И подсвечивать такие гипер-элементы специальным цветом. Т.е. нажал на параметр и перешел к описанию.

emerge @module-rebuild пытается пересобрать и “старое” ядро, так что я бы все же предложил вернуть в дистр module-rebuild, emerge module-rebuild. И пользоватся им: module-rebuild rebuild.

Если из пакетов - то по приведенной вами ссылке лишь краткое руководство, не раскрывающее нюансов обновления >того же python, perl и многого другого описанного выше.
И многие темы на форуме (за последнюю неделю только две) - тому подтверждение.

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

Но удивительно мне то, что за пол года у меня не было крупных поломок системы, хотя я пользовался лишь eix-sync, emerge -uD world, dispatch-conf.

Итак: как руководство к обновлению профиля без изменённых USE флагов можно принимать текст Сергея Сиделова.

Естественно подождём ещё комментариев.

После установки обновленного пакета необходимо через eselect python выбрать версию, >которая будет считаться основной, а затем запустить python-updater.

Не могу разобраться как выбрать версию.eselect python выдаёт htlp, но не получается.

Давненько я не обновлял систему. Вот решил уделить время.
Однако возникли коллизии http://pastebin.calculate-linux.ru/ru/show/3286
Помогите, плз, разрулить!
Хотя бы направьте куда копнуть. Просто не хочется ставить из ISO ибо многое уже ставилось руками.
Это мне нужно сначала выкосить весь qt?
PS. CLD 11.12

Павел К писал(а):

После установки обновленного пакета необходимо через eselect python выбрать версию, >которая будет считаться основной, а затем запустить python-updater.

Не могу разобраться как выбрать версию.eselect python выдаёт htlp, но не получается.

eselect python set 1
Только я не советовал бы делать python3 основным, не все проги его понимают и может быть неприятно, когда у тебя портаж или что-то еще начнет сыпать ошибками по непонятным причинам.

Только я не советовал бы делать python3 основным

А если не выполнять eselect python, а выполнить сразу python-updater?

Павел К писал(а):

Только я не советовал бы делать python3 основным

А если не выполнять eselect python, а выполнить сразу python-updater?

А смысл?

Всё понял. eselect python list - этой командой смотрим что у нас есть и что использует система. Если нас устраивает - например система использует 2.7(звёздочка над версией), то зачем выполнять python-updater?

Большое дело для хомячков как я сделал Сергей Сиделев - спасибо. Целый день просидел в google и кое в чём разобрался. Сделаю PDF-ку для детей, с более обширными коментами для команд.

Николай Шкрылев писал(а):

Давненько я не обновлял систему. Вот решил уделить время.
Однако возникли коллизии http://pastebin.calculate-linux.ru/ru/show/3286
Помогите, плз, разрулить!
Хотя бы направьте куда копнуть. Просто не хочется ставить из ISO ибо многое уже ставилось руками.
Это мне нужно сначала выкосить весь qt?
PS. CLD 11.12

Да придется руками выкашивать библиотеки. Портеж почему-то не хочет самостоятельно разруливать зависимости KDE должным образом.

Родион Дорошкевич писал(а):

emerge @module-rebuild пытается пересобрать и “старое” ядро, так что я бы все же предложил вернуть в дистр module-rebuild, emerge module-rebuild. И пользоватся им: module-rebuild rebuild.

В смысле вернуть? А он никуда не девался…
Только что нормально выполнилось module-rebuild -X rebuild

Да, я уже понял, он есть в CLD{G,X} и в CDS, а у меня CLS, там его почему-то нету…