hamm upgrade using dselect
Santiago Vila <sanvila@unex.es> writes:
> On 24 Feb 1998, Sven Rudolph wrote:
>
> > David Welton <davidw@gate.cks.com> writes:
> >
> > > It was my impression that even if we use pre-depends with all the hamm
> > > base packages (depending on some 'improved' dpkg), that we just can't
> > > guarantee things will go the way we want.
> >
> > Can someone comment whether pre-depends will do everything we need?
>
> Well, dpkg have always *refused* to install a package if a pre-dependency
> is not satisfied.
>
> If we agree on having the Pre-Depends field for all essential packages
> (as it has been discussed in debian-policy), then I think the upgrade
> *should* work *even* if dselect is used to do the upgrade [*].
I'd prefer such a solution. Anyone who will bring this into
debian-policy ?
> Quoting from the Debian FAQ: "The Debian project provided this mechanism
> to support the safe upgrading of systems from a.out format to ELF format,
> where the order in which packages were unpacked was critical."
>
> [*] It may require, however, several "passes", but it should not break
> the system in any case.
I just tried it. It is getting longer, sorry ...
I just took a 1.3.1 box and configured dselect to upgrade. The
conflicts (reordered and commented)
EIOM Pri Section Package Description
*** Opt oldlibs libc5 The Linux C library version 5 (run-time libraries
*** Xtr devel libc5-pic
libc5-pic depends on libc5 (= 5.4.33-6); libc5-pic has to be removed
*** Opt oldlibs libreadline2 GNU readline and history libraries, run-time libr
*** Std devel libreadline2
libreadline2-dev depends on libreadline2 (= 2.1-2); new libreadline is
2.1-7
*** Opt devel lesstif-dev
*-* Opt oldlibs lesstif libc5 backward compatibility lesstif libraries.
lesstif-dev depends on lesstif (= 0.76-1), new lesstif is 0.82-4
*** Opt contrib ddd-smotif
ddd-smotif depends on elf-x11r6lib
*** Opt contrib xforms-dev
xforms-dev depends on elf-x11r6lib
elf-x11r6lib does not appear to be available
xforms-dev suggests xpm-dev
*** Opt devel j1
j1 depends on libreadline
libreadline does not appear to be available
*** Opt games xtetris
xtetris depends on elf-x11r6lib
elf-x11r6lib does not appear to be available
*** Opt libs tk40
tk40 depends on elf-x11r6lib
elf-x11r6lib does not appear to be available
*** Opt libs tk41
tk41 depends on elf-x11r6lib
elf-x11r6lib does not appear to be available
*** Opt x11 offix
offix depends on elf-x11r6lib
elf-x11r6lib does not appear to be available
*** Opt x11 xview-dev
xview-dev depends on elf-x11r6lib
elf-x11r6lib does not appear to be available
*** Xtr non-free mathpad
mathpad depends on elf-x11r6lib
elf-x11r6lib does not appear to be available
*** Xtr non-free xarchie
xarchie depends on elf-x11r6lib
elf-x11r6lib does not appear to be available
*** Opt contrib/ xtar-smotif xtar - Motif front end for tar, with static libXm
xtar-smotif depends on elf-x11r6lib
elf-x11r6lib does not appear to be available
After removing everything but libc5 and libreadline2:
*-* Opt libs tk40
*-* Opt libs tk41
*** Opt libs libtclobjc
libtclobjc depends on tk40
*** Opt libs tclx75
*** Opt libs tclx75
After removing these:
*-* Opt libs tk41
*-* Opt libs tclx75
tclx75-dev depends on tclx75 (= 7.5.2-5)
*** Opt interpre blt
blt depends on tk41
*** Opt devel tclx75-dev
tclx75-dev depends on tclx75 (= 7.5.2-5)
Removed these and done.
Now I started the install part in dselect. First dselect ran the
special things (I don't know exactly who runs this)
It installed dpkg-perl. Then:
Looking for part 1 of libc6 ... /home/debian/ftp/debian/dists/unstable/main/binary-i386/base/libc6_2.0.7pre1-1.deb
Running dpkg -iB for libc6 ...
dpkg: regarding .../base/libc6_2.0.7pre1-1.deb containing libc6:
libc6 conflicts with libc5 (<< 5.4.33-7)
libc5 (version 5.4.33-6) is installed.
dpkg: error processing /home/debian/ftp/debian/dists/unstable/main/binary-i386/base/libc6_2.0.7pre1-1.deb (--install):
conflicting packages - not installing libc6
Errors were encountered while processing:
/home/debian/ftp/debian/dists/unstable/main/binary-i386/base/libc6_2.0.7pre1-1.deb
This simply is an error. First libc5 has to be upgraded in order to
make the system accept libc6. The selection part did this right.
So I installed libc5 manually. BTW: It correctly says: Please reboot
after installation to make sure all programs use the utmp-wrapper
functions. So there is no need to reboot immediately.
Now I installed libc6, this removed localebin. Continuing with
dselect/install, the same problem as above appeared with slang:
Looking for part 1 of slang0.99.38 ... /home/debian/ftp/debian/dists/unstable/main/binary-i386/libs/slang0.99.38_0.99.38-2.16.deb
Running dpkg -iB for slang0.99.38 ...
dpkg: regarding .../slang0.99.38_0.99.38-2.16.deb containing slang0.99.38:
slang0.99.38 conflicts with slang0.99.34 (<< 0.99.38-2.3)
slang0.99.34 (version 0.99.38-2) is installed.
dpkg: error processing /home/debian/ftp/debian/dists/unstable/main/binary-i386/libs/slang0.99.38_0.99.38-2.16.deb (--install):
conflicting packages - not installing slang0.99.38
Errors were encountered while processing:
/home/debian/ftp/debian/dists/unstable/main/binary-i386/libs/slang0.99.38_0.99.38-2.16.deb
Same manual solution as with libc6. Continuing with
dselect/install, the same problem as above appeared with libgdbmg1:
Looking for part 1 of libgdbmg1 ... /home/debian/ftp/debian/dists/unstable/main/binary-i386/devel/libgdbmg1_1.7.3-21.deb
Running dpkg -iB for libgdbmg1 ...
dpkg: regarding .../devel/libgdbmg1_1.7.3-21.deb containing libgdbmg1:
libgdbmg1 conflicts with libgdbm1 (<= 1.7.3-20)
libgdbm1 (version 1.7.3-19) is installed.
dpkg: error processing /home/debian/ftp/debian/dists/unstable/main/binary-i386/devel/libgdbmg1_1.7.3-21.deb (--install):
conflicting packages - not installing libgdbmg1
Errors were encountered while processing:
/home/debian/ftp/debian/dists/unstable/main/binary-i386/devel/libgdbmg1_1.7.3-21.deb
Same manual solution as with libc6. Continuing with
dselect/install:
Running dpkg -iB for perl-base ...
dpkg: considering removing perl in favour of perl-base ...
dpkg: yes, will remove perl in favour of perl-base.
(Reading database ... 73859 files and directories currently installed.)
Unpacking perl-base (from .../base/perl-base_5.004.04-4.deb) ...
De-configuring adduser, so that we can remove perl ...
(de-configuring way more programs ...)
That's OK, but a bit surprising ...
After configuring perl-base dpkg tries to re-configure all
de-configured programs:
dpkg: dependency problems prevent configuration of perl-tk:
perl-tk depends on perl (>= 5.003.07-2); however:
Package perl is not installed.
That's true. In the end dpkg stops with: Processing was halted because
there were too many errors.
IMHO any numeric limit on such errors should be removed.
Unfortunately perl was de-selected now. Hence replacing perl wasn't
the right thing to do for perl-base.
I installed perl manually and continued. Again a library conflict,
this time with libreadlineg2:
Looking for part 1 of libreadlineg2 ... /home/debian/ftp/debian/dists/unstable/main/binary-i386/base/libreadlineg2_2.1-7.deb
Running dpkg -iB for libreadlineg2 ...
dpkg: regarding .../base/libreadlineg2_2.1-7.deb containing libreadlineg2:
libreadlineg2 conflicts with libreadline2 (<< 2.1-2.1)
libreadline2 (version 2.1-2) is installed.
dpkg: error processing /home/debian/ftp/debian/dists/unstable/main/binary-i386/base/libreadlineg2_2.1-7.deb (--install):
conflicting packages - not installing libreadlineg2
Errors were encountered while processing:
/home/debian/ftp/debian/dists/unstable/main/binary-i386/base/libreadlineg2_2.1-7.deb
Solved the same way and continued.
Now plain `dpkg -iGROEB' starts. Some libraries fail because of their
libc5 counterparts. In the configure phase:
dpkg: too many errors, stopping
Errors were encountered while processing:
/home/debian/ftp/debian/dists/unstable/main/binary-i386/base/ss2g_2.0-1.10-11.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/base/comerr2g_2.0-1.10-11.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/base/e2fslibsg_1.10-11.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/base/e2fsprogs_1.10-11.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/math/netcdfg3_3.3.1-3.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/tex/tetex-extra_0.4pl8-3.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/graphics/picon-usenix_1995.04.13-1.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/libs/libpaperg_1.0.3-6.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/libs/tcl7.6_7.6p2-7.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/libs/svgalibg1_1.2.13-1
.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/libs/zlib1g_1.0.4-7.1.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/libs/libjpegg6a_6a-9.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/libs/tk4.2_4.2p2-7.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/libs/libtiff3g_3.4beta037-4.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/text/groff_1.11a-1.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/text/gsfonts_4.01-6.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/text/lout_3.10-1.1.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/x11/9fonts_1-6.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/x11/xmanpages_3.3.1-2.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/x11/xkeycaps_2.42-2.deb
/home/debian/ftp/debian/dists/unstable/main/binary-i386/x11/xpm4g_3.4j-0.6.deb
pcb
Processing was halted because there were too many errors.
Some of the above errors might have been caused by a full disk. I
removed picon-usenix ;-)
I did a configure and learned that too many packages depend on xlibg6.
dpkg -i /home/debian/ftp/debian/dists/unstable/main/binary-i386/x11/xlib6g_3.3.1-2.deb
dpkg: considering removing xlib6-dev in favour of xlib6g ...
dpkg: no, cannot remove xlib6-dev (--auto-deconfigure will help):
tk42-dev depends on xlib6-dev (>= 3.2-0)
xlib6-dev is to be removed.
dpkg: regarding .../x11/xlib6g_3.3.1-2.deb containing xlib6g:
xlib6g conflicts with xlib6-dev (<< 3.3-5)
xlib6-dev (version 3.3-4) is installed.
dpkg: error processing /home/debian/ftp/debian/dists/unstable/main/binary-i386/x11/xlib6g_3.3.1-2.deb (--install):
conflicting packages - not installing xlib6g
Errors were encountered while processing:
/home/debian/ftp/debian/dists/unstable/main/binary-i386/x11/xlib6g_3.3.1-2.deb
tk42 is marked for removal, but it isn't removed yet. IMHO dpkg should
detect this and remove tk42-dev in order to resolve this conflict.
I removed tk42-dev and installed xlib6g. Config again. It did a lot
before "dpkg: too many errors, stopping".
Install again. Too much errors in config phase. Some rounds later
everything works (modulo package-specific errors).
SUMMARY: Problems exist. They are:
a) Old dependencies on discontinued packages. See the selection phase
above. If their were newer versions of the packages with the
elf-x11r6lib problem this would be resolved. But most of these package
names are discountinues anyway.
b) dpkg's pre-`dpkg -iGROEB'-phase determines the wrong ordering for
installing libraries that conflict with older versions of their libc5
counterparts.
c) The perl-base problem. I don't see a solution now.
d) "Processing was halted because there were too many errors": This
limit should not exist.
Sven
--
Sven Rudolph <sr1@inf.tu-dresden.de>
http://www.sax.de/~sr1/
--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-devel-request@lists.debian.org .
Trouble? e-mail to templin@bucknell.edu .
Reply to: