[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Slink->Potato, Perl version



On Sat, Jun 23, 2001 at 07:00:18AM +0200, Marcus wrote:
> I have slink installed and want to upgrade to potato, but I'm
> relatively new to Debian (and Linux). I read two explanations on
> upgrading, but still have a few newbie type questions:
> 
> Is "apt-get upgrade" sufficient, and what does "apt-get dist-upgrade"
> do?

No it is not.  Apt-get is great, especially for installing single packages
on an otherwise complete and stable system.

Performing large scale upgrades can be attempted using only apt-get, is in
most cases asking for trouble.  This is not a shortcoming in apt-get, it
just doesn't have all the needed user interfaces to dependends management
that dselect does.

Use dselect, and configure it to use apt as its "access" method.

Then setup /etc/apt/sources.list to point to potato packages, and run
"update" within dselect.

Here comes the part where dselect shines, handling the changes in
dependencies that come with the new available packages list.  It helps to
understand what dselect is trying to do, so take a little time and read
the 5 or so pages of online help (press '?' almost anywhere in dselect).
In fact I would say it is rather vital, but then I am a great believer
in the power of rtfm.

BTW, don't try to actively select new packages from the packages list
this first time, it is more important to upgrade the set of currently
installed packages first.  Only after the basic upgrade worked out well
should you start adding packages.  The converse works in the opposite
way: if you want to remove packages anyway, it is easier to do it before
starting the upgrade.

When done with the "select" stage, simply run "install" from the
dselect main menu.  It should trigger apt-get to do the right thing.
In fact, from this point on, apt-get could probably manage without help
from dselect.  But it is less typing now to stay in dselect anyway and
use its menu.

The is a god chance that some packages do not unpack, install or configure
right the first time.  Do not worry, just repeat the "install" and it
should fix 99% of these in the second run.  If it keeps going wrong
because of one broken package, don't be afraid to temporarily remove
the package from your system.  As long as you do not "purge" it, all
configuration will remain on your system and will be reused when you
reinstall the package later.  But none of this should really be necessary
at all and it usually isn't indeed.

When everything worked out, edit sources.list again and put in the
relevant uri's for sid packages.  The local part of the url seems to
have changed slightly over the last few releases IIRC, this may require
a little extra attention.  Google is your friend here, try looking for
"sources.list unofficial".

> I read that I should make sure all packages are _not_ on hold. Is there
> an easy way to do that without dselect?

Untested:

  dpkg --get-selections "*" \
    | sed 's/^([^ ]*) *hold$/\1 install/' \
    | dpkg --set-selections

But the dpkg interface is not especially well suited for interactive
packages' selections manipulation by humans.  So you should use the right
tool for the job: dselect.  Also, I'm not giving you any guarantees that
dpkg will lock its databases properly when both reading and writing it
in the same pipe.  I think it does it right, I'm just not giving any
guarantees.  :-)

The naive way is to walk over all installed packages in the select screen
and pressing 'G' on each package. But that can be quite tiresome if you
have many packages.  This is better:

Enter the "select" screen, type 'o' 'o'.  That should set the sort
options in such a way that packages appear grouped in the largest possible
clustering.  Maybe you have to fiddle a bit, but I found the effect of
tapping 'o' twice good enough for me.  Now select a group header and press
'G' to take all packages listed under that header off hold.  Dselect will
probably display a new screen for dependency conflict resolution, that is
expected and good.  Just accept dselect's suggestions by pressing enter.
If it does not come up with such a screen, then that is fine just as well.
Continue to the next group header and repeat three to five times for
all your installed packages.

To hold all packages, do the same, except press 'H' instead of 'G'.

> Perl 5.6x is not in potato, and if I upgrade I'd like to ignore
> Perl-5.005 and get 5.6. How do I do that using apt-get?

By first upgrading your "slink" dist to the "potato" dist succesfully.
Only thereafter should you start upgrading to "sid" (which contains
perl 5.6).

In any case, do not attempt to upgrade directly from slink to sid.
You can try if you like, and you always get to keep both pieces.

> Primarily I'm interested in upgrading to Perl 5.6, latest Gnome, and
> Xfree 4 (It has TT-Fonts, I believe?), but from what I read, a system
> upgrade is recommended.

Yes.  In fact on any personal machine, I always like to track unstable
and I've never had any serious problems.  But then I keep a close eye
debian-devel where possible, so I know when to not upgrade for a few days,
and I am reasonably familiar with some of the inner workings of dpkg,
debconf, apt and dselect (and from that vantage point I always tell
people: "use dselect") so I can manually intervene when stuff breaks
a little.  But then I probably learnt my way to the first aid kit mostly
from walking into the cutting edge so many times.

Cheers,


Joost



Reply to: