On Thu, 20 Aug 1998, Jimen Ching wrote:
> After I upgraded to hamm (no problems encountered, good job), I noticed > some obsolete packages, which I progressed to remove. I did this in steps > so I don't harm my system. I did all of this in X, which may be my first > mistake. Everything went fine until the last obsolete package, 'base'. I > got the warning about _knowing what I was doing_ to proceed. I made the > assumption that since the new version is installed, there's no problem > with uninstalling this package -- my first big mistake. The system is > still usable, but all of my devices in /dev just disappeared. I don't > know what else is missing. This problem with base is really bad. It has happened to other people and true, it does screw up your system in probably one of the worst ways imaginable (apart from slow corruption of your fs due to bad hardware maybe.) You could have gotten rid of base safely by removing /var/lib/dpkg/info/base.* and all references to the base package in /var/lib/dpkg/status . But I won't blame you for not knowing that beforehand. > I was able to retrieve most of the devices by running '/dev/MAKEDEV > update'. Unfortunately, this did not recreate the pty's or the tty's. [snip] I could paste in the contents of base as it came with debian 1.1, but that would make the email 61K bigger and it wouldn't fix the libbc5/libc6 mishmash that your system has become. Instead, try to unpack base2_0.tgz directly onto your hosed system. IIRC it contains all the necessary devices and essential libs. Just boot the rescue floppy, switch to VC2 and mount your root filesystem on /mnt and mount all other partitions in the proper places (ie. /usr would end up on /mnt/usr.) Next, mount the cd on /cdrom and find base2_0.tgz. I think you'll have to extract files from it using cpio, as there's no tar on the rescue disk. I'm not used to cpio, so what I'm about to tell you might be all wrong :-/. Anyway, cd to /tmp and: cpio -i -dbm < /path/to/base2_0.tgz If all goes well, that ought to restore most devices and basic libs and utilities. You can test if your system has become slightly less unstable by syncing and rebooting from the rescue disk, this timetyping "rescue root=/dev/hda1" at the syslinux prompt (assmuning that your root filesystem is actually on hda1 of course.) If you are reasonably succesful at this point, try to mount the cdrom and run: dpkg --configure --pending I wouldn't be surprized if you got a lot of errors from that, but it should at least get things as sane as possible. Rerun until no errors happen or until no errors disappear when you run dpkg successively. Now run: dpkg -iBOR /cdrom/debian/dists/stable/main/binary-i386 That should just reinstall all packages that are registered to be installed on your system. > >From the above, you would think I'm no newbie. But somehow, I've must of > executed the F0 0F instruction and my brain halted. ;-) I've never > thought I could hosed my system this bad. :( Time to buy a tape drive ;-) > 1. How does one remove all libc5 stuff off the system? I didn't see any > option to remove all of the libs and stuff. Simple, just unselect package libc5 in dselect's selection screen. Dselect will then automatically bring you to the list of all packages on your system that depend on libc5. From there, you can easily flag those for removal too. I do recommend you doublecheck the selections list before you actually start the removal step of dselect :-] > 2. Why was the package 'base' from Debian 1.1 still listed as an > installed package? Doesn't base-files or some other package replaced it? > If there's a new version of the 'base' package, why is it listed under the > obsolete section? Shouldn't it be under required/current? I think that at some point in time, there was apackage that replaced, provided and conflicted with base, so that by installing that package, one would upgrade gracefully. However, when base disappeared from the dependency information after a couple of versions, the failsafe mechanism disappeared and it became possible to orphan base by upgrading across several Debian versions at once. All this would of course have been only a minor issue if only some package had continued to own the critical devices and directories that were once owned by base. > 3. What is the difference between the libc6 and libc6-dev? What is > considered a development library? Is it needed to develop libc6 only, or > any development at all, i.e. C++/X programming? You need libc6 to run programs that are linked with libc6 at build time. To build and link programs yourself, you'll also need libc6-dev. This generally goes for any libfoo and libfoo-dev in Debian. Cheers, Joost