LINUX.ORG.RU

Gentoo, Error: circular dependencies

 


0

1
emerge =dev-lang/python-3.6.10-r2                                                      
                                                                                                                          
These are the packages that would be merged, in order:                                                       
                                                                                                                          Calculating dependencies... done!                                                                  
                                                                                                                          
                                                                                                             
[nomerge       ] virtual/package-manager-1::gentoo                                                                        
[nomerge       ]  sys-apps/portage-2.3.79::gentoo  USE="(ipc) native-extensions rsync-verify xattr -build -doc (-epydoc) -
gentoo-dev (-selinux)" PYTHON_TARGETS="python2_7 python3_6 (-python3_7) (-python3_8)"                                     
[nomerge       ]   dev-python/pyblake2-1.1.2::gentoo  PYTHON_TARGETS="python2_7 python3_6 (-pypy3) (-python3_7)" 
[ebuild     U  ]    dev-lang/python-3.6.10-r2:3.6/3.6m::gentoo [3.6.9:3.6/3.6m::gentoo] USE="gdbm ipv6 ncurses readline ss
l (threads) xml -bluetooth -build -examples (-hardened) -libressl -sqlite -test -tk -wininst" 16 824 KiB
[ebuild  N     ]     virtual/libcrypt-1:0/1::gentoo  USE="static-libs" 0 KiB                                              
[ebuild     U  ]      sys-libs/glibc-2.30-r8:2.2::gentoo [2.29-r7:2.2::gentoo] USE="(crypt%*) multiarch ssp (static-libs%*
) (-audit) -caps (-cet) -compile-locales -custom-cflags% -doc -gd -headers-only (-multilib) -nscd -profile (-selinux) -sui
d -systemtap -test (-vanilla)" 16 260 KiB                                                                                 
                                                                                                                          
Total: 3 packages (2 upgrades, 1 new), Size of downloads: 33 084 KiB                                                      
                                                                                                             
 * Error: circular dependencies:                                                                   
                                                                                                                          
(virtual/libcrypt-1:0/1::gentoo, ebuild scheduled for merge) depends on                                                   
 (sys-libs/glibc-2.30-r8:2.2/2.2::gentoo, ebuild scheduled for merge) (runtime)                                           
  (dev-lang/python-3.6.10-r2:3.6/3.6m::gentoo, ebuild scheduled for merge) (buildtime)                                    
   (virtual/libcrypt-1:0/1::gentoo, ebuild scheduled for merge) (buildtime_slot_op)                
                                                                                                   
 * Note that circular dependencies can often be avoided by temporarily                                                    
 * disabling USE flags that trigger optional dependencies. 

Как это решается?

★★★★★

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

Правда, ещё был слушок, что с ПО у Gentoo что-то не то в последнее время и новые установки (и обновления, судя по вашему случаю) пока что невозможны. Уж не помню, кто об этом отчитывался, то ли grem, то ли ещё кто.

Korchevatel ★★★★★
()

по идее вначале sys-apps/portage поставить.

emerge -v1 sys-apps/portage 

А уже дальше уже glibc. И только после все остальные.

Atlant ★★★★★
()
Последнее исправление: Atlant (всего исправлений: 1)

Попробуй сперва просто emerge -1 libcrypt выполнить.

beresk_let ★★★★★
()

[ebuild U ] sys-libs/glibc-2.30-r8:2.2::gentoo

С чего это вдруг установка конретного пакета (python) вызвала обновление всех зависимых, из-за чего вылезла циклическая зависимость? Ты что-то недоговариваешь или этот выхлоп не от простого emerge, а emerge -uDN

anonymous
()
Ответ на: комментарий от burato

Так ты пиши что ты делаешь, а не выдумывай. Иначе тебе не помочь.

Если это был выхлоп обновления мира emerge -uDN @world, то можно помочь.

Например так, исключив обновление glibc

# emerge -uDN @world --exclude glibc

А glibc обновишь после следующей командой (вроде обновление glibc ничего не ломает в системе)

# emerge -1 glibc
anonymous
()

Это же очень простой случай. У тебя есть python-3.6.10, который требует virtual/libcrypt. libcrypt в свою очередь требует glibc c +crypt. glibc требует python. Вот она твоя циркулярка. Либо ставь по отдельности, либо сразу все 3 пакета. Т.е. либо emerge -1O virtual/libcrypt glibc, затем все остальное, либо emerge -1O virtual/libcrypt glibc python:3.6

И еще один пункт, на днях python по дефолту стал 3.7. Если хочешь, можешь сразу обновить версию python.

arrecck ★★★
()
Ответ на: комментарий от arrecck
* Messages for package sys-libs/glibc-2.30-r8:

 * No Python implementation found for the build. This is usually
 * a bug in the ebuild. Please report it to bugs.gentoo.org
 * along with the build log.
 * ERROR: sys-libs/glibc-2.30-r8::gentoo failed (setup phase):
 *   No supported Python implementation installed.
 * 
 * Call stack:
 *              ebuild.sh, line 125:  Called pkg_setup
 *   glibc-2.30-r8.ebuild, line 731:  Called python-any-r1_pkg_setup
 *   python-any-r1.eclass, line 361:  Called python_setup
 *   python-any-r1.eclass, line 349:  Called die
 * The specific snippet of code:
 *      die "No supported Python implementation installed."
 * 
 * If you need support, post the output of `emerge --info '=sys-libs/glibc-2.30-r8::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-libs/glibc-2.30-r8::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/sys-libs/glibc-2.30-r8/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-libs/glibc-2.30-r8/temp/die.env'.
 * Working directory: '/var/tmp/portage/sys-libs/glibc-2.30-r8/homedir'
 * S: '/var/tmp/portage/sys-libs/glibc-2.30-r8/work/glibc-2.30'

Что то glibc не захотел...

burato ★★★★★
() автор топика
Ответ на: комментарий от burato

Не надо тебе обновлять glibc. Обнови мир (или то что тебе нужно), кроме glibc --exclude glibc. Вся эта хрень из-за нового glibc. Когда все обновиться (кроме glibc), обвновляй glibc.

И вообще, изменение версии glibc - это очень опасное действие. Обновляй его в последнюю очередь. А после обновления, желательно пересобрать мир.

anonymous
()

Флаг crypt какой-то новый, может если его отключить, то позволит собрать новый glibc?

grem ★★★★★
()
Ответ на: комментарий от deity

где логика

логика в том, что есть (рабочие) состояния системы. И эти состояния можно достичь только последовательно:

(до обновления) -> (обновлено всё, кроме glibc) -> (обновлен glibc) -> (обновлено всё с новым glibc)

anonymous
()
Ответ на: комментарий от deity

Логик, ты хоть раз собирал полностью gentoo stage3 -> stage1 -> stage2 -> stage3 -> stage4(текущая рабочая система)? Задача со звездочкой - останови LFS.

anonymous
()
Ответ на: комментарий от anonymous

тебе ссылку на вику дать, или сам найдёшь?

deity ★★★★
()
Ответ на: комментарий от grem

Флаг crypt какой-то новый

$ equery g virtual/libcrypt
 * Searching for libcrypt in virtual ...

 * dependency graph for virtual/libcrypt-1
 `--  virtual/libcrypt-1  amd64 
   `--  sys-libs/glibc-2.30-r8  (>=sys-libs/glibc-2.30-r2) amd64  [crypt(-) static-libs(+)?]
   `--  sys-libs/glibc-2.29-r8  (<sys-libs/glibc-2.30-r2) amd64 

если тупо обновить, то пойдет по первой строке и потянет новый glibc с флагом crypt

если исключить обновление glibc, то пойдет по второй строке и оставит старый glibc где нет флага crypt.

anonymous
()
Ответ на: комментарий от anonymous

нет, рекомендуют впервую очередь: emerge -av1 portage gcc glibc linux-headers binutils, с переключением на новые конечно если что то обновилось, потом сет @system потом @world, позавчера обновлял, всё внорме

spawn_sp ★★★★
()
Ответ на: комментарий от spawn_sp

нет, рекомендуют впервую очередь: emerge -av1 portage gcc glibc linux-headers binutils

Это общая рекомендация, и не так, как ты расписал: спрева отдельно портаж, после glibc binutils gcc, потом @system.

Но в данном случае там циклическая зависимость из-за нового, да еще принудительного установленного флага crypt для glibc. За что еще долго будут пинать мейнтейнеров, пока все не перейдут на новую версию glibc.

anonymous
()

всегда так обновляю после портажей и прочих: emerge -av1 --update --newuse --deep --with-bdeps=y @world, попробуй что покажет, с зависимостями сборки --with-bdeps=y

spawn_sp ★★★★
()

хотя пишет у тебя в конце: * Обратите внимание, что циклические зависимости часто можно избежать, временно * отключение USE-флагов, которые запускают необязательные зависимости.

spawn_sp ★★★★
()
Ответ на: комментарий от spawn_sp

Это общая рекомендация

я в общих чертах написал

обобщил обобщение

Результат будет соответствующий. Даже как у некоторых может возникнуть вопрос «где логика?». Особенно на последовательной пересборке system и следом world, когда полсистемы пересобирается повторно, не говоря у о том сколько раз пересобирается portage, glibc, gcc. :)

anonymous
()
Ответ на: комментарий от anonymous

с какого перепугу он будет повторно обновляться, это же не --emptytree(пересборка всего и вся), обновятся только те которые хотят обновится

spawn_sp ★★★★
()
Последнее исправление: spawn_sp (всего исправлений: 1)
Ответ на: комментарий от spawn_sp

Ты знаешь что делает emerge --emptytree? Что происходит при рекомендуемой последовательности emerge -e @system; emerge -e @world

Или ты обновляешь так emerge -uDN @system; emerge -uDN @world. Тогда черед мне идти в ряды спрашивающих «где логика?». Точнее так: а не переборщил ли ты обощением общих рекомендаций, что полностью исказил общие рекомендации?

anonymous
()
Ответ на: комментарий от anonymous

пересборка же, я её не рекомендовал, говорили что пакет будучи обновлённым в system почему будет обновляться в world, для меня вопрос, если только каждую секунду обновляются они

spawn_sp ★★★★
()
Ответ на: комментарий от burato
  • No Python implementation found for the build. This is usually
  • a bug in the ebuild. Please report it to bugs.gentoo.org
  • along with the build log.

Это походу заморочки с стабильной веткой. Я помню, что python должен точно совпадать с версией в дереве,а не с PYTHON_COMPAT. Т.е. 3.6.10(зачем прописана версия,а не слот в eclass’e, не знаю). Cоберется ли python без libcrypt,тоже вопрос. Попробуй PYTHON_COMPAT_OVERRIDE=«python3_6» emerge -1O glibc, должно помочь.

arrecck ★★★
()
Ответ на: комментарий от arrecck

Спасибо, это решило круговую цепочку.

burato ★★★★★
() автор топика
Ответ на: комментарий от grem

3.7 пока не стал дефолтным, в новости было, что переключат 6 мая на него профили

Я новость по диагонали читал, поправил у себя в targets и все.

arrecck ★★★
()

Прочитал тему. Понял не всё.

Остался один вопрос - почему у меня при плюс-минус регулярном emerge -auvDN world не возникает таких проблем? Последняя циркулярка была мною увидена годы назад.

yura_ts ★★
()
Последнее исправление: yura_ts (всего исправлений: 1)
Ответ на: комментарий от yura_ts

тоже без проблем, может немного дольше не обновлял

spawn_sp ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.