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

Re: Howto upgrade perl without removing everything

On Mon, Nov 14, 2011 at 15:03 +0000, Richard wrote:
> Hi,
> Playing dangerously with Sid, and I've reached the limit of what it will upgrade to
> without some help.
> Nearly everything has a dependency on perl, the perl version has change, so how do just upgrade the
> perl base.
> I can't see the equivalent of rpm --nodeps in apt-get, and clean up the mess afterwards.

Just to make this better known to people on the mailing lists as well ...

Perl is currently in the transition from 5.12 to 5.14 and an overview of this
particular transition [0] can be seen on [1] and of all other transitions on
[2]. It should be quite obvious that the plethora of red in there is bad and
that we strive to paint this page in green. More specifically all reverse
dependencies have to be rebuilt againt the new perl version and uploaded to
sid and this might take a while.

The best strategy right now is *not* to upgrade perl-base (et al.) to 5.14,
but wait until the transition progressed a bit. The easiest way is probably
to run "(safe-)upgrade" instead of "dist-upgrade" right now and to cherry-pick
other (unrelated, but held) packages directly.

I can only stress once again that it is of uttermost importance to actually
read and understand the actions that are proposed by apt-get/aptitude ... You
might wonder why I mention this, but we already had a couple of people in
#debian who complained that apt-get removed their kernel. (sic!)

Furthermore there might still be people who *already* upgraded to the new perl
version and face a horrible mess right now. There are a couple of ways to deal
with this:

1. Reinstall stable, consider the lesson to be learnt and work on something
   more important
2. Restore from backups
3. Downgrade selected packages to either the version in wheezy or the previous
   version. This can be done with "dpkg -i", but using aptitude install
   foo=1.2.3 or by pinning [3] the packages to a specific version with a
   priority >= 1001 followed by a dist-upgrade. (which will actually downgrade
   the packages)
4. Downgrade the complete system to wheezy. The idea is more or less the same
   as in 3. only that you downgrade all packages from sid to wheezy. This can
   be done by pinning wheezy to a priority >= 1001 as, for example, with the
   following /etc/apt/preferences:

   --- snip ---
   Package: *
   Pin: release a=testing
   Pin-Priority: 1001
   --- snip ---

It should be noted that 3. and 4. are absolutely *unsupported* and might not
work at all. People have, however, successfully downgraded their systems. Liek
always: Make sure that your backups are up-to-date, complete and that you know
how to restore them.

[0] A transition occurs when changes in a package require alterations to
    several other packages which depend on it. To do this, many packages using
    the package are updated, either being recompiled or updated to a new
    version; packages blocking a transition might be removed from <testing> so
    it can complete.  Transitions can become very large and complex, involving
    tens or even hundreds of packages.
[1] http://release.debian.org/transitions/html/perl5.14.html
[2] http://release.debian.org/transitions/
[3] http://www.xs4all.nl/~carlo17/howto/debian.html#errata
    "man apt_preferences"
Wolodja <babilen@gmail.com>

081C B7CD FF04 2BA9 94EA  36B2 8B7F 7D30 CAF1 4EFC

Attachment: signature.asc
Description: Digital signature

Reply to: