November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Friday, March 15th, 2019 09:31 am

На работе меня попросили установить свежую версию astyle на несколько виртуальных машин.
Они все с CentOS, но готового пакета для них не нашёл, поэтому скачал исходники и попробовал скомпилировать вручную. На одной машине, где был CentOS 7, этот astyle вполне нормально скомпилировался и поставился.
А на остальных, где были разные версии CentOS 5 и 6, и уже были установлены старые версии astyle, свежая версия не скомпилировалось. Какие-то идиотские ошибки вылезали – типа, неправильный код во многих заголовочных файлах..

Ну, решил, что, может, имеет смысл скопировать уже готовый astyle с той CentOS7. Скопировал, но он не запускался. ldd показал неподходящие библиотеки. В частности, /lib64/libc.so.6 . Посмотрел, оказалось, что это не сама библиотека, а просто ссылка на libc-2.12.so . А на той машине, где astyle работал, это была ссылка на libc-2.17.so .

Решил приделать этот libc-2.17.so. Скопировал и эту библиотеку, но при попытке переделать ссылку на неё, наступил на основательные грабли:
удалил libc.so.6, чтобы приделать его ссылкой на новую библиотеку, но тут ln перестал работать.. А также и ls, и куча других программ тоже. Оказалось, что им всем нужен тот /lib64/libc.so.6 .

Да как же можно приделать обратно ссылку, если ж сам ln не работает??
Хорошо, что я не отключился от той машины, а то ведь туда и ssh перестал работать, потому что для sshd тоже нужен этот же libc.so.6 .

Погуглил, оказалось, что вот так можно запустить ln:

LD_PRELOAD=/lib64/libc-2.12.so ln -s libc-2.12.so libc.so.6

Это действительно сработало, так вот и удалось обойти эти грабельки..

Оригинал этой записи в личном блоге.

Saturday, March 16th, 2019 07:11 am (UTC)
раз есть пакет для седьмой версии, начал бы с попытки портировать его на старые, а скорее там где-то есть готовые бекпорты в отдельном репе