Nikodemus Karlsson schreef:
> Hi, almost every time when I do a complete packages upgrade using 
> emerge -u world, portage flags for new packages which is going to be
>  installed. Is there an option to get rid of this behavior, so I only
>  get the updated packages with one command?

I'm not quite sure what you mean by this. Sometimes updating a package
requires new dependent packages to be installed (which new packages the
previous version of the package in your world file did not require, so
they're not installed already). In fact, this is the only reason I can
think of that an emerge -u world would install new packages, other than
changed USE flags, which is more or less the same thing.

The most likely to succeed way to eliminate most of the extra dependent
packages is to do an emerge -uav(Dt) world, which will enable you to see
what USE flags are enabled for the packages requested to emerge, which
often will reveal what's going on without you having to do anything more
(for example, if you're updating gnome to 2.12 (as I'm doing today), and
in the course of the prospective emerge you notice (as I did) that 1)
epiphany is being updated (normal), and 2) mozilla is being emerged (not
desired), an emerge -pv epiphany shows that

emerge -pv epiphany

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] www-client/mozilla-1.7.12-r2  +crypt -debug +gnome -ipv6
+java +ldap -mozcalendar -mozdevelop +moznocompose +moznoirc +moznomail
-moznoxft +mozsvg -postgres +ssl +truetype -xinerama +xprint 468 kB
[ebuild     U ] www-client/epiphany-1.8.2 [1.6.4] +dbus -debug -doc
-firefox +python 3,275 kB

looking at the USE flags for epiphany, I see that there is a 'firefox'
USE flag which is not enabled. As you might imagine, I do use Firefox
(since as you see, I don't have Mozilla installed), and being clever, I
guess that I can replace Epiphany's dependency on 'some Mozilla browser'
by enabling the 'firefox' USE flag, and that is the case:


 emerge -pv epiphany

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild     U ] www-client/epiphany-1.8.2 [1.6.4] +dbus -debug -doc
+firefox* +python 3,275 kB

The star next to the firefox USE flag indicates that it is a flag whose
status has changed since I last emerged this application.

And as you see, Mozilla will not be installed.

For more troublesome to debug dependencies, an emerge -uavt(D) world
will show what packages are requiring the additional packages to be
emerged so that you can see their USE flags (which may be requiring the
additional packages), or at least which packages may have new hard
dependencies that require the additonal packages (which status you can
look up using equery or other tools whose names I momentarily forget, or
online at www.gentoo-portage.com ).

> In the meantime, the upgrade flags for install of a package 
> "uw-mailutils-2004g", which conflicts with pine. I don't want 
> uw-mailutils-2004g, but I want pine. Ok, it's easy to upgrade 
> manually all the packages except uw-mailutils-2004g, but then I lose
>  the convinience with the world file, even in the future. Anyone who
>  knows how to solve this problem?

This looks fairly insoluble without giving something up:

Runtime Dependencies
uw-mailutils-2004g

    ! mail-client/pine - 4.64-r1
    ! net-mail/uw-imap - 2004g-r1
    virtual/libc

Pine cannot be installed with uw-mailutils. OK, but why are we
installing uw-mailutils in the first place?

Programs That Depend On uw-mailutils

    net-mail/uw-imap

Do you need uw-imap? If not, then get rid of it, and unmerge
uw-mailutils, and pine will upgrade by itself.

Oh, I see, the upgraded pine needs it.

And uw-imap needs uw-mailutils, but not of the -r1 revision that
conflicts with the upgrade to uw-imap, and pine.

So then mask the versions of uw-mailutils above 2004g, and keep an eye
on portage, as this looks like a bug which would need to be resolved,
and I would imagine that it would be in short order.

# echo ">=net-mail/uw-mailutils-2004g-r1 >>/etc/portage/package.mask"

This command assumes that the directory /etc/portage exists already (but
the file package.mask need not exist; as long as the folder exists, the
file will be created and this line will be added to it; if the file does
exist, the mask command will be added to it).

Hope this helps,
Holly
-- 
gentoo-user@gentoo.org mailing list

Reply via email to