Уважаемые StackOverflow пользователей,Как я могу сделать rpm сказать, какие библиотеки предоставляются внутри него?
Я пытался установить новую OpenSSL в CentOS 6.5 следующим образом:
# curl -O https://www.openssl.org/source/openssl-1.0.1i.tar.gz
# tar xzf openssl-1.0.1i.tar.gz
# sed -i "[email protected]/usr/[email protected]/usr/[email protected]" openssl-1.0.1i/openssl.spec
# tar czf openssl-1.0.1i.tar.gz openssl-1.0.1i
# rpmbuild -tb openssl-1.0.1i.tar.gz
Однако установка сгенерированные возвращает оборотов в минуту следующие ошибки:
bash-4.1# rpm -Uvh /rpmbuild/RPMS/x86_64/openssl-1.0.1i-1.x86_64.rpm
error: Failed dependencies:
libcrypto.so.10()(64bit) is needed by (installed) python-libs-2.6.6-52.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) libssh2-1.4.2-1.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) fipscheck-1.2.0-7.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) openssh-5.3p1-94.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) openssh-clients-5.3p1-94.el6.x86_64
libcrypto.so.10()(64bit) is needed by (installed) git-1.7.1-3.el6_4.1.x86_64
libcrypto.so.10(OPENSSL_1.0.1)(64bit) is needed by (installed) openssh-5.3p1-94.el6.x86_64
libcrypto.so.10(OPENSSL_1.0.1)(64bit) is needed by (installed) openssh-clients-5.3p1-94.el6.x86_64
libcrypto.so.10(libcrypto.so.10)(64bit) is needed by (installed) python-libs-2.6.6-52.el6.x86_64
libcrypto.so.10(libcrypto.so.10)(64bit) is needed by (installed) openssh-5.3p1-94.el6.x86_64
libcrypto.so.10(libcrypto.so.10)(64bit) is needed by (installed) openssh-clients-5.3p1-94.el6.x86_64
libssl.so.10()(64bit) is needed by (installed) python-libs-2.6.6-52.el6.x86_64
libssl.so.10()(64bit) is needed by (installed) libssh2-1.4.2-1.el6.x86_64
libssl.so.10()(64bit) is needed by (installed) git-1.7.1-3.el6_4.1.x86_64
libssl.so.10(libssl.so.10)(64bit) is needed by (installed) python-libs-2.6.6-52.el6.x86_64
Таким образом, я изменил OpenSSL .spec следующим образом:
# diff -u .openssl/openssl.spec openssl-1.0.1i/openssl.spec
--- .openssl/openssl.spec 2014-09-03 06:49:33.621688061 +0000
+++ openssl-1.0.1i/openssl.spec 2014-09-03 06:59:10.949636692 +0000
@@ -103,6 +103,9 @@
%install
rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/usr/lib64
+ln -sf /usr/lib64/libssl.so.1.0.0 $RPM_BUILD_ROOT/usr/lib64/libssl.so.10
+ln -sf /usr/lib64/libcrypto.so.1.0.0 $RPM_BUILD_ROOT/usr/lib64/libcrypto.so.10
make MANDIR=/usr/man MANSUFFIX=ssl INSTALL_PREFIX="$RPM_BUILD_ROOT" install
# Make backwards-compatibility symlink to ssleay
Внутри созданного пакет libssl.so.10 и libcrypto.so.10 существует:
# rpm -iqlp /rpmbuild/RPMS/x86_64/openssl-1.0.1i-1.x86_64.rpm | grep \.10
/usr/lib64/libcrypto.so.10
/usr/lib64/libssl.so.10
Но это не признается в качестве библиотеки должна быть предоставлена:
# rpm -qip --provides /rpmbuild/RPMS/x86_64/openssl-1.0.1i-1.x86_64.rpm
Name : openssl Relocations: (not relocatable)
Version : 1.0.1i Vendor: (none)
Release : 1 Build Date: Wed Sep 3 07:06:45 2014
Install Date: (not installed) Build Host: 4cc54f371b7a
Group : System Environment/Libraries Source RPM: openssl-1.0.1i-1.src.rpm
Size : 3705468 License: OpenSSL
Signature : (none)
Packager : Damien Miller <[email protected]>
URL : http://www.openssl.org/
Summary : Secure Sockets Layer and cryptography libraries and tools
Description :
The OpenSSL Project is a collaborative effort to develop a robust,
commercial-grade, fully featured, and Open Source toolkit implementing the
Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1)
protocols as well as a full-strength general purpose cryptography library.
The project is managed by a worldwide community of volunteers that use the
Internet to communicate, plan, and develop the OpenSSL tookit and its related
documentation.
OpenSSL is based on the excellent SSLeay library developed from Eric A.
Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
Apache-style licence, which basically means that you are free to get and
use it for commercial and non-commercial purposes.
This package contains the base OpenSSL cryptography and SSL/TLS
libraries and tools.
SSL
config(openssl) = 1.0.1i-1
libcrypto.so.1.0.0()(64bit)
libssl.so.1.0.0()(64bit)
openssl = 1.0.1i-1
openssl(x86-64) = 1.0.1i-1
модифицирующего LIBCOMPATVERSIONS = к LIBCOMPATVERSIONS = 10 в Makefile * не решает эту проблему. Итак, вопрос: «Как я могу сделать rpm сказать, что у него есть libssl.so.10 и libcrypto.so.10?»
Любые комментарии были бы оценены, спасибо.
- mmtsk
Спасибо за замечания, я думал, что мы не должны поместить каждый файл разделяет объект в Предоставляет поле. – mmtsk