Сьюз сломан? Не могу найти глиба

2367
Franz Kafka

Я хотел установить новую бета-версию postgres, которая доступна только из исходного кода. На моем сервере не было установлено gcc, поэтому я хотел установить gcc. После запуска yast gcc 4.3.3 можно было установить только через тонны пакетов. Я просмотрел все это, нажал «Установить», а затем высветились некоторые ошибки установки. После нажатия кнопки abort я больше не могу войти в yast.

/bin/bash: /lib64/libc.so.6: versionGLIBC_2.11 'не найден (требуется /lib64/libreadline.so.5) `

молния, обороты тоже сломаны. Я должен был полностью найти сервер. Есть какая-нибудь команда на восстановление, чтобы все снова заработало? Я бегу suse 11.1.

0

1 ответ на вопрос

2
Horn OK Please

There is no repair command. What happened is that your downgrade replaced the version of glibc from a current version to an older version, and all of the other programs on your system that link against glibc (i.e., everything except the packages which were downgraded first) are now unable to find the symbols they need to link and run.

You can repair this system by starting up a rescue system (OpenSUSE 11.1 Live CD, or put the hard disk in another computer), then manually download the correct version of glibc rpm, unpack it, and manually place its files into the broken system.

In fact you can do this from almost any Linux operating system that can mount the filesystem of your server. The main thing you need is the rpm command, but make sure that the version of rpm in the rescue system is new-ish so that it supports the LZMA archive format, which I think was deployed by the time 11.1 was released. The safest way to do this is to use the OpenSUSE / SUSE 11.1 Live CD as the rescue system, and not something weird and old like Ubuntu 8.04 or SUSE 10.

Once you get glibc working again, you can chroot into the broken system and re-try or rollback the downgrade, and if you run into any errors, just exit from the chroot environment, download the needed packages on the host, and unpack them into the guest.

In fact, it may be easier if you boot up an OpenSUSE 11.1 rescue, to just copy all of the files from /usr and /lib64 from the rescue system, into the broken root volume, overwriting all of your core programs with the original versions (glibc, the kernel, Xorg, and so on). But don't overwrite /boot or you'll lose your menu.lst / menu.cfg. And don't overwrite /etc or you'll lose fstab, which is important and probably not broken (but it will break if you overwrite it with the version on the rescue CD).

Note that this isn't guaranteed to work. You will probably want to run zypper up (as root) in the rescue system BEFORE you do this. This will update all the files in /usr and /lib64 to the latest versions from the updates repository prior to putting them on the server. This provides the best probability that everything will work when you boot into the broken system.

Most likely the answer to your question "suse broken?" is probably "yes", but if you're meticulous and know what you're doing, you can still fix it. Convincing the rpm database of the broken system that everything is ok may prove interesting, however.

Похожие вопросы