Os RPMs são sempre divididos em áreas de interesse. Eles normalmente são nomeados:
<pkg>.<arch>
<pkg>-devel.<arch>
<pkg>-libs.<arch>
Em que <pkg>
seria openssl
e <arch>
i686
ou x86_64
. Existem outras arquiteturas, mas estas são as mais comuns em hardware AMD / Intel, então vamos nos ater apenas àquelas para esta discussão.
As ferramentas reais que compõem o software openssl
estão incluídas no RPM openssl.x86_64
. Observe como o nome deste RPM está de acordo com os padrões que mostrei acima?
As bibliotecas (.so) estão neste RPM, openssl-libs.x86_64
enquanto os arquivos de cabeçalho (.h) estão neste RPM, openssl-devel.x86_64
.
Portanto, seu problema é que você não instalou realmente a biblioteca ou os arquivos de cabeçalho para que seu pacote possa compilar e vincular-se ao pacote openssl
.
Tente isto:
$ yum search openssl | grep ^openssl
openssl-devel.i686 : Files for development of applications which will use
openssl-devel.x86_64 : Files for development of applications which will use
openssl-perl.x86_64 : Perl scripts provided with OpenSSL
openssl-pkcs11.x86_64 : A PKCS#11 engine for use with OpenSSL
openssl-static.i686 : Libraries for static linking of applications which will
openssl-static.x86_64 : Libraries for static linking of applications which will
openssl.x86_64 : Utilities from the general purpose cryptography library with
openssl-libs.x86_64 : A general purpose cryptography library with TLS
openssl-libs.i686 : A general purpose cryptography library with TLS
openssl098e.i686 : A compatibility version of a general cryptography and TLS
openssl098e.x86_64 : A compatibility version of a general cryptography and TLS
Agora, instale-os:
$ sudo yum install -y openssl-{devel,libs}
Uma vez instalado, você pode confirmar o conteúdo do openssl-libs
RPM:
$ rpm -ql openssl-libs | grep libssl.so
/usr/lib64/.libssl.so.1.0.2k.hmac
/usr/lib64/.libssl.so.10.hmac
/usr/lib64/libssl.so.1.0.2k
/usr/lib64/libssl.so.10
E se eu não souber o que o RPM deve instalar?
Essa é uma pergunta comum que eu vejo o tempo todo. A maioria das pessoas que são novas nas distribuições do Redhat, como Fedora / CentOS / RHEL, desconhecem a ferramenta de linha de comando repoquery
. Com esta ferramenta você pode consultar repositórios YUM remotos e procurar quais pacotes fornecem um determinado arquivo.
Então, no seu cenário:
$ repoquery -qf */libssl.so*
openssl-libs-1:1.0.2k-12.el7.x86_64
openssl-devel-1:1.0.2k-12.el7.x86_64
openssl098e-0:0.9.8e-29.el7.centos.3.i686
openssl-libs-1:1.0.2k-12.el7.i686
openssl-devel-1:1.0.2k-12.el7.i686
Podemos ver que o arquivo libssl.so*
está incluído em todos os RPMs acima. Então, com base no seu RPM existente, você provavelmente quer estes 2:
openssl-libs-1:1.0.2k-12.el7.x86_64
openssl-devel-1:1.0.2k-12.el7.x86_64
OBSERVAÇÃO: Lembre-se de que estou mostrando pacotes do CentOS 7.x, você está usando o AMI da Amazon, que é seu próprio pacote de marca do CentOS, então os nomes são um pouco diferentes, mas o processo que mostrei deve ser idêntico, independentemente disso.