On 26/08/2014 16:42, Gevisz wrote:
> On Tue, 26 Aug 2014 13:30:58 +0200
> Alan McKinnon <alan.mckin...@gmail.com> wrote:
> 
>> On 26/08/2014 12:00, Gevisz wrote:
>>> On Tue, 26 Aug 2014 10:42:01 +0100
>>> Peter Humphrey <pe...@prh.myzen.co.uk> wrote:
>>>
>>>> On Tuesday 26 August 2014 12:21:35 Gevisz wrote:
>>>>> I have just tried to upgrade my system (which I do almost every
>>>>> day) and found out that portage wants to install 6 new python
>>>>> packages that seem to be unnecessary because for example
>>>>>   # equery depends dev-python/pyopenssl
>>>>> reports that no other package depends on this one.
>>>>>
>>>>> The same situation is with all the other python packages.
>>>>>
>>>>> # emerge --update --deep --with-bdeps=y --newuse --backtrack=60
>>>>> --ask world
>>>>
>>>> It could be that "--with-bdeps=y" term. I took a long time to learn
>>>> that lesson, as old-timers may remember.
>>>>
>>>> What happens if you change y to n?
>>>
>>> In this case, the portage wants to update all the same "unnecessary"
>>> python packages and only decides not to update the eselect-ruby. 
>>
>>
>> You've approached this in an inefficient way.
>>
>> When portage gives an odd list of dependencies to be emerged
>> (especially if they are new indicated by [ebuild  N     ]), then
>> always run emerge with the -t option. This will display the same
>> output in a tree view showing you what pulls things in. This exactly
>> answers the question you asked.
> 
> Thank you for the hint. I will try it next time but now
>   # emerge -t pyopenssl
> just re-emerged the package and I saw no dependencies.

That's correct.

pyopenssl depends on nothing so there is nothing to display.
Other things depend on pyopenssl (like ssl-fetch) so emerge those and
you'll see.

It's vital when working with portage to have a very firm grasp of the
difference between what a package depends on and what depends on it.

> 
>> Looking at emerge output without the -t option does not show this
>> information, so you don't know.
>>
>> When a package is to be installed new (i.e. not an update) then
>> "equery depends" is pointless. That form of the command shows the
>> dependencies for *installed*packages*, so obviously can't show the
>> deps for something not installed yet.
> 
> Yes, now "equery depends" shows that pyopenssl is needed for ssl-fetch
> and ndg-httpsclient, ssl-fetch is needed for mirrorselect is needed for
> nothing. :)
> 
> I do not remember installing mirrorselect, at least I never used it
> (just now found out what it is used for) but somehow it managed to get
> into my world file...

A hundred bucks says you ran "emerge mirrorselect" during your very
first install, because the install doc says to do it

> 
> May be I used it during my first Gentoo installation, my birth as Gentoo
> user. We usually do not remember what happened during our births. :) 
> 
>> There are options to equery that make it search the tree itself,
>> not your vdb, but they are slo-o-o-ow. maan equery for details.
> 
> I am not in a hurry, so will look for this option too. :)
>  
>> --with-bdeps=n omits eselect-ruby as it is a build depend for some
>> package. A build depend means you need it to build something not to
>> run it. Portage defaults to n on this to make things a little more
>> efficient and compile less stuff. In your case eselect-ruby will only
>> be updated when something else that needs it at build time is
>> updated. Until then you strictly speaking don't really need it to be
>> updated.
> 
> Thank you for the explanations.


-- 
Alan McKinnon
alan.mckin...@gmail.com


Reply via email to