LINUX.ORG.RU

хочу научиться разруливать ошибки emerge

 ,


1

1

здравствуйте, очередной раз словил ошибку от emerge:

Calculating dependencies... done!
[ebuild     U  ] app-arch/gzip-1.8 [1.6] USE="pic*" 
[ebuild  N     ] www-plugins/chrome-binary-plugins-55.0.2883.75  USE="widevine" 
[ebuild     U  ] media-libs/libvpx-1.6.0-r1 [1.6.0] USE="highbitdepth%* svc*" 
[ebuild  N     ] dev-libs/re2-0.2016.05.01  USE="icu" ABI_X86="(64) -32 (-x32)" 
[ebuild     U  ] media-libs/harfbuzz-1.3.4 [1.2.7]
[ebuild     U  ] media-video/ffmpeg-3.2.2 [2.8.6] USE="-chromaprint% -ebur128% -gcrypt% -gmp% -kvazaar% -libilbc% (-mmal) -nvenc% -openh264% -rubberband% -zimg%" CPU_FLAGS_X86="-aes%" 
[ebuild  N     ] www-client/chromium-56.0.2924.21  USE="cups custom-cflags gnome gnome-keyring hangouts kerberos (pic) proprietary-codecs pulseaudio suid system-ffmpeg tcmalloc widevine (-gtk3) (-neon) (-selinux) {-test}" L10N="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv sw ta te th tr uk vi zh-CN zh-TW" 

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

media-video/ffmpeg:0

  (media-video/ffmpeg-3.2.2:0/55.57.57::gentoo, ebuild scheduled for merge) pulled in by
    >=media-video/ffmpeg-3:= required by (www-client/chromium-56.0.2924.21:0/0::gentoo, ebuild scheduled for merge)
    ^^                   ^                                                                                                                                                                   

  (media-video/ffmpeg-2.8.6:0/54.56.56::gentoo, installed) pulled in by
    =media-video/ffmpeg-2*:0/54.56.56= required by (dev-qt/qtwebengine-5.6.1:5/5.6::gentoo, installed)
    ^                   ^^^^^^^^^^^^^^                                                                                                                                          
    >=media-video/ffmpeg-2.2:0/54.56.56= required by (media-video/vlc-2.2.4:0/5-8::gentoo, installed)
                            ^^^^^^^^^^^^                                                                                                 
    media-video/ffmpeg:0/54.56.56= required by (media-video/vlc-2.2.4:0/5-8::gentoo, installed)
                      ^^^^^^^^^^^^                                                                                                 
    <=media-video/ffmpeg-2.9:0/54.56.56= required by (media-video/vlc-2.2.4:0/5-8::gentoo, installed)
    ^^                   ^^^^^^^^^^^^^^^                                                                                                                                       
    =media-video/ffmpeg-2*:0= required by (dev-qt/qtwebengine-5.6.1:5/5.6::gentoo, installed)
    ^                   ^^^^^                                                                                                                                          
    >=media-video/ffmpeg-2.6:0/54.56.56= required by (media-video/mplayer-1.2.1:0/0::gentoo, installed)
                            ^^^^^^^^^^^^                                                                         
в общем решалось всегда как-то рандомно... но теперь решил разобраться основательно... пишет, что несколько версий пакета засунуты в один слот. ну логично предположить, что установленные пакеты media-video/ffmpeg-2.* есть, но они мешают установиться media-video/ffmpeg-3.*, поэтому маскируем их, и новый должен установиться ничего не зная о старых... маскирую старые - проблема не уходит... вот как решать такие вещи? вроде же все логично расписал

★★

Последнее исправление: cetjs2 (всего исправлений: 2)

Такое часто вылазит при exclude каких-то пакетов при обновлении, притом необязательно зависящих от конфликтующих версий каких-либо автоматически притянувшихся пакетов (как ffmpeg в твоем случае)

    >=media-video/ffmpeg-2.2:0/54.56.56= required by (media-video/vlc-2.2.4:0/5-8::gentoo, installed)
                            ^^^^^^^^^^^^
    media-video/ffmpeg:0/54.56.56= required by (media-video/vlc-2.2.4:0/5-8::gentoo, installed)
                      ^^^^^^^^^^^^
    <=media-video/ffmpeg-2.9:0/54.56.56= required by (media-video/vlc-2.2.4:0/5-8::gentoo, installed)
    ^^                   ^^^^^^^^^^^^^^^
    >=media-video/ffmpeg-2.6:0/54.56.56= required by (media-video/mplayer-1.2.1:0/0::gentoo, installed)
                            ^^^^^^^^^^^^

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

    =media-video/ffmpeg-2*:0/54.56.56= required by (dev-qt/qtwebengine-5.6.1:5/5.6::gentoo, installed)
    ^                   ^^^^^^^^^^^^^^
    =media-video/ffmpeg-2*:0= required by (dev-qt/qtwebengine-5.6.1:5/5.6::gentoo, installed)
    ^                   ^^^^^

Вот это зависит от второй версии ffmpeg, зависимость прописана в ебилде. Но qtwebengine-5.6.2 уже может работать с любой версией ffmpeg, т.к. system-ffmpeg? ( media-video/ffmpeg:0= ), так что достаточно его (qtwebengine) обновить.

Твою проблему можно решить, обновляя все проблемные пакеты «по-одному», т.е. emerge -1 qtwebengine ffmpeg vlc mplayer chromium, т.е. тупо все перечислить в командной строке. Альтернативно можно заюзать опцию --ignore-built-slot-operator-deps=y. Замаскировать третью версию ffmpeg тоже вышло бы, если бы его не требовал хромиум.

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

ну вот, предположим, решил я обновить emerge --ask qtwebengine ну и вылетело вот что:

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

dev-qt/qtgui:5

  (dev-qt/qtgui-5.6.2:5/5.6::gentoo, ebuild scheduled for merge) pulled in by
    ~dev-qt/qtgui-5.6.2[gles2=,gtkstyle=,png=,xcb?] required by (dev-qt/qtwidgets-5.6.2:5/5.6::gentoo, ebuild scheduled for merge)
    ^             ^^^^^                                                                                                                                                                  
    (and 2 more with the same problem)

  (dev-qt/qtgui-5.6.1:5/5.6::gentoo, installed) pulled in by
    ~dev-qt/qtgui-5.6.1[gles2=] required by (dev-qt/qtopengl-5.6.1:5/5.6::gentoo, installed)
    ^             ^^^^^                                                                                                                            
    (and 14 more with the same problem)

dev-qt/qtcore:5

  (dev-qt/qtcore-5.6.2-r1:5/5.6::gentoo, ebuild scheduled for merge) pulled in by
    ~dev-qt/qtcore-5.6.2 required by (dev-qt/qtdbus-5.6.2:5/5.6::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                   
    (and 8 more with the same problem)

  (dev-qt/qtcore-5.6.1:5/5.6::gentoo, installed) pulled in by
    ~dev-qt/qtcore-5.6.1 required by (dev-qt/qtwebchannel-5.6.1:5/5.6::gentoo, installed)
    ^              ^^^^^                                                                                                                        
    (and 29 more with the same problem)

dev-qt/qtdbus:5

  (dev-qt/qtdbus-5.6.2:5/5.6::gentoo, ebuild scheduled for merge) pulled in by
    ~dev-qt/qtdbus-5.6.2 required by (dev-qt/qtgui-5.6.2:5/5.6::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                  

  (dev-qt/qtdbus-5.6.1:5/5.6::gentoo, installed) pulled in by
    ~dev-qt/qtdbus-5.6.1 required by (dev-qt/qtbluetooth-5.6.1:5/5.6::gentoo, installed)
    ^              ^^^^^                                                                                                                       
    (and 1 more with the same problem)

dev-qt/qtwidgets:5

  (dev-qt/qtwidgets-5.6.2:5/5.6::gentoo, ebuild scheduled for merge) pulled in by
    ~dev-qt/qtwidgets-5.6.2[gles2=] required by (dev-qt/qtdeclarative-5.6.2:5/5.6::gentoo, ebuild scheduled for merge)
    ^                 ^^^^^                                                                                                                                                  

  (dev-qt/qtwidgets-5.6.1:5/5.6::gentoo, installed) pulled in by
    ~dev-qt/qtwidgets-5.6.1 required by (dev-qt/qtwebengine-5.6.1:5/5.6::gentoo, installed)
    ^                 ^^^^^                                                                                                                       
    (and 8 more with the same problem)

dev-qt/qtnetwork:5

  (dev-qt/qtnetwork-5.6.2:5/5.6::gentoo, ebuild scheduled for merge) pulled in by
    ~dev-qt/qtnetwork-5.6.2 required by (dev-qt/qtxmlpatterns-5.6.2:5/5.6::gentoo, ebuild scheduled for merge)
    ^                 ^^^^^                                                                                                                                          
    (and 2 more with the same problem)

  (dev-qt/qtnetwork-5.6.1:5/5.6::gentoo, installed) pulled in by
    ~dev-qt/qtnetwork-5.6.1 required by (dev-qt/qtwebkit-5.6.1:5/5.6::gentoo, installed)
    ^                 ^^^^^                                                                                                                    
    (and 8 more with the same problem)

dev-qt/qtwebengine:5

  (dev-qt/qtwebengine-5.6.2:5/5.6::gentoo, ebuild scheduled for merge) pulled in by
    dev-qt/qtwebengine (Argument)

  (dev-qt/qtwebengine-5.6.1:5/5.6::gentoo, installed) pulled in by
    >=dev-qt/qtwebengine-5.6:5[widgets] required by (www-client/qupzilla-2.0.1:0/0::gentoo, installed)
                               ^^^^^^^                                                                                                    

dev-qt/qtdeclarative:5

  (dev-qt/qtdeclarative-5.6.2:5/5.6::gentoo, ebuild scheduled for merge) pulled in by
    ~dev-qt/qtdeclarative-5.6.2 required by (dev-qt/qtwebchannel-5.6.2:5/5.6::gentoo, ebuild scheduled for merge)
    ^                     ^^^^^                                                                                                                                         
    (and 1 more with the same problem)

  (dev-qt/qtdeclarative-5.6.1-r1:5/5.6::gentoo, installed) pulled in by
    ~dev-qt/qtdeclarative-5.6.1 required by (dev-qt/qtgraphicaleffects-5.6.1:5/5.6::gentoo, installed)
    ^                     ^^^^^                                                                                                                              
    (and 4 more with the same problem)

dev-qt/qtxmlpatterns:5

  (dev-qt/qtxmlpatterns-5.6.2:5/5.6::gentoo, ebuild scheduled for merge) pulled in by
    ~dev-qt/qtxmlpatterns-5.6.2 required by (dev-qt/qtdeclarative-5.6.2:5/5.6::gentoo, ebuild scheduled for merge)
    ^                     ^^^^^                                                                                                                                          

  (dev-qt/qtxmlpatterns-5.6.1:5/5.6::gentoo, installed) pulled in by
    ~dev-qt/qtxmlpatterns-5.6.1 required by (dev-qt/qtdeclarative-5.6.1-r1:5/5.6::gentoo, installed)
    ^                     ^^^^^                                                                                                                            

dev-qt/qttest:5

  (dev-qt/qttest-5.6.2:5/5.6::gentoo, ebuild scheduled for merge) pulled in by
    ~dev-qt/qttest-5.6.2 required by (dev-qt/qtdeclarative-5.6.2:5/5.6::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                          

  (dev-qt/qttest-5.6.1:5/5.6::gentoo, installed) pulled in by
    ~dev-qt/qttest-5.6.1 required by (dev-qt/qtdeclarative-5.6.1-r1:5/5.6::gentoo, installed)
    ^              ^^^^^                                                                                                                            

dev-qt/qtwebchannel:5

  (dev-qt/qtwebchannel-5.6.2:5/5.6::gentoo, ebuild scheduled for merge) pulled in by
    ~dev-qt/qtwebchannel-5.6.2[qml] required by (dev-qt/qtwebengine-5.6.2:5/5.6::gentoo, ebuild scheduled for merge)
    ^                    ^^^^^                                                                                                                                             

  (dev-qt/qtwebchannel-5.6.1:5/5.6::gentoo, installed) pulled in by
    ~dev-qt/qtwebchannel-5.6.1[qml] required by (dev-qt/qtwebengine-5.6.1:5/5.6::gentoo, installed)
    ^                    ^^^^^                                                                        

т.е. проблема опять того же рода... вот как быть в данном случае?

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

хм, проблема уходит при таком флаге, но как вы про него узнали? в выхлопе же было media-video/ffmpeg-3*

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

не, ну вот реально, допустим если б понадобилось обновить qtwebengine... вот что железно в таких случаях делать? сверху описал что вылетело

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

обновляй сначала system, а потом world - это раз.
2 - в случае браузеров беспроблемней использовать встроенные ffmpeg и прочие библиотеки.
3 - обновляйся чаще

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

в случае браузеров беспроблемней использовать встроенные ffmpeg и прочие библиотеки

почему помог флаг -system_ffmpeg?

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

ну вы говорите, что лучше использовать встроенные ffmpeg либы... ну у меня и стояло в make.conf флаг system-ffmpeg... когда сделал -system-ffmpeg то что произошло то? как раз должна была подтянуться media-video/ffmpeg-3*, на что и ругался emerge, однако конфликт исчез... почему?)

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

потому, что USE=system-* тянет соответствующие библиотеки, а раз от них отказались, то и конфликта нет

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

не, ну если в ebuild хрома прописан флаг, то лучше его ставить, разве нет? чем может обернуться такой вот отказ от system-ffmpeg?

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

В Chromium свои форки библиотек в базе, в форки бекпортируются исправления дыр и вносятся Chromium-специфичные модификации.
Ещё возможно (я точно не знаю) системные библиотеки будут выполняться за пределами sandbox, почему не используются системные библиотеки можешь почитать здесь.

ну вы говорите, что лучше использовать встроенные ffmpeg либы

В случае с Chromium — нет.
Это идёт против апстрима, нет никакой уверенности что не получишь регрессию.

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

Это идёт против апстрима, нет никакой уверенности что не получишь регрессию.

против какого апстрима? Гугл сам рекомендует собирать Хромого с системными библиотеками?

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

в ебилдах много всяких флагов прописано.

лично для меня ничем, всё собирается и работает.

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

Гугл сам рекомендует собирать Хромого с системными библиотеками?

Сборка с использованием системных библиотек идёт против апстрима, похоже я не совсем понятно выразился.

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

Ну так флаги вида system-библиотека по умолчанию выключены. А ТС судя по всему их повключал только потому что «ну прикольно же»

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

А ТС судя по всему их повключал только потому что «ну прикольно же»

ну походу для какого-то пакета нужно было включить, вот и включил) а какие еще флаги по дефолту отрублены?

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

Ну так флаги вида system-библиотека по умолчанию выключены.

да, ладно, блин

+system-ffmpeg +system-libvpx

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

Зависит от пакета, я в ебилд хромого не посмотрел, сужу по firefox-у(это из браузеров) и пакетам из других категорий(например, games-misc/katawa-shoujo). Политики на это нет, но большая часть виденных мною ебилдов содержит подобные флаги именно в выключенном состоянии.

Потому что в общем случае bundled-библиотеки либо выпиливаются, либо отсутствует флаг на их отключение/включение(потому что bundled-библиотека настолько отличается от апстрима, что её замена на апстримную ломает даже компиляцию к хренам).

Чем руководствовался мэйнтэйнер ебилда chromium - хз. Наверное хочет максимально близко следовать дистрибутивной политике(а значит вероятность факапов, подобных тем, с какими столкнулся ТС - мала).

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