В эти выходные мой коллега делал то, что должно было быть простой установкой memcached на нашем сервере Ubuntu 10.04.04 LTS, но что-то пошло не так. Я все еще пытаюсь разобраться в деталях, но могу вам сказать:
$ /lib/libc.so.6
GNU C Library (Ubuntu EGLIBC 2.11.1-0ubuntu7.12) stable release version 2.11.1, by Roland McGrath et al.
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.4.3.
Compiled on a Linux >>3.2.0-23-generic<< system on 2012-11-15.
Available extensions:
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
Native POSIX Threads Library by Ulrich Drepper et al
BIND-8.2.3-T5B
Однако я также вижу это:
$ ldd --version
ldd (Ubuntu EGLIBC 2.15-0ubuntu10.5) 2.15
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
По сравнению с другой машиной Ubuntu 10.04.04 LTS, я знаю, что 2.11.1 - это то место, где она должна быть, если мы не попытаемся использовать инструменты обновления для перехода на Ubuntu 12.04 LTS. Но как лучше всего туда добраться? Нужно ли копировать библиотеки с рабочей машины, пока все не заработает, или есть способ лучше?
Хорошо, я думаю, мы знаем, что произошло. Пару месяцев назад, просматривая ежедневный отчет logwatch, я увидел, что кто-то начал запускать dist-upgrade. Я спросил их об этом, и они сказали, что думают, что находятся на своей локальной Linux-машине, а не на моем сервере, и ^ Сдавались, как только поняли, что что-то не так.
Все выглядело хорошо, поэтому я больше не думал об этом ... пока другой коллега не установил memcached, и по какой-то, возможно, связанной с этим причине возникли проблемы с установкой, поэтому он использовал одну из различных форсировок - это -опции обновления, и вот тогда весь ад разразился.
Многие вещи были сломаны: способности, все сложное, даже человек. Но dpkg работал! И если вы посмотрите, есть архивы каждой стандартной библиотеки на каждом этапе выпуска / обновления системы. Путем осторожных итераций загрузки пакета, установки / принудительного возврата к этой версии, повторной проверки зависимостей, повторной загрузки мы смогли снова связать систему с точно такой же версией всех соответствующих библиотек, которые у нас были в то время. Я думаю, что нам однажды пришлось использовать опцию «удержания», чтобы циклическая зависимость не вызывала проблем. На это ушло несколько часов, но мы вернули систему в исходное состояние. Затем мы выполнили перезагрузку (на всякий случай - с момента последней перезагрузки прошло 253 дня), а затем стандартное обновление, чтобы получить последнюю версию Ubuntu 10.04 LTS, и снова перезагрузились. Вуаля - спасено.
Какой кошмар!
Уроки выучены: