Thanks Holly. I understand it better now.

On Wed, 2005-10-05 at 16:50 +0200, Holly Bostick wrote:
> 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