Проблема при запуске Squid
Столкнулся с проблемой старта Squid
на RedHad Linux v.6.4
. Squid
просто не запускался.
При попытке запуска бинарника squid вот такой командой:
/usr/sbin/squid -N
Проявляется корень зла:
/usr/sbin/squid: relocation error: /usr/sbin/squid: symbol private_MD5_Init, version libcrypto.so.10 not defined in file libcrypto.so.10 with link time reference
Проверить кто предоставляет нужную библиотеку можно вот так:
yum provides */libcrypto.so.10
На выходе получаем список пакетов, в которых он есть. Ищем самый последний. В моем случае это openssl-1.0.1e-16.el6_5.4.x86_64
rpm -q --provides openssl v.1.0.1e| grep libcrypto.so.10
И получаем вот такой вот результат:
libcrypto.so.10()(64bit)
libcrypto.so.10(OPENSSL_1.0.1)(64bit)
libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)
libcrypto.so.10(libcrypto.so.10)(64bit)
Можем немножко порадоваться, тому что в составе пакета openssl-1.0.1e-16.el6_5.4.x86_64
библиотека libcrypto.so.10
имеет подпись. Но долго радоваться не придется - при попытке установки новой версии openssl
система поругается на файлы, которые относятся к уже установленной версии:
Transaction Check Error:
file /usr/lib64/libcrypto.so.1.0.1e from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
file /usr/lib64/libssl.so.1.0.1e from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
file /usr/lib64/openssl/engines/lib4758cca.so from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
file /usr/lib64/openssl/engines/libaep.so from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
file /usr/lib64/openssl/engines/libatalla.so from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
file /usr/lib64/openssl/engines/libcapi.so from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
file /usr/lib64/openssl/engines/libchil.so from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
file /usr/lib64/openssl/engines/libcswift.so from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
file /usr/lib64/openssl/engines/libgmp.so from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
file /usr/lib64/openssl/engines/libnuron.so from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
file /usr/lib64/openssl/engines/libpadlock.so from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
file /usr/lib64/openssl/engines/libsureware.so from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
file /usr/lib64/openssl/engines/libubsec.so from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64
Проблема в том, что на сервере уже были установлены пакеты
openssl
openssl-devel
openssl10-libs
Нужно удалить openssl10-libs
. Если использовать yum
- он вынесет из системы все зависимые пакеты. В моем случае - тонна пакетов nodejs
. Для удаления пакетов без зависимостей используем rpm:
rpm --nodeps -e openssl10-libs
Устанавливаем новую версию openssl:
yum install openssl v.1.0.1e
Можем стартовать Sqid.
/etc/init.d/squid start
Проверяем или запустился:
netstat -tunlp |grep 3128
После бубнопляски вокруг пакетов, рекомендую проверить остальные:
yum check