[NCLUG] Debian Question

Chad Perrin perrin at apotheon.com
Fri Jan 4 00:09:07 MST 2008


On Thu, Jan 03, 2008 at 10:35:43AM -0700, Bob Proulx wrote:
> Paul Hummer wrote:
> > You shouldn't need to apt-get dist-upgrade very often, if at all.
> 
> The 'upgrade' target upgrades packages of the same names.  After the
> 'upgrade' the package list of names is the same as it was before the
> upgrade.  No new names are allowed installed if they weren't installed
> before.  No old names are allowed to be removed.  This blocks (by
> design) any package that adds new dependencies.

. . . as well it should.  Anything that changes the dependencies should
come with a "human intervention" dependency as well.


> 
> The 'dist-upgrade' target allows new dependencies such as new
> dependencies upon additional libraries or packages that are split into
> separate pieces to be installed.  The package list after a
> 'dist-upgrade' may be different than it was before.

You can upgrade stuff that has changing dependencies without using
dist-upgrade quite easily.  I used to do it all the time when I was a
regular Debian Testing user.  It's a much better idea to hit packages one
at a time rather than doing a dist-upgrade so that if something breaks,
you know what upgrade broke it.

Dist-upgrade is just playing with fire if you do it all the time, as part
of your regular system maintenance.


> 
> As such 'upgrade' is most useful for security upgrades on Stable
> systems where _nothing_is_supposed_to_change_.  It is an additional
> check that enforces the "no package changes" rule.  On a critical
> production system tracking stable and intended to be stable using the
> 'upgrade' process provides an additional bit of safety check.

It's also useful for Testing -- where I used it all the time, and
basically didn't use dist-upgrade at all (I used dist-upgrade a grand
total of twice, both times because I was actually upgrading the software
distribution to a newer release).  Somehow, I managed to keep my software
up to date.  The secret is to pay attention to what's being held back,
and why, and to make intelligent decisions about how to handle it so you
don't hose up your system.

. . . which is one of the things I like about FreeBSD: it comes with a
regularly updated file with notes for how to handle changing
dependencies, APIs, and categorization of software in the ports system,
so you don't have that crossed-fingers "hope this works" moment of terror
when you upgrade something big, with lots of roots all over the system,
just knowing that you'll have to uninstall it at some point and reinstall
it after making some changes so you can get your system back.


> 
> But Testing and Unstable are the proving grounds and often change
> package topography there.  I find that package renames, package splits
> and additional dependencies occur frequently.  Therefore when tracking
> Testing or Unstable the 'dist-upgrade' target is usually the required
> operation.

Nope.  Certainly not for Testing.  Use upgrade, and handle each
individual package that doesn't automatically upgrade yourself.  There's
a *good* *reason* upgrade doesn't just upgrade that stuff willy-nilly.

-- 
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
Thomas McCauley: "The measure of a man's real character is what he would do
if he knew he would never be found out."



More information about the NCLUG mailing list