Мне нужно установить 2 разные версии OpenSSL одновременно. В настоящее время я использую Amazon EC2 с 32-разрядным AMI Amazon, который в настоящее время работает под управлением OpenSSL 1.0.0a. У меня есть старое программное обеспечение, которое мне нужно запустить, для которого требуется OpenSSL.0.9.6. К сожалению, из того, что я узнал, OpenSSL не имеет обратной совместимости, поэтому мне нужно будет установить обе версии одновременно. Я нашел RPM, который будет работать, однако я не знаю, как установить их одновременно, ничего не сломав. Любая информация по этому поводу будет принята с благодарностью.
Спасибо
Вы можете скачать исходный код из архива openssl.org и скомпилировать его из исходного кода, установив в отдельный каталог.
./config --prefix=/old-openssl-version-x.x.x --openssldir=/old-openssl-version-x.x.x
make
make test
sudo make install
Затем используйте конкретную версию, например:
/old-openssl-version-x.x.x/bin/openssl do whatever you want
Один из вариантов - просто настроить chroot в вашей системе с дистрибутивом, в котором есть необходимый вам набор пакетов. Это займет больше места и будет означать, что вам придется выполнять обслуживание как корневой ОС, так и chroot, но это позволит вам запустить одно приложение в chroot, которое требует более старого набора библиотек в той же системе, что и вы запускаете приложения, которым требуются современные библиотеки.
Я предполагаю, что вы используете дистрибутив, в котором нет разумной политики именования пакетов библиотек относительно soname
объекта (ов), содержащегося в нем, и который также имеет соображения об установке нескольких версий одного и того же пакета.
В этом случае единственный вариант - распаковать посылку вручную (я считаю rpm2cpio
является отправной точкой в этом конкретном крестовом походе, если нет rpm
вариант, который делает трюк) и поместите соответствующие файлы в нужное место (а). Если ты только после libssl
и (как следствие) libcrypto
, это должно быть довольно просто - вы копируете libssl.so.0.9.6
и libcrypto.so.0.9.6
на место, и ldd
на проблемном двоичном файле должно показать счастье.
Если вам действительно нужен весь пакет OpenSSL определенной версии, вам нужно публично назвать и опозорить поставщика, ради блага Интернета, потому что это просто смешно.
Я сделал это на BSD-боксе без каких-либо проблем. Просто убедитесь, что вы установили только библиотеки, а не перезаписали фактический двоичный файл openssl (также и страницы руководства).
Вероятно, было бы безопаснее просто rpm2cpio и извлечь библиотеки.