Ну и ночь!

Сегодня потребовалось обновить один клиентский VDS. Там стоит очень-очень старый Debian, который давно уже перестал обновляться. Но рисковать, переходя на новый релиз, да еще и не на следующий, не хотелось. Стал искать, что делать, и наткнулся на описание трюка, как можно обмануть систему и поставить пакеты из следующих версий.
Увы, это оказалось не просто плохой идеей. Это оказалось ОЧЕНЬ ПЛОХОЙ идеей. Началось все с того, что старая версия dpkg не понимала команду activate-nowait в пост-установочных триггерах и отказывалась ставить такие пакеты. Но не зря же я называюсь Настоящим Компьютерщиком. После недолгого поиска я узнал, как переупаковать deb-файлы (да и вообще про то, как они устроены, и как их собирать), и стал вручную в них исправлять activate-nowait на просто activate. После замены в нескольких библиотеках и ручной установки из исправленной версии выяснилась новая неприятность: в новых deb пути к библиотекам указывались иначе: не просто /lib, а /lib/i386-linux-gnu. Обнаружил я это не сразу, и к этому времени несколько утилит уже не работало. Пришлось немного почудить с symlinks, но в итоге все исправил почти со всем, кроме самой последней из установленных таким образом библиотек, про которую просто забыл.
Я уже собирался было идти спать, набрал exit и перешел из root-режима под обычного пользователя, как вдруг пришла в голову мысль проверить, работает ли ssh. И оказалось, что нет! Более того, отказал не только он, но еще и команда su, и одновременно обнаружилось, что на клиентских сайтах тоже все не работает.
Главное, сообрази я это минут на пять раньше, до того момента, как вышел из rootа, я бы исправил это элементарно. А теперь было непонятно что делать. Где-то час я лихорадочно пытался придумать различные обходные пути (например, запустить sshd под обычным пользователем на другом порту), но увы, все было бесполезно. Оставалось только написать в техподдержку хостинга в надежде, что там помогут, и лечь спать.
Заснуть так и не удалось. В голову лезли мысли о том, что backup на хостинге отключился из-за превышения квоты, а свой собственный у меня довольно-таки старый, и неизвестно, чем все это кончится. Около 7 утра я встал снова, проверил ответ от техподдержки, и о счастье: вопрос решили! Поставили Dropbear — более простой ssh-сервер, почти ни от каких библиотек не зависящий, и я снова смог подключиться к серверу и решить остальные вопросы.
В общем, узнал много нового (к счастью, не о себе), но ценой кучи нервов и бессонной ночи.