[ГТО] Проблемы при просроченном обновлении

Здравствуйте!
Не доходили руки почти год до обновлений, и вот созрел. Делаю по этой инструкции:
========
0. emerge --sync; [Настройка /etc/portage/make.conf и прочих параметров портажа] ;emerge -1 --nodeps portage
1. emerge -1 --nodeps linux-headers glibc
2. emerge -1 --nodeps binutils
3. eselect binutils list
4. eselect binutils set [LastVersion]
5. далее обновить GCC по инструкции https://wiki.gentoo.org/wiki/Upgrading_GCC
6. emerge -1 --nodeps glibc binutils gcc и обновить ядро
7. emerge -1 --nodeps perl perl-cleaner
8. perl-cleaner --reallyall
9. emerge -1 python
10. python-updater
11. emerge -uDN --with-bdeps @system
12. emerge -uDN --with-bdeps @world
13. emerge --depclean [-pv]
Каждый шаг надо повторять до тех пор, пока он закончится без ошибок.
Начиная с 7 шага, а то и раньше, в зависимости от вашей конфигурации и отсталости, возможно придется реагировать
интерактивно на разные блокировки и несовместимости флагов.
=====
Застрял на 10-м пункте. Python пришлось обновить раньше (для glibc потребовалось). На настоящий момент:
Код:
eselect python list
Available Python interpreters:
[1] python2.7
[2] python3.3
[3] python3.4 *

python3.3 не лишний ли теперь?

В /usr/portage/profiles/base/make.defaults
Код:
PYTHON_TARGETS="python2_7 python3_4"
PYTHON_SINGLE_TARGET="python2_7"

При запуске

python-updater
* Starting Python Updater....
* Main active version of Python: 3.4.
* Active version of Python 2: 2.7.
* Active version of Python 3: 3.4.
* Globally supported Python ABIs in installed repositories:.
* gentoo: 2.4 2.5 2.6 2.7 3.1 3.2 3.3 2.5-jython 2.7-jython 2.7-pypy-1.7 2.7-pypy-1.8 2.7-pypy-1.9 2.7-pypy-2.0.
* Adding to list: media-gfx/uniconvertor:0
* Adding to list: sys-libs/libcap-ng:0
* emerge -Dv1 --keep-going media-gfx/uniconvertor:0 sys-libs/libcap-ng:0

These are the packages that would be merged, in order:

Calculating dependencies ..... ... ..... .... ....... ....... ... ... done!
[ebuild U ] sys-libs/ncurses-5.9-r5:0/5::gentoo [5.9-r3:0/0::gentoo] USE="cxx unicode -ada -debug -doc -gpm -minimal -profile -static-libs -tinfo -trace
" 0 KiB
[ebuild N ] sys-apps/install-xattr-0.5::gentoo 16 KiB
[ebuild NS ] sys-libs/ncurses-5.9-r99:5::gentoo [5.9-r3:0::gentoo] USE="cxx unicode -ada -gpm -static-libs -tinfo" 0 KiB
[ebuild U ] dev-python/setuptools-12.0.1::gentoo [7.0::gentoo] USE="{-test}" PYTHON_TARGETS="python2_7 python3_4* (-pypy) (-pypy3) -python3_3*" 613 KiB
[ebuild N ] dev-python/pyxattr-0.5.3::gentoo USE="-doc {-test}" PYTHON_TARGETS="python2_7 python3_4 (-pypy) -python3_3" 26 KiB
[ebuild N ] dev-python/pillow-2.8.1::gentoo USE="jpeg jpeg2k lcms tiff truetype zlib -doc -examples {-test} -tk -webp" PYTHON_TARGETS="python2_7 python
3_4 (-pypy) -python3_3" 9 059 KiB
[ebuild N ] virtual/python-imaging-2::gentoo USE="jpeg -tk" PYTHON_TARGETS="python2_7 python3_4 (-pypy) -python3_3" 0 KiB
[ebuild U ] sys-libs/libcap-ng-0.7.7::gentoo [0.7.3::gentoo] USE="-python -static-libs" PYTHON_TARGETS="python2_7%* python3_4%* -python3_3%" 411 KiB
[ebuild U ] media-gfx/uniconvertor-2.0_pre379-r1::gentoo [1.1.5::gentoo] PYTHON_TARGETS="python2_7%*" 1 802 KiB

Total: 9 packages (4 upgrades, 4 new, 1 in new slot), Size of downloads: 11 924 KiB

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

dev-python/setuptools:0

(dev-python/setuptools-12.0.1:0/0::gentoo, ebuild scheduled for merge) pulled in by
dev-python/setuptools[python_targets_python2_7(-)?,python_targets_python3_3(-)?,python_targets_python3_4(-)?,python_targets_pypy(-)?,-python_single_target_python2_7(-),-python_single_target_python3_3(-),-python_single_target_python3_4(-),-python_single_target_pypy(-)] required by (dev-python/pillow-2.8.1:0/0::gentoo, ebuild scheduled for merge)
dev-python/setuptools[python_targets_python2_7(-)?,python_targets_python3_3(-)?,python_targets_python3_4(-)?,python_targets_pypy(-)?,-python_single_target_python2_7(-),-python_single_target_python3_3(-),-python_single_target_python3_4(-),-python_single_target_pypy(-)] required by (dev-python/pyxattr-0.5.3:0/0::gentoo, ebuild scheduled for merge)

(dev-python/setuptools-7.0:0/0::gentoo, installed) pulled in by
dev-python/setuptools[python_targets_python2_7(-)?,python_targets_python3_3(-)?,python_targets_python3_4(-)?,-python_single_target_python2_7(-),-python_single_target_python3_3(-),-python_single_target_python3_4(-)] required by (dev-python/numpy-1.9.0-r1:0/0::gentoo, installed)

It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously. If such a conflict exists in
the dependencies of two different packages, then those packages can
not be installed simultaneously. You may want to try a larger value of
the --backtrack option, such as --backtrack=30, in order to see if
that will solve this conflict automatically.

--backtrack=30 не помогло, а я в силу своего опыта могу разглядеть только, что numpy-1.9.0 требует setuptools-7.0, который не может сосуществовать с setuptools-12.0.1. Но удалить numpy-1.9.0 нежелательно, он нужен для других пакетов. И как быть?

emerge -C setuptools и пробуй

emerge -C setuptools и пробуй снова

Нейтральность - высшее достижение сознания!

Если цитируешь, то не плохо

Если цитируешь, то не плохо бы и ссылку дать! или хотя бы спасибо сказать... ;)

А по делу: если не поможет совет выше, то

emerge -1 --nodeps dev-python/setuptools

а потом

emerge -1 --nodeps dev-python/numpy

Если python3.3 не нужен, можешь его тут же снести и продолжить с п.10.

Ну так я ж на авторство не

Ну так я ж на авторство не претендую, а автору конечно спасибо :-) А как python3.3 удалить?
emerge -C python3.3 - пакет не найден.
eselect python help - про удаление ничего нет.

После "emerge -C setuptools" поехали дальше без ошибок.

emerge -C python3.3.5-r1
работает, но нужен он оказывается другим, требует @preserve-rebuild, делаю.

Объясните пож-ста, непонятно выражается
emerge @preserve-rebuild
there are no ebuilds to satisfy "media-libs/lcms:0"
(dependency required by "@preserve-rebuild" [argument])

А python3.3 удалился-таки непонятно как и когда.
eselect python list
2.7
3.4*

emerge -uDN --with-bdeps @system
error: argument --with-bdeps: invalid choice: '@system' (choose from 'y', 'n')

Вроде не так должно реагировать?

globus написал(а): emerge

globus написал(а):
emerge -uDN --with-bdeps @system
error: argument --with-bdeps: invalid choice: '@system' (choose from 'y', 'n')

Вроде не так должно реагировать?

--with-bdeps=y

Ага, спасибо, опять требует

Ага, спасибо, опять требует emerge @preserve-rebuild, и ояпть с тем же результатом:
there are no ebuilds to satisfy "media-libs/lcms:0"
(dependency required by "@preserve-rebuild" [argument])

А этому что надо?

Удали. Если нужен - встанет

Удали. Если нужен - встанет по зависимостям.

Вроде всё поехало пока,

Вроде всё поехало пока, спасибо. А вообще, я вижу, что почти год между обновлениями - это многовато, разгребать замучаешься. И изменений вроде и не так много. Учитывая темпы развития gentoo, и личные соображения, которые я попросил бы высказать, как часто вы обновляете стабильную систему?

Стабильную - раз в полгода.

Стабильную - раз в полгода. Продакшн - планово раз в полтора года фактически пересобираю, в остальное время секьюрити фиксы и ядро.

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Надо напоминалку прикрутить,

Надо напоминалку прикрутить, про полгода :-)

slepnoga написал(а): Продакшн

slepnoga написал(а):
Продакшн - планово раз в полтора года фактически пересобираю

Гентуреальность.

A хренли напрягатся, если эти

A хренли напрягатся, если эти системы ни один эксплойт не берет. я и так, и сяк ;) - а фигу.
Если серьезно - расскажите мне, как вы будете обновлять ноды виртуализации.

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

slepnoga написал(а): A хренли

slepnoga написал(а):
A хренли напрягатся, если эти системы ни один эксплойт не берет. я и так, и сяк ;) - а фигу.
Если серьезно - расскажите мне, как вы будете обновлять ноды виртуализации.

Обновлять ноды вируализации? Да которые на генту? Да вы таки это серьезно?

Таки да. А пгочему вы

Таки да. А пгочему вы спг'рашиваете ?

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Диагноз причины выясняю.

Диагноз причины выясняю.

A какая виртуализация?

slepnoga написал(а):
...как вы будете обновлять ноды виртуализации?

A какая виртуализация?

kvm, конешна

kvm, конешна

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

КВМ'ов много!.. :) т.е.

КВМ'ов много!.. :) т.е. надстроек над КВМ. Которая из них?

там - virsh+libvirt :-Д И

там - virsh+libvirt :-Д
И "хранилка" там локальная и сеть через бридж, и админ гентушнег ....

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Я также примерно.

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

На всех серверах - ежедневно

У нас вся (кроме офиса) инфраструктура компании построена на Генту. Для ускорения и упрощения обновлений на каждую группу серверов (с одинаковыми конфигурациями) есть свой build-сервер, где подготавливаются бинарные пакеты. На всех серверах - ежедневно (т.е. еженощно) обновление портажа и glsa-check с результатом в Zabbix. Везде используются стабильные системы, но при необходимости по группам серверов делаются индивидуальные разрешения нестабильных версий, но только по-пакетно. Также везде, где только можно, используется статическая компиляция, поэтому обновление отдельных компонент/библиотек практически не сказывается на общем функционировании системы.

На боевых - решение об обновлении принимается индивидуально по группам серверов в зависимости от степени риска (security) и необходимости правок ошибок (update) и/или новых возможностей (upgrade). Поскольку инфраструктура распределенная, то обновление делается поочередно, но никогда всей группой, чтобы сохранить работоспособность системы в целом, если что...

На тестовых - решение об обновлении принимается практически аналогично боевым (также нужен change request, поскольку они как-бы являются "боевыми" для тестеров и девов), а также с учетом заблаговременной проверки собственных новых версий (release upgrade).

На девелоперских - обновления делаются значительно реже (поскольку они закрыты для внешнего доступа), а именно - по мере необходимости, учитывая различные критерии и/или пожелания пользователей (девов). Также там обычно зоопарк версий (т.е. в своих слотах сидят устаревшие версии gcc, питонов и пр.).

На десктопах - на усмотрение хозяина, но регулярно проводится security audit с отчетом службе информационной безопасности. У меня портаж обновляется каждую ночь, утром просматриваю изменения, а там по обстоятельствам: как правило мелкие обновления делаю сразу же, параллельно с работой, большие (хром, офис и т.п.) оставляю на ночь или выходные. СерЪезные (ядро, glibc) - по обстоятельствам, но обычно задержка незначительная.

На домашнем зоопарке (десктопы, ноуты) - по обстоятельствам, когда есть время и желание. Мелкие обновления практически еженедельно, что-нибудь по-серЪезнее пореже, но не реже, чем раз в полгода.

рабочую - по рабочим

рабочую - по рабочим дням.

домашние ~ раз в неделю.

сервера - раза 4 в год.

"считалки" ~ раз в год, когда простой в счёте вырисовывается.

З.Ы. год нормально. как-то обновлял комп за 6 лет (пришлось в несколько приёмов обновлять portage с частичным обновлением system. потратил дня 3 времени на подбор снапшотов поиск старый исходников и обновление).

/var/lib/portage/world

Попробуйте почистить /var/lib/portage/world от ненужных ЛИЧНО ВАМ пакетов.

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Плохой совет! Если уж чистить

Плохой совет!
Если уж чистить - то только через emerge.
Если нужен список установленного софта, то лучше его получить так: eix -I#

0. eix-sync (emerge --sync &&

0. eix-sync (emerge --sync && eix-update); [Настройка /etc/portage/make.conf и прочих
параметров портажа] ; emerge -1 --nodeps portage
1. emerge -1 --nodeps linux-headers glibc
2. emerge -1 --nodeps binutils
3. eselect binutils list
4. eselect binutils set [LastVersion]
5. далее обновить GCC по инструкции https://wiki.gentoo.org/wiki/Upgrading_GCC
6. emerge -1 --nodeps glibc binutils gcc и обновить ядро
7. emerge -1 --nodeps perl perl-cleaner
8. perl-cleaner --reallyall
9. emerge -1 python
10. python-updater
11. emerge -aDNuv --with-bdeps=y --keep-going=y @system
12. emerge -aDNuv --with-bdeps=y --keep-going=y @world
13. emerge --depclean -av
14. revdep-rebuild -i -- --keep-going=y
15. lsof -n | grep deleted

glsa-check -l | grep '\[N\]'
Каждый шаг надо повторять до тех пор, пока он закончится без ошибок.Начиная с 7 шага, а то и раньше, в зависимости от вашей конфигурации и отсталости, возможно придется реагировать интерактивно на разные блокировки и несовместимости флагов.
dispatch-conf
eclean-dist -p
Позволил себе наглость слегка, в меру сил, дополнить инструкцию, из разных источников :-)

Подскажите пож-ста. Недавно пришли новые linux-headers, обновился без перекомпиляции всего. А на днях glibc свежие пожаловали, честно всё исполнил по 6 шаг включительно, кроме обновления ядра. По моему разумению, ядро можно не трогать (т.к. исходников свежих нет, glibc ни при чём вроде как), а дальше всё по инструкции, только к emerge добавить ключ -u, где его нет?

Прошёл до конца по этой инструкции, парочка пакетов всего пересобралась из system & world. Все же должны пересобираться, с новыми glibc? Что не так делаю?

Да уж... поколение

Да уж... поколение next...
Ваше главное "не так": вы пытаетесь понять, что надо делать, вместо того, чтобы разобраться почему надо! Т.е. типичное поведение script-kiddie...

А по сути - все не так!!! Далее для примера приведу несколько "что" делать, оставляя в качестве домашнего задания разобраться и понять "почему" так:

1. Обновление linux-headers без обновления glibc бессмысленно и вредно.
2. linux-headers желательно иметь той же версии, что и ядро.
3. Ядро и системные библиотеки желательно компилировать одним и тем же билдом gcc.
4. Kонкретно последнее обновление стабильной версии glibc с sys-libs/glibc-2.21-r1 на sys-libs/glibc-2.21-r2 не требует пересборки пакетов с динамической линковкой, но обязательно нужна перезагрузка системы.
5. Логика опций -1 и -u aбсолютно различна, не взаимозаменяема и не взаимодополняема (глубже изучайте emerge.
6. Поэтому иногда и нужно принудительно использовать -1 или даже -e, если по смыслу надо пересобрать, а в ebuild'е такой зависимости не предусмотрено, т.е. это не общий случай.

Этот список, разумеется, далеко не полон, поскольку сложно предусмотреть все возможные вариации. Просто надо понимать что и как происходит в системе. Это Генту! В бинарных дистрибутивах эту работу за вас делают мейнтейнеры пакетов, а здесь ручная сборка и слишком много степеней свободы, чтобы алгоритмизировать даже процесс принятия решения.

Я скорее поколение pre.

Я скорее поколение pre. Спасибо за советы, но, хоть это и несвязано, делаю вывод, что у Вас скучная жизнь. Ведь не может же человек быть специалистом во многих областях, и например, суньтесь Вы на форум лыжников/велосипедистов/мотористов и т.д., а Вам там скажут - идите свои компы программируйте. Можно и так понимать Ваш ответ. Да, я не великий специалист, каюсь. Не делай другому того, чего бы не хотел, делали тебе :-)
А по существу:
1. В неудачное время я запустил eix-sync, заголовки уже, а библиотеки ещё нет. Надо было ждать?
2. http://www.gentoo.ru/node/28508, и 3.16 было до недавних пор, до 4. с чем-то. Я тут что могу?
3. Компилю ядро.
5. Поспешил я слегка.

То есть, когда видишь в обновлениях что-то из linux-headers glibc binutils gcc, то имеет смысл подождать, пока ситуация не прояснится.

Где вы увидели, что я вас

Где вы увидели, что я вас куда-то посылаю?!.. :)
Я посылал только учиться! И учиться по теме, а не лыжному мастерству!

И таки опять неверные выводы по теме: это Генту (!), и, зная матчасть (портаж и Линукс изнутри), можно (нужно!) не ждать непонятно какого прояснения непонятно какой ситуации, а активно настроить конфигурацию всех нужных пакетов под свою специфику. Например, у себя на десктопе я держу самое свежее Гентушное ядро и соответствующие заголовки, но системные библиотеки и компилятор - только последние стабильные, и все пакеты с динамическими библиотеками. На работе для девов - фиксированная версия ядра с соответствующими заголовками и отдельная фиксированная версия компилятора (при том, что системный компилятор и системные библиотеки - последние стабильные), а также у них статическая сборка всего, что только можно. На рабочих фронт-енд системах конфигурация иная, в бек-енд системах конфигурация портажа также специфическая и т.д. и т.п. - везде портаж затачивается под задачи.

P.S. Вы себе льстите насчёт принадлежности к поколению! Дело ведь не в возрасте... :) Специалисты старой школы сначала читали доступные доки и разбирались с неописанными вещами, а потом только делали, уже понимая, что делают, а при возникновении проблем докапывались до сути... Сейчас же в лучшем случае берут HowTo, а то и просто какую-нибудь статейку в Инете и/или популярном издании a-la Хакер и иже с ним, и ваяют... А поскольку 100% повторяемость маловероятна в силу отличия железа и пр., то для решения возникающих проблем(ы) они не изучают основы и процессы, а судорожно хватаются за поисковик (в лучшем случае) или просто кричат "Помогите!" на форумах, наивно (или просто по-лени) полагая, что их проблема уникальна и все должны им помогать... Хотя, скорее всего это проблема уже была решена и не раз, но возможно, что под другим соусом, а потому прямой поиск не дает однозначного ответа... Не зря же говорят, что правильный (с пониманием предмета) вопрос - половина ответа!

P.P.S. И таки-да, я не специалист в лыжах, да и не люблю я их (так же как и велосипеды, кстати! может потому и не специалист? :) ведь в яхтах же я вроде неплохо разбираюсь!), но вы даже не представляете, в каких только сферах ни приходится порой разбираться с проблемами!!! И причём не только в ИТ области... но это, как говорится, "уже совсем другая история...", а объединяет только их только одно - старая школа: "учиться, учиться и учиться!.." и все можно решить. Но только тогда, когда вы сможете говорить со специалистами на равных!

Да я и не на равных могу, не

Да я и не на равных могу, не гордый. Всё равно у меня никогда не будет большого парка разнообразных машин, так, для себя малость. В общем, большим спецом мне не стать, так что можно иногда позволить себе глупые вопросы :-)

А по существу:
>> 1. Обновление linux-headers без обновления glibc бессмысленно и вредно.

Это значит отцы-основатели неприятность сделали? Надо было обновлять всё кроме linux-headers? По-простецки, не перепахивая пол-системы? glibc появились где-то через неделю после заголовков.

Еще раз - читайте!!!

globus написал(а):
Это значит отцы-основатели неприятность сделали?

Нет

globus написал(а):
Надо было обновлять всё кроме linux-headers? По-простецки, не перепахивая пол-системы?

Да

globus написал(а):
glibc появились где-то через неделю после заголовков.

Это было экстренное обновление из-за найденной огромной дыры в безопасности библиотеки.

Еще раз - читайте!!!
Начните тут и тут, вот тут много... надеюсь кое-что прояснится... :) хотя бы про заголовки. Потом берите другую тему и т.д....

.

SysA написал(а):
В бинарных дистрибутивах эту работу за вас делают мейнтейнеры пакетов…

Не стоит идеализировать maintainer'ов.
Даже в Gentoo.
А ведь есть ещё фактор квалификации upstream-разработчиков. Знание которыми системных вопросов часто оставляет желать много лучшего.

:wq
--
Live free or die

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".