Дело в том, что, как видно по сообщениям выше - я решительно не могу понять, почему portage хочет обновиться именно до тестовой версии. Я специально этого не делал, а потому и ответить на вопрос - зачем - не в состоянии. Каким образом спрятать её обратно - тоже не знаю. На данный момент все файлы в папках /etc/portage/package.{%anyword% } пусты, либо закомментированы знаком #.
увы, это от безысходности - сперва решил погуглить и попробовать исправить самостоятельно, используя опции подсмотренные в других топиках со схожими проблемами
тут мой косяк - добавил sudo только в первую команду и забыл в последующие. Потом исправил. Результатом, похоже, оказалось только то, что gentoolkit удалился, а вот portage обновиться так и не смог и теперь блокирует установку gentoolkit обратно. О_о
Как видно по Вашим логам, Вы всякий раз выполняете команды на новой версии репозитория портежей не получив положительного результата. Это неправильно.
Вы постоянно модифицируете дерево зависимостей и тем осложняете себе задачу. Остановитесь на какой-то одной версии (на той, которая есть в настоящий момент), успешно обновите систему и только потом снова можете синхронизировать портежи с центральным репозиторием.
Какова обычная схема обновления системы:
Синхронизируются портежи (по сути это список доступных версий пакетов) командой emerge --sync
Если есть обновление для пакета portage — обновить в первую очередь его командой emerge -1 portage
Запустить обновление остальной системы командой emerge -auDN @world
Переустановить пакеты из набора @preserved-rebuild командой emerge -a @preserved-rebuild
Почистить систему от мусора командой emerge -a --depclean
Ровно эти действия и выполняет утилита cl-update.
Необходимо обязательно добиться успешного выполнения каждого шага.
В стандартной ситуации всё проходит без ошибок и никаких дополнительных действий не требуется.
Но у Вас особый случай — давно не обновлялись, есть размаскированные тестовые пакеты (которые могут ломать дерево зависимостей), взаимная блокировка пакетов portage и gentoolkit — поэтому придётся выполнить вручную каждый шаг.
Portage у Вас размаскированной тестовой версии (видно по логам). Первый шаг — уйти на стабильную. Вам надо найти, в каком файле размаскирован portage и обратно замаскировать его (можно командой grep -rF ‘sys-apps/portage’ /etc/portage). В вашем снимке каталога /etc/portage пакет sys-apps/portage размаскирован в файле portage/package.keywords/custom — надо его обратно замаскировать. Проверить, какая версия пакета будет устанавливаться в систему можно командой emerge -pv1 <имя-пакета>.
Что делать, если «засор не рассосался»?
Можно попробовать разгрузить систему от условно необязательных пакетов и обновиться снова.
Как понять, кто обязательный, а кто необязательный?
Все пакеты в системе собраны в пересекающиеся наборы (имеющиеся наборы можно вывести командой emerge --list-sets). Так вот, всё, что понаставлено ручками, находится в наборе @world — пришпиленные туда пакеты прописаны в файле /var/lib/portage/world. Можно сохранить копию этого файла и почистить его в текстовом редакторе от «лишних» пакетов (без фанатизма).
После этого чистим систему и пробуем обновиться:
emerge -a --depclean
emerge -1 portage
emerge -auDN --changed-deps y @world
После того, как обновитесь — восстановите файл world и заново запустите обновление командой emerge -auDN @world
Ну или пойти ещё сильнее — обновить всё дерево пакетов начисто командой emerge -a --emptytree @world
Главное вдумчиво читать логи команды emerge.
Как-то так…
Я кажется догадываюсь что происходит…
Смотрите, portage говорит о конфликте двух версий пакета в одном слоте:
sys-apps/portage-2.3.79:0/0::gentoo (строка 19 лога), которая выбрана для установки из командной строки (строка 20 лога) и, также, нужна пакету app-portage/gentoolkit-0.4.2-r1:0/0::gentoo (строка 21, надо лог смотреть в raw режиме, чтобы длинные строки были видны)
sys-apps/portage-2.3.19-r1:0/0::gentoo (строка 24), который притянут установленным в систему (старым) пакетом app-portage/layman-2.4.2:0/0::gentoo
В итоге пакет portage надо обновить, но его держит старый layman через зависимости.
Кстати, это было бы видно в логе команды:
emerge -C gentoolkit && emerge -1 portage && emerge gentoolkit
который @ArPi не предоставил…
Надо попробовать тронуть обновление этих пакетов командой:
emerge -1 portage gentoolkit layman
И посмотреть логи…
На днях обновлял систему Calculate 3х-летней давности.
Оставлю здесь инструкцию: Как обновлять старые Gentoo и Calculate
(может быть @ArPi пригодится)
Основная проблема для таких систем — очень старый portage и python (у меня были portage-2.3.0 и python-3.4.4). Поэтому первым делом надо получить на системе рабочий portage актуальной версии. Этого можно достигнуть установкой новой версии portage и python в отдельное виртуальное python-окружение без пакетного менеджера.
Предварительно надо синхронизировать дерево портежей старыми инструментами.
Итак:
Устанавливаем python 3.6.9:
$ mkdir ~/tmp && cd ~/tmp
$ tar -xf /usr/portage/distfiles/Python-3.6.9.tar.xz
$ cd Python-3.6.9
$ ./configure --prefix=${HOME}/python-3.6.9
$ make -j $(nproc) all && sudo make install
$ ~/python-3.6.9/bin/python3 --version
Python 3.6.9
Создаем виртуальное python-окружение и устанавливаем туда portage-2.3.76
Обновляем систему
Предварительное обновление желательно (но не обязательно) запускать на пустом @world, поскольку некоторые пакеты, собранные из исходников могут потребовать отсутствующие пока build-зависимости.
сохраняем @world
$ sudo mv /var/lib/portage/world /root/backup/
$ sudo touch /var/lib/portage/world
$ sudo VE=${VIRTUAL_ENV} -i
входим в виртуальное окружение с новым portage и обновляем всю систему целиком
$# source ${VE}/bin/activate
$# emerge -a --emptytree --autounmask-keep-masks y @world
$# eselect python update
покидаем виртуальное окружение
$# exit
$ exit
После успешного обновления восстанавливаем @world и обновляемся обычным порядком командами:
$ sudo emerge -auDN @world
$ sudo emerge -a --depclean
После обновления чистим ненужный мусор в домашнем каталоге.
Все это красиво и познавательно, но по времени и по количеству манипуляций будет не меньше чем если применить стандартный виндузятниковый способ - переустановка ОС - при условии, что хомяковый раздел стоит отдельно.
Надо было сразу автору топика предложить этот способ и не мучить его т.к. есть ночные наисвежайшие сборки CL.