Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Can't clean up -- required packages not being installed
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 502

PostPosted: Tue Oct 22, 2024 8:56 am    Post subject: Can't clean up -- required packages not being installed Reply with quote

Hi

I did this:

Code:

# emerge --update --newuse --deep --with-bdeps=y @world
# emerge --ask --depclean


And got this:

Code:

* Dependencies could not be completely resolved due to
 * the following required packages not being installed:
 *
 *   >=sci-libs/cgnslib-4.1.1:0/4=[hdf5,-mpi] pulled in by:
 *     sci-libs/vtk-9.2.5-r2
 *
 *   dev-libs/jsoncpp:0/25= pulled in by:
 *     sci-libs/vtk-9.2.5-r2


So far as I know, I have
Code:
cgnslib
and
Code:
jsoncpp
, but maybe not the versions that are being complained about.

Can anybody explain, in numpty terms that I stand some chance of understanding, what's gone wrong here? In particular, how should I interpret terms like
Code:
cgnslib-4.1.1:0/4=[hdf5,-mpi]
? equery tells me I have
Code:
cgnslib-4.4.0-r1:0/4.4
-- I'm guess that isn't(?) a match for the version that emerge is complaining about?

emerge goes on to tell me that it might be "necessary to manually uninstall packages that no longer exist in the repository" but I don't see anything that needs to be uninstalled.

What have I screwed up this time?

BR, Lars.
Back to top
View user's profile Send private message
Josef.95
Advocate
Advocate


Joined: 03 Sep 2007
Posts: 4661
Location: Germany

PostPosted: Tue Oct 22, 2024 10:06 am    Post subject: Reply with quote

Hm, what is the full output from
Code:
emerge -pvuDU @world
?
Back to top
View user's profile Send private message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 502

PostPosted: Tue Oct 22, 2024 10:54 am    Post subject: Reply with quote

Josef.95 wrote:
Hm, what is the full output from
Code:
emerge -pvuDU @world
?


Thank you. Attached. I have no clue how to interpret the 'dependency conflict' messages. I've had them for a while, and I've just been ignoring them.

But I note that `emerge ... @world` does a load of compilation, but does not, in the end, update anything. `equery` continues to show the same version numbers for all the packages that `emerge` said it was updating. It's clearly doing the compilation, because I'm watching it happen, but nothing actually gets installed. Whether that's related to this dependency conflict, or some other problem, I have no idea.

BR, Lars.


Code:

Dependency resolution took 73.25 s (backtrack: 5/20).

[ebuild     U  ] www-client/ungoogled-chromium-bin-129.0.6668.89::pf4public [129.0.6668.58::pf4public] USE="-convert-dict -widevine" L10N="af 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 ur vi zh-CN zh-TW" 125,316 KiB
[ebuild     U  ] net-print/libcupsfilters-2.1_beta1::gentoo [2.0.0-r5::gentoo] USE="dbus exif jpeg pdf png poppler postscript tiff -test" 0 KiB
[binary     U  ] net-wireless/wpa_supplicant-2.10-r5-1::gentoo [2.10-r4::gentoo] USE="dbus fils hs2-0 mbo mesh qt5 readline -ap -broadcom-sta -eap-sim -eapol-test -fasteap -macsec -p2p -privsep (-ps3) (-selinux) -smartcard -tdls -tkip -uncommon-eap-types -wep (-wimax) -wps" 0 KiB
[ebuild     U  ] net-print/libppd-2.1_beta1-r1::gentoo [2.0.0::gentoo] USE="poppler postscript" 0 KiB
[ebuild  rR    ] sci-libs/vtk-9.2.5-r2:0/9.2::gentoo  USE="logging openmp qt6 rendering sdl threads -all-modules -boost (-cuda) (-debug) -doc -examples -ffmpeg -freetype -gdal -imaging -java -las -mpi -mysql -odbc -openvdb -pdal -postgres -python -qt5 -tbb -test -tk -views -vtkm -web" PYTHON_SINGLE_TARGET="-python3_10 -python3_11" VIDEO_CARDS="-nvidia" 0 KiB
[ebuild     U  ] net-print/cups-filters-2.0.1::gentoo [2.0.0-r1::gentoo] USE="foomatic" 0 KiB
[ebuild     U  ] net-p2p/qbittorrent-4.6.7::gentoo [4.6.6::gentoo] USE="dbus gui qt6 -systemd -test -verify-sig -webui" 0 KiB
[ebuild     U  ] net-print/cups-browsed-2.0.1::gentoo [2.0.0::gentoo] USE="-ldap -test -zeroconf" 0 KiB
[ebuild     U  ] media-sound/spotify-1.2.47::gentoo [1.2.42::gentoo] USE="libnotify -local-playback -pax-kernel -pulseaudio" 106,544 KiB

Total: 9 packages (8 upgrades, 1 reinstall, 1 binary), Size of downloads: 231,860 KiB

WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict:

sci-libs/vtk:0

  (sci-libs/vtk-9.3.0-r3:0/9.3::gentoo, ebuild scheduled for merge) USE="freetype logging openmp qt6 rendering sdl threads views -all-modules -boost (-cuda) (-debug) -doc -examples -ffmpeg -gdal -gles2-only -imaging -java -las -mpi -mysql -odbc -opencascade -openvdb -pdal -postgres -python -qt5 -tbb -test -tk -vtkm -web" ABI_X86="(64)" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11" VIDEO_CARDS="-nvidia" conflicts with
    <sci-libs/vtk-9.3.0:0/9.2=[rendering] required by (sci-libs/opencascade-7.7.0-r2-1:0/7.7::gentoo, installed) USE="json vtk -doc -examples -ffmpeg -freeimage -gles2 -optimize (-tbb)" ABI_X86="(64)"
    ^             ^^^^^^^^^^^^           
    sci-libs/vtk:0/9.2=[-qt5,qt6,rendering] required by (media-gfx/freecad-0.21.2-r3-3:0/0::gentoo, installed) USE="addonmgr fem gui idf image inspection material openscad part-design path points qt6 raytracing robot show surface techdraw tux -cloud -debug -designer -netgen -pcl -test" ABI_X86="(64)" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11"
                ^^^^^^^                   
    <sci-libs/vtk-9.3.0:=[rendering] required by (sci-libs/opencascade-7.7.0-r2-1:0/7.7::gentoo, installed) USE="json vtk -doc -examples -ffmpeg -freeimage -gles2 -optimize (-tbb)" ABI_X86="(64)"
    ^             ^^^^^             

media-libs/freetype:2

  (media-libs/freetype-2.13.2:2/2::gentoo, ebuild scheduled for merge) USE="X adobe-cff bzip2 cleartype-hinting png svg -brotli -debug -doc -fontforge -harfbuzz -static-libs -utils" ABI_X86="(64) -32 (-x32)" conflicts with
    >=media-libs/freetype-2.13.2[harfbuzz,abi_x86_64(-)] required by (media-libs/sdl2-ttf-2.22.0-1:0/0::gentoo, installed) USE="X harfbuzz -static-libs" ABI_X86="(64) -32 (-x32)"
                                 ^^^^^^^^               
Back to top
View user's profile Send private message
Josef.95
Advocate
Advocate


Joined: 03 Sep 2007
Posts: 4661
Location: Germany

PostPosted: Tue Oct 22, 2024 11:43 am    Post subject: Reply with quote

First, I would fix this conflict
Quote:
Code:
media-libs/freetype:2

  (media-libs/freetype-2.13.2:2/2::gentoo, ebuild scheduled for merge) USE="X adobe-cff bzip2 cleartype-hinting png svg -brotli -debug -doc -fontforge -harfbuzz -static-libs -utils" ABI_X86="(64) -32 (-x32)" conflicts with
    >=media-libs/freetype-2.13.2[harfbuzz,abi_x86_64(-)] required by (media-libs/sdl2-ttf-2.22.0-1:0/0::gentoo, installed) USE="X harfbuzz -static-libs" ABI_X86="(64) -32 (-x32)"
                                 ^^^^^^^^
Enable the harfbuzz USE flag on media-libs/freetype package,
and then check the new
Code:
emerge -pvuDU @world
output.
Back to top
View user's profile Send private message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 502

PostPosted: Tue Oct 22, 2024 1:40 pm    Post subject: Reply with quote

I got things working by fiddling about with 'emerge @preserved-rebuild', based on similar problems elsewhere in this forum. I have no idea what this does.

But what I really want to know is, what does emerge actually mean here: ?

"Dependencies could not be completely resolved due to the following required packages not being installed"

The packages definitely were installed. What is `emerge` actually checking? And for what? And what does a version string like
Code:
cgnslib-4.1.1:0/4=[hdf5,-mpi]
really mean?

Is there anything I can read that will explain all this stuff? The Gentoo documentation, like all computing documentation, is written for people who don't actually need the documentation.

BR, Lars.
Back to top
View user's profile Send private message
GDH-gentoo
Veteran
Veteran


Joined: 20 Jul 2019
Posts: 1664
Location: South America

PostPosted: Tue Oct 22, 2024 3:25 pm    Post subject: Reply with quote

lars_the_bear wrote:
But what I really want to know is, what does emerge actually mean here: ?

If you mean emerge @preserved-rebuild, it is usually needed for rebuilding packages that install programs or libraries that link to shared libraries from other packages, when those other packages were upgraded, and installed libraries that were not backwards-compatible (e. g. because of an ABI change). In that case, Portage needs to also retain the old versions, so those programs and libraries don't break during dynamic linking. Once rebuilt, though, they will link to the new versions, and Portage can safely remove the old ones.

lars_the_bear wrote:
What is `emerge` actually checking?

The dependency graph of installed packages, according to what was recorded at package installation time.

lars_the_bear wrote:
And for what?

For figuring out what it can remove. It's emerge --depclean we are talking about.

lars_the_bear wrote:
And what does a version string like
Code:
cgnslib-4.1.1:0/4=[hdf5,-mpi]
really mean?

Package sci-libs/cgnslib, version 4.1.1, which is in slot 0, subslot 4, and has to be installed with the hdf5 USE flag set, and the mpi USE flag unset. Additionally, the "=" means that if at any point a version of sci-libs/cgnslib is installed in a different slot or subslot, then package sci-libs/vtk has to be rebuilt.

lars_the_bear wrote:
Is there anything I can read that will explain all this stuff?

The Package Manager Specification will tell you everything you might want to know, but it is also a formal specification written for accuracy and completeness, so not necessarily reader friendly. Some or all of this is also explained in man pages, but I don't recall which ones at the moment.
_________________
NeddySeagoon wrote:
I'm not a witch, I'm a retired electronics engineer :)
Ionen wrote:
As a packager I just don't want things to get messier with weird build systems and multiple toolchains requirements though :)


Last edited by GDH-gentoo on Tue Oct 22, 2024 4:44 pm; edited 1 time in total
Back to top
View user's profile Send private message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 502

PostPosted: Tue Oct 22, 2024 3:40 pm    Post subject: Reply with quote

@GDH-Gentoo

Thank you for the detailed explanation. I will try to read the document you linked but, in the meantime, do you think there is any way to work out how my system has ended up in this state?

That is, how is it possible to end up in a situation where dependencies cannot be satisfied when uninstalling? All the dependencies must have been resolved at package installation time (or, at least, I had no reason to think otherwise). SInce then, I've done a couple of 'emerge .... @world' operations, which appeared to succeed.

Is it commonplace, with Gentoo, to end up in a situation where you can't clean up because dependencies are unresolved? Or is that a symptom of my particular incompetence? If it's something that can happen without incompetence, is there some systematic, step-by-step procedure for putting things right?

BR, Lars
Back to top
View user's profile Send private message
GDH-gentoo
Veteran
Veteran


Joined: 20 Jul 2019
Posts: 1664
Location: South America

PostPosted: Tue Oct 22, 2024 3:48 pm    Post subject: Reply with quote

lars_the_bear wrote:
[...], do you think there is any way to work out how my system has ended up in this state?

The thing is, you've been so far a "tell, don't show" person, which makes giving you answers quite difficult for anyone else, because of all the guesswork involved.

Standard answer is "should not have happened", but that probably won't satisfy you :) One way of messing the dependency graph is fiddling with emerge --unmerge, but I'm sure, uh, creative people can come up with other ways...
_________________
NeddySeagoon wrote:
I'm not a witch, I'm a retired electronics engineer :)
Ionen wrote:
As a packager I just don't want things to get messier with weird build systems and multiple toolchains requirements though :)
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2352

PostPosted: Tue Oct 22, 2024 4:00 pm    Post subject: Reply with quote

If you used binary packages, then build time dependencies were not necessary and not installed. You however passed --with-bdeps=y which should have installed them anyway, even if you used binary packages. So that's strange and unless you did something else you can't figure out at the moment is connected to this situation, it might as well have been a bug.

Are you sure the update finished successfully? Sometimes if the update does not finish, preserved libs will remain as the packages depending on them were still not updated, but the libs were.

Best Regards,
Georgi
Back to top
View user's profile Send private message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 502

PostPosted: Wed Oct 23, 2024 7:52 am    Post subject: Reply with quote

GDH-gentoo wrote:
lars_the_bear wrote:
[...], do you think there is any way to work out how my system has ended up in this state?

The thing is, you've been so far a "tell, don't show" person, which makes giving you answers quite difficult for anyone else, because of all the guesswork involved.


Fair point. But I'm not asking for a magic incantation that will solve my current problem; rather, I'm asking how I can understand the situation well enough to solve problems myself. I doubt I could recall the sequence of events that led to me being where I am, even it would be helpful to try.

Leaving aside my personal circumstances, my question becomes: is it commonplace, or expected, that a 'emerge --depclean' would fail for faulty dependencies, in a system that appears to be working fine? And if so, is there some systematic way to solve the problem? Or is it just me (again)?

From the previous replies, I get the impression that this not a really an expected occurrence. It would still be helpful if anybody had an idea of the kinds of things that might lead to this situation, so I can try to work it what happened. If this is not a question that can be answered in general terms, fair enough.

BR, Lars
Back to top
View user's profile Send private message
Chiitoo
Administrator
Administrator


Joined: 28 Feb 2010
Posts: 2710
Location: Here and Away Again

PostPosted: Wed Oct 23, 2024 8:44 am    Post subject: Reply with quote

lars_the_bear wrote:
GDH-gentoo wrote:
lars_the_bear wrote:
[...], do you think there is any way to work out how my system has ended up in this state?

The thing is, you've been so far a "tell, don't show" person, which makes giving you answers quite difficult for anyone else, because of all the guesswork involved.


Fair point. But I'm not asking for a magic incantation that will solve my current problem; rather, I'm asking how I can understand the situation well enough to solve problems myself. I doubt I could recall the sequence of events that led to me being where I am, even it would be helpful to try.

Leaving aside my personal circumstances, my question becomes: is it commonplace, or expected, that a 'emerge --depclean' would fail for faulty dependencies, in a system that appears to be working fine? And if so, is there some systematic way to solve the problem? Or is it just me (again)?

From the previous replies, I get the impression that this not a really an expected occurrence. It would still be helpful if anybody had an idea of the kinds of things that might lead to this situation, so I can try to work it what happened. If this is not a question that can be answered in general terms, fair enough.

BR, Lars

Since you can not remember how you got there, we can only guess, and I suppose this is the best guess so far:

logrusx wrote:
If you used binary packages, then build time dependencies were not necessary and not installed. You however passed --with-bdeps=y which should have installed them anyway, even if you used binary packages.

Since 'with-bdeps' is by default disabled for binary packages, it's probably not tested that much aside from people who added it to their local default options in one way or the other.

The new official binary host is also pretty new (I haven't really used it myself at all).

In general, I would say no, this is not to be expected. I only see it when I forcefully remove packages manually (again, though, can't really speak for binary packages that I did not build mysef locally).

A good way forward would probably be: when in doubt, ask, with notes on what you did handy, including the resulting output and all the other good stuff. :]
_________________
Kindest of regardses.
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2352

PostPosted: Wed Oct 23, 2024 9:10 am    Post subject: Reply with quote

No, I don't think --with-bdeps is not tested. It has been subject of big discussions in the past. I bet on terminated update, if preserved libs saved the day.

Best Regards,
Georgi
Back to top
View user's profile Send private message
Chiitoo
Administrator
Administrator


Joined: 28 Feb 2010
Posts: 2710
Location: Here and Away Again

PostPosted: Wed Oct 23, 2024 9:31 am    Post subject: Reply with quote

By "not tested" I was mainly referring to "tested in the wild", especially with the new binary packages in the mix, but yeah, I can not say anything for sure and would not bet on anything at this point.
_________________
Kindest of regardses.
Back to top
View user's profile Send private message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 502

PostPosted: Wed Oct 23, 2024 1:11 pm    Post subject: Reply with quote

logrusx wrote:
No, I don't think --with-bdeps is not tested. It has been subject of big discussions in the past. I bet on terminated update, if preserved libs saved the day.


It's entirely plausible that I ctrl-c'd an update in the middle. Usually I find myself doing this when the update does things I'm not expecting, like compiling a monster package when I expected a binary to be available. I don't know if there's a safer way to do this -- I just assumed that nothing would actually get stored when building a package, until the build was complete. But I've been left in a messy state by killing a build in the middle before. I just don't know what the alternative is, when there's no plausible way to wait for it to complete.

I also don't know what '--with-bdeps' means, except what 'man emerge' says. I only started using it recently, because somebody on this forum (can't remember where/who) suggested it.

In fact, I don't really know how to do an update, except what it says here:

https://wiki.gentoo.org/wiki/Upgrading_Gentoo

To be honest, I had kind-of made up my mind never to update anything again. I had the system set up the way I wanted, with everything working. I have a bunch of package masks to prevent packages being upgraded, because they will need to be compiled, which is impractical. So, just out of curiosity I ran `emerge ... --ask @world`, and then said `yes` because it didn't look as if much needed to be updated. It's entirely possible that I just killed it, when it started to compile qtwebengine, which I wasn't expecting.

Anyway, no more updates, until I have to reinstall the whole thing. Hopefully I'll get a year or so out of the installation before I have to do that.

BR, Lars.
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22551

PostPosted: Wed Oct 23, 2024 1:36 pm    Post subject: Reply with quote

lars_the_bear wrote:
It's entirely plausible that I ctrl-c'd an update in the middle.
The safety of this varies depending on exactly when you interrupt it. If you interrupted during an unpack or compile, then the damage is limited to having the workspace left unclean. If you interrupt during install, you can cause major problems, because Portage could be halfway through replacing files of a critical package with files from a newer version.
lars_the_bear wrote:
Usually I find myself doing this when the update does things I'm not expecting, like compiling a monster package when I expected a binary to be available.
This is what --ask is meant to support. Portage tells you what it will do, before it does it. You are responsible for reviewing that output before you approve it to go ahead.
lars_the_bear wrote:
To be honest, I had kind-of made up my mind never to update anything again.
If you don't want any more updates, the easiest path would be to refuse to ever run emerge --sync again, so that you never become aware of updates published by the Gentoo maintainers. If you sync, and selectively update packages that you have not masked, you may get yourself into an even messier state.

Various posters have already advised that you are using Gentoo in an unusual way that is likely to make it difficult to support you, but I am not going to try again to convince you to follow the more standard path.
Back to top
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1207
Location: Richmond Hill, Canada

PostPosted: Wed Oct 23, 2024 2:37 pm    Post subject: Reply with quote

lars_the_bear wrote:
To be honest, I had kind-of made up my mind never to update anything again. I had the system set up the way I wanted, with everything working. I have a bunch of package masks to prevent packages being upgraded, because they will need to be compiled, which is impractical. So, just out of curiosity I ran `emerge ... --ask @world`, and then said `yes` because it didn't look as if much needed to be updated. It's entirely possible that I just killed it, when it started to compile qtwebengine, which I wasn't expecting.

Anyway, no more updates, until I have to reinstall the whole thing. Hopefully I'll get a year or so out of the installation before I have to do that.

BR, Lars.


Since you have choose to setup similar to mine. I will share some of my current practice.

I use git for my Portage tree. I have a directory for the Portage tree and use git workspace to create additional parallel directory with marked date so I know the workspace is a snapshot of the Portage tree of that date. Then using symbolic link to point to the workspace as my computer's Portage repo. I sync my git Portage tree every now and then so I can examine what is new. (using git pull)

I also use Catalyst to run stage4 build so I can always rebuild my environment from scratch. In the catalyst setting I have remote binary packages setup such that every build will have binary package so when repeat the build will pick up binary when flags are match,

I have separated /etc/portage/ for stage4 build so my choose of USE flags are persist through out my usage evolution.

The stage4 build happened on a separate computer in a docker container so it will not affect my daily usage and only when stage4 finish complete and I do some minimal test in the docker container that verify it match my expation I will then copy it to SD card as my new Gentoo environment.

The idea is you still need to pactice Gentoo update. You just don't do that on your daily workstation.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum