Есть машинка, стоящая за 80 километров от меня. На ней стоит linux. У меня же имеется непонятно зачем привычка всё собирать руками.
Пару недель назад попытался я удалённо обновить на этой машинке glibc с 2.3.1 до 2.3.5. Бекапов никаких не сделал. Собралось, сделал make install и до конца оно не поставилось, но, тем не менее, работало.
Работало не совсем хорошо - попытался собрать httpd и получил
/usr/lib/gcc-lib/i386-slackware-linux/3.3.5/../../../libm.so: undefined reference to `_rtld_global_ro@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `___tls_get_addr@GLIBC_2.3'
/usr/lib/gcc-lib/i386-slackware-linux/3.3.5/../../../libdl.so: undefined reference to `_dl_rtld_di_serinfo@GLIBC_PRIVATE'
collect2: ld returned 1 exit status
Решил пересобрать glibc ещё раз. make install опять не прошёл - вывалилось с сообщением "cannot set up thread-local storage: kernel too old for thread-local storage support".
Всё /bin и вообще всё собрано динамически. Из статического - только ldconfig. Есть два ssh-соединения туда, больше ничего оттуда в мир не открыто. Попробовал сделать ldconfig - /lib/*2.3.1*so - при выполнении какой-либо команды получаю cannot handle file 'libc.so.6' with TLS data
Если делаю просто новый кэш ldconfig'ом - при запуске чего-либо получаю
cannot set up thread-local storage: kernel too old for thread-local storage support
По scp ничего залить туда не могу - имею ssh_exchange_identification: Connection closed by remote host
lost connection
Один товарищ сказал, что можно залить туда файлы через существующее ssh-соединение. Как - не помнит. Гугл вообще ни к чему меня не привёл.
Да, я прекрасно понимаю, что многое я сделал не правильно, но сейчас дело совсем не в этом. Если можно тут что-нибудь сделать не добираясь туда, где это всё дело стоит, то буду счастлив неимоверно.