LINUX.ORG.RU

ошибка с boost в emerge

 , ,


1

1

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

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

dev-libs/boost:0

  (dev-libs/boost-1.65.0:0/1.65.0::gentoo, installed) pulled in by
    dev-libs/boost:0/1.65.0= required by (dev-cpp/libcmis-0.5.2_pre20160820-r1:0.5/0.5::gentoo, installed)
                  ^^^^^^^^^^                                                                                                                  
    dev-libs/boost:0/1.65.0=[abi_x86_64(-),threads] required by (net-libs/nghttp2-1.25.0:0/1.14::gentoo, installed)
                  ^^^^^^^^^^                                                                                                                           
    dev-libs/boost:0/1.65.0= required by (app-office/libreoffice-5.4.0.3:0/0::gentoo, installed)
                  ^^^^^^^^^^                                                                                                        
    dev-libs/boost:0/1.65.0= required by (dev-util/mdds-1.2.3:1/1.2::gentoo, installed)
                  ^^^^^^^^^^                                                                                               
    dev-libs/boost:0/1.65.0= required by (dev-libs/liborcus-0.12.1:0/0.12::gentoo, installed)
                  ^^^^^^^^^^                                                                                                     
    dev-libs/boost:0/1.65.0= required by (dev-libs/libixion-0.12.2:0/0.12::gentoo, installed)
                  ^^^^^^^^^^                                                                                                     

  (dev-libs/boost-1.63.0:0/1.63.0::gentoo, ebuild scheduled for merge) pulled in by
    dev-libs/boost:0/1.63.0=[threads] required by (net-libs/libtorrent-rasterbar-1.0.11:0/8::gentoo, installed)
                  ^^^^^^^^^^                                                                                                                       
    dev-libs/boost:0/1.63.0=[python,python_targets_python2_7(-),python_targets_python3_4(-),-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-)] required by (net-libs/libtorrent-rasterbar-1.0.11:0/8::gentoo, installed)
                  ^^^^^^^^^^                                                                                                                                                                                                                                                                                       
    dev-libs/boost:0/1.63.0= required by (dev-db/mysql-connector-c++-1.1.9:0/0::gentoo, installed)
                  ^^^^^^^^^^                                                                                                          

dev-util/boost-build:0

  (dev-util/boost-build-1.63.0:0/0::gentoo, ebuild scheduled for merge) pulled in by
    =dev-util/boost-build-1.63* required by (dev-libs/boost-1.63.0:0/1.63.0::gentoo, ebuild scheduled for merge)
    ^                     ^^^^^                                                                                                                                        

  (dev-util/boost-build-1.65.0:0/0::gentoo, installed) pulled in by
    =dev-util/boost-build-1.65* required by (dev-libs/boost-1.65.0:0/1.65.0::gentoo, installed)
    ^                     ^^^^^                                                                                     ^^^^^                                                                                        
я так понимаю проблему можно решить если libtorrent и mysql-connector перестанут требовать буст-1.63... но как это сделать

У меня:

$ emerge -pv1 --nodeps boost libreoffice mdds libtorrent-rasterbar mysql-connector-c++

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

[ebuild   R    ] dev-libs/boost-1.63.0:0/1.63.0::gentoo  USE="icu nls python threads -context -debug -doc -mpi -static-libs -tools" PYTHON_TARGETS="python2_7 python3_4 -python3_5 -python3_6" 0 KiB
[ebuild   R    ] app-office/libreoffice-5.4.0.3::gentoo  USE="cups dbus gstreamer kde pdfimport (-aqua) -bluetooth -branding -coinmp -collada -debug -eds -firebird -gltf -gnome -googledrive -gtk -gtk3 -java -jemalloc -libressl -mysql -odk -postgres -quickstarter {-test} -vlc" LIBREOFFICE_EXTENSIONS="-nlpsolver -scripting-beanshell -scripting-javascript -wiki-publisher" PYTHON_SINGLE_TARGET="python3_4 -python2_7 -python3_5 -python3_6" PYTHON_TARGETS="python2_7 python3_4 -python3_5 -python3_6" 0 KiB
[ebuild   R    ] dev-util/mdds-1.2.3:1/1.2::gentoo  USE="-doc -valgrind" 0 KiB
[ebuild   R    ] net-libs/libtorrent-rasterbar-1.0.11:0/8::gentoo  USE="dht geoip python ssl -debug -doc -examples -libressl -static-libs {-test}" PYTHON_TARGETS="python2_7 python3_4 -python3_5" 0 KiB
[ebuild  N     ] dev-db/mysql-connector-c++-1.1.9::gentoo  USE="-debug -examples -gcov -static-libs" 497 KiB

То есть конфликта на уровне ebuild'ов нет.

На мой взгляд, если ты в списке установки явно укажешь все пакеты - как boost, так и libreoffice с libtorrent-rasterbar и компанию, - то оно само разрулит. Только не забудь --oneshot приписать.

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

хм, да, так и есть, спасибо

На мой взгляд, если ты в списке установки явно укажешь все пакеты - как boost, так и libreoffice с libtorrent-rasterbar и компанию, - то оно само разрулит.

а можете пояснить логику почему вы это решили? я вот переставлял отдельно libreoffice, однако ошибка, как видите, все равно оставалась

Только не забудь --oneshot приписать.

давно вопрос зрел, все забывал спросить: а если собрать пакет с этим самым --oneshot, то он навсегда из @world удалиться? или достаточно будет сделать emerge, и он снова будет в мире?

xperious ★★
() автор топика

Во-первых, не выкладывай никогда выборочно куски логов

Во-вторых, емнип, запись вида

dev-libs/boost:0/1.65.0= required by

Означает, что пакет требует ту версию, с которой он был собран, в данном случае 1.65. У тебя какие-то пакеты собраны с 1.65, какие-то с 1.63, вот и конфликт. Ты уж определись, какая версия тебе нужна. Конфликт разрешится переборкой всех пакетов, собранных с не-установленной версией.

Вообще надо обновляться с ключом --deep или обновлять @world, а не ставить пакеты по одному, тогда таких проблем не будет.

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

По первому вопросу уже ответили.

По второму (--oneshot) - если запись в @world была, то она останется. Если не было - не добавится.

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

Ещё удобнее держать пакеты по категориям в файлах-списках в /etc/portage/sets/имя_категории тогда файл world можно держать пустым. Зависимости в world и sets держать не нужно, на то они и зависимости.

grem ★★★★★
()
emerge -C --deep boost boost-build

и запускай обновление

Deleted
()

всем спасибо за ответы

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

Ещё удобнее держать пакеты по категориям в файлах-списках в /etc/portage/sets/имя_категории тогда файл world можно держать пустым. Зависимости в world и sets держать не нужно, на то они и зависимости.

а можно поподробнее?

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

Например, у меня в /etc/portage/sets лежат такие файлы

system-base

app-admin/logrotate
app-admin/syslog-ng
app-editors/nano
app-misc/mc
dev-util/strace
net-misc/dhcpcd
net-wireless/wpa_supplicant
sys-apps/lm_sensors
sys-apps/pciutils
sys-apps/usbutils
sys-boot/grub
sys-boot/os-prober
sys-fs/dosfstools
sys-fs/eudev
sys-fs/reiserfsprogs
sys-kernel/gentoo-sources
sys-kernel/linux-firmware
sys-kernel/rtl8192cu-fixes
sys-process/cronie
sys-process/htop

portage-utils

app-portage/eix
app-portage/elogv
app-portage/genlop
app-portage/gentoolkit
app-portage/repoman
app-portage/ufed

desktop-env

app-arch/p7zip
kde-apps/ark
kde-apps/dolphin
kde-apps/dolphin-plugins
kde-apps/gwenview
kde-apps/kate
kde-apps/kcalc
kde-apps/kdebase-kioslaves
kde-apps/kmix
kde-apps/konsole
kde-apps/okular
kde-apps/spectacle
kde-plasma/kinfocenter
kde-plasma/kmenuedit
kde-plasma/plasma-desktop
kde-plasma/powerdevil
kde-plasma/sddm-kcm
kde-plasma/systemsettings
media-fonts/dejavu
media-fonts/kochi-substitute
media-fonts/liberation-fonts
media-fonts/terminus-font
net-print/hplip
sys-fs/ntfs3g
x11-apps/mesa-progs
x11-base/xorg-x11
x11-misc/sddm
x11-themes/oxygen-gtk:2
x11-themes/oxygen-gtk:3

desktop-apps

app-office/openoffice-bin
kde-apps/k3b
media-gfx/darktable
media-gfx/gimp
media-video/mpv
net-im/pidgin
net-p2p/ktorrent
www-client/opera
x11-plugins/pidgin-indicator
x11-themes/smplayer-themes

Файл /var/lib/portage/world при этом пустой. Если я хочу добавить в систему новое приложение, то теперь я прописываю его в нужный мне set-файл и ставлю пакет как emerge -1av имя_пакета. Также добавленные в список пакеты будут установлены при выполнении в следующий раз emerge -uDNav @world. Либо сначала сначала можно установить пакет emerge -1av имя_пакета, а потом добавить его в set-файл, чтобы при выполнении emerge -av --depclean он не удалялся.

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

обычно такой бардак с build-time слотами бывает при малом значении backtrack. ТС-у бы помогло --backtrack=100 (или побольше).

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

@world содержит в себе список пакетов из set-файлов и, следовательно будет обновлять их сами и их зависимости

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

Для разбиения пакетов по категориям и поддрежания всего этого в порядке, а не хранения в одном файле в куче. К тому же можно обновлять отдельные определённые категории, устанавливать пакеты нового набора (заранее записанного).

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

походу мне пока этого не надо) ибо не шарю

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