As the world turns...

A recent upgrade to portage has forced me to become more aware of what switches I'm running it with. For a long, long time, to get an upgrade system I've just been doing a handy "emerge world". This has served me well for years. Doesn't quite work with the latest portage. The result you get with a straight 'world' typically is a bunch of rebuilt packages that as far as I can tell are pretty needless.

Some people have probably been doing this for years, but I've found that an 'emerge -uDNav world' is what works best. Dissecting this from the man page produces:

--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.  Package atoms specified  on  the
              command line are greedy, meaning that unspecific atoms may match multiple installed versions of slotted packages.

--deep (-D)
              This flag forces emerge to consider the entire dependency tree of packages, instead of checking only the immediate  dependen-
              cies of the packages.  As an example, this catches updates in libraries that are not directly listed in the dependencies of a
              package.  Also see --with-bdeps for behavior with respect to build time dependencies that are not strictly required.

--newuse (-N)
              Tells emerge to include installed packages where USE flags have changed since compilation.  USE flag changes include:

              A USE flag was added to a package.  A USE flag was removed from a package.  A USE flag was turned on for a  package.   A  USE
              flag was turned off for a package.

              USE flags may be toggled by your profile as well as your USE and package.use settings.

--ask (-a)
              Before performing the action, display what will take place (server info for  --sync,  --pretend  output  for  merge,  and  so
              forth),  then  ask  whether to proceed with the action or abort.  Using --ask is more efficient than using --pretend and then
              executing the same command without --pretend, as dependencies will only need to be calculated once.  WARNING: If the  "Enter"
              key is pressed at the prompt (with no other input), it is interpreted as acceptance of the first choice.  Note that the input
              buffer is not cleared prior to the prompt, so an accidental press of the "Enter" key at any time prior to the prompt will  be
              interpreted as a choice!

--verbose (-v)
              Tell emerge to run in verbose mode.  Currently this flag causes emerge to print out GNU info errors, if any, and to show  the
              USE  flags  that  will  be  used for each package when pretending. The following symbols are affixed to USE flags in order to
              indicate their status:


              Symbol   Location    Meaning
              --------------------------------------------------------------

              -        prefix      not enabled (either disabled or removed)
              *        suffix      transition to or from the enabled state
              %        suffix      newly added or removed
              ()       circumfix   forced, masked, or removed

Obviously, it's the -uD that does most of the heavy lifting that a straight 'emerge world' misses. After doing this and a revdep-rebuild, you're pretty golden and up-to-date.

posted by Matt | 01/31/09 | 07:04:20 pm | 1528 views | Hastily filed in Gentoo
PermalinkPermalink  

0101010101001010101110101010101011100101010101010100111000111010101011100001010101010101101101010111000110101011001011110101010100101000111010101001110101010101010111101010111011010101001001111011011010011011111010111101001011011101010001110010101010100011110101010101111010101100010010101

Trackback address for this post

Trackback URL (right click and copy shortcut/link location)

No feedback yet

Leave a comment


Your email address will not be revealed on this site.
(Line breaks become <br />)
(For my next comment on this site)
(Allow users to contact me through a message form -- Your email will not be revealed!)

bottom corner