Eric Crossman schreef:
> Ok, I'll be the first to admit that I don't know much about using 
> portage beyond the most basic minimal commands. This seems to fall 
> under the "used to work" category.
> 
> In the past, I've used a "emerge system" and "emerge world" to update
>  to newer versions of installed software. Usually also with a 
> "--pretend" to see beforehand what it's going to do.
> 
> Now if I run "emerge --pretend system" or "emerge --pretend world" it
>  comes up with no updates to install. If I add an "--update" to the 
> command, it finds the updates correctly.
> 
> Is this a syntax change or just a matter of a deprecated 
> command/default behavior?
> 
> Eric
> 
> 

>From man emerge:


       --update (-u)
              Updates  packages  to  the best version available, which
may not
              always be the highest version number due to masking for
testing
              and  development.   This  will  also  update direct
dependencies
              which may not be what you want.  In  general,  use  this
option
              only in combination with the world or system target.


You have not said what the actual packages are that come up with an -u
but not without, but from this info, I would assume that they are direct
dependencies of packages in your world file, and that the packages in
your world file themselves are up-to-date.

Dependencies are not listed in your world file, so they would not be
updated with an emerge world. And indirect dependencies (dependencies of
the direct dependencies of the packages in your world file) won't be
updated with an emerge -u world, but only an emerge -uD (--deep) world
(because the deep dependencies of the package in your world file are not
direct dependencies of the package, so -u doesn't get them either)

For example, let's take the case of Totem, which is in my world file:

 emerge -pv totem
________________________________________________________________________________

cfg-update 1.7.1 : Building checksum index... (takes a few seconds)  done!
________________________________________________________________________________


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

Calculating dependencies ...done!
[ebuild   R   ] media-video/totem-1.0.4  +a52 -debug +dvd +flac +gnome
-lirc +mad +mpeg +ogg -theora +vorbis +win32codecs +xine +xv 0 kB

The direct dependencies of Totem are as follows (from
http://www.gentoo-portage.com ):

(Piped to prevent quoting)

totem-1.0.4
| > = dev-libs/glib - 2.6.3 = gnome-base/gnome-desktop - 2.2 =
| > gnome-base/gnome-vfs - 2.2 = gnome-base/libglade - 2 =
| > gnome-base/libgnomeui - 2.4
| ! gnome-base/nautilus - media
| > = gnome-extra/nautilus-cd-burner - 2.9 =
| > media-plugins/gst-plugins-ffmpeg - 0.8.3 =
| > media-plugins/gst-plugins-gnomevfs - 0.8.8 =
| > media-plugins/gst-plugins-mpeg2dec - 0.8.8 =
| > media-plugins/gst-plugins-pango - 0.8.8 = x11-libs/gtk+ - 2.6
| !xine >= media-libs/gstreamer - 0.8.9-r3
| a52 >= media-plugins/gst-plugins-a52dec - 0.8.8
| dvd >= media-plugins/gst-plugins-a52dec - 0.8.8
| flac >= media-plugins/gst-plugins-flac - 0.8.8
| gnome >= gnome-base/nautilus - 2.10
| lirc  app-misc/lirc
| mad >= media-plugins/gst-plugins-mad - 0.8.8
| mad >= media-plugins/gst-plugins-mad - 0.8.8
| mpeg >= media-plugins/gst-plugins-mpeg2dec - 0.8.8
| ogg >= media-plugins/gst-plugins-ogg - 0.8.8
| theora >= media-plugins/gst-plugins-ogg - 0.8.8
| vorbis >= media-plugins/gst-plugins-ogg - 0.8.8
| win32codecs >= media-plugins/gst-plugins-pitfdll - 0.8.1
| xine >= media-libs/xine-lib - 1
| xv >= media-plugins/gst-plugins-xvideo - 0.8.8


Taking one of the direct dependencies at random, nautilus-cd-burner
itself has the following dependencies:

| nautilus-cd-burner-2.10.2
| > = dev-libs/glib - 2.4 = gnome-base/eel - 2 = gnome-base/gconf - 2 =
| > gnome-base/gnome-vfs - 2.1.3.1 = gnome-base/libglade - 2 =
| > gnome-base/libgnome - 2 = gnome-base/nautilus - 2.5.5 = x11-libs/gtk+
| >  - 2.5.4
| hal = sys-apps/hal - 0.4*
| cdr  virtual/cdrtools
| dvdr  app-cdr/dvd+rwtools

So when I installed Totem, assuming that I had no GNOME subsystem
installed, so none of these programs were direct dependencies of some
other aspect of GNOME), nautilus-cd-burner would have been installed as
a dependency of Totem, but eel would have been installed prior to that as a
dependency of nautilus-cd-burner. Eel is therefore a deep dependency of
Totem and a direct dependency of nautilus-cd-burner, which is itself a
direct dependency of Totem, which is the only package that would have
been added to my world file as a result of the 'emerge totem' operation.

So if I emerge world, only Totem will be updated if an update is available.

If I emerge -u world, only nautilus-cd-burner will be updated if an
update is available (irrespective of whether or not an update is
available for Totem itself, so long as the currently-existing version of
Totem may work with the updated version of nautilus-cd-burner; if not,
you'd probably get a message saying that all versions of Totem specified
are masked)

In order to get an available update to Eel, I would have to emerge -uD
world, because eel is neither in my world file, nor a direct dependency
of the package in my world file (Totem). Unless of course I wanted to
put nautilus-cd-burner in my world file directly, in which case eel
would be updated with an emerge -u world.

Myself, I always do emerge -uaDtv world, so that everything possible to
update can be updated in a timely fashion (--update, --deep), so that I
don't have to type the command twice (--ask, rather than --pretend), so
that I can see what USE flags are available for all the packages to be
emerged (--verbose), and so that I can see what package the packages to be
emerged are dependent on, in the event something I don't expect is
requested to emerge (--tree).

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

Reply via email to