Nick Fortino wrote:
Alexey Luchko wrote:
I have a gentoo installed, but I wasn't updating it since late 2007, I
suppose.
Today I've run emerge --sync. It worked! It's great ;)
But then I've got the following collision. Obviously, a portage update
is required. But it is confused by dependencies:
colinux ~ # emerge portage --pretend --tree
These are the packages that would be merged, in reverse order:
[cut]
[blocks B ] <sys-apps/portage-2.1.5 (is blocking
app-shells/bash-3.2_p39)
colinux ~ #
I worked on this a couple months back to make it possible. The key is to
download binary packages of portage and a few dependencies to break the
block. Once portage is upgraded, it's smart enough to figure things out
now. An original script an discussion can be found at
http://blog.jolexa.net/2009/03/25/gentoo-tips-to-upgrade-your-really-old-installation/
A slightly modified version is here inline. I would recommend against
running it as a script, but rather do the steps individually (also, if
you aren't running amd64, be sure to change the architecture of the
binaries you are downloading).
Read this line as typical warnings of your mileage may very etc.
I decided to try this way first.
I've got a problem on the way and hopefully restored the system.
The problem appeared after downloading and extracting new bash:
wget
http://tinderbox.dev.gentoo.org/default-linux/x86/app-shells/bash-3.2_p39.tbz2
tar xfpj root/All/bash-3.2_p39.tbz2
Every next execution of bash (and sh also) gave me:
colinux ~ # sh
sh: /lib/libc.so.6: version `GLIBC_2.4' not found (required by sh)
I didn't get through it, but rather restored the partition from backup.
By the way, does one know a windows tool, that can write a partition directly?
If one is interested, I managed to get this way:
I had the backup on the windows host system.
I replaced my root's shell with /usr/bin/python and wrote a script that did
what "cat > /dev/cobd/4" would do if it was available.
The I restored the system running the following:
$ gzip -d < /z/inst/colinux/colinux20090512.img.gz | ssh r...@colinux -C
'execfile("cat.py"); cat("/dev/cobd/4")'
It's really funny, but writing these lines I've understand that I had mounted
host file system, and I could have restored the backup through it.
Have a nice time ;)
Alexey.