Ketika saya menjalankan "openssl", saya mendapatkan pesan kesalahan seperti di bawah ini:
openssl: kesalahan saat memuat pustaka bersama: libcrypto.so.1.1: tidak dapat membuka file objek bersama: Tidak ada file atau direktori "
Ini terjadi setelah saya mencoba memperbarui OpenSSL sesuai dengan artikel ini
Apakah ada cara untuk memperbaikinya?
OS: CentOS 6.8 Server web: nginx / 1.10.2
Perbarui # 1:
[root@host ~]# yum info openssl
Installed Packages
Name : openssl
Arch : x86_64
Version : 1.0.1e
Release : 48.el6_8.3
Size : 4.0 M
Repo : installed
From repo : system-updates
Summary : A general purpose cryptography library with TLS implementation
URL : ***
License : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
: between machines. OpenSSL includes a certificate management tool and
: shared libraries which provide various cryptographic algorithms and
: protocols.
Available Packages
Name : openssl
Arch : i686
Version : 1.0.1e
Release : 48.el6_8.3
Size : 1.5 M
Repo : system-updates
Summary : A general purpose cryptography library with TLS implementation
URL : ***
License : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
: between machines. OpenSSL includes a certificate management tool and
: shared libraries which provide various cryptographic algorithms and
: protocols.
Jawaban:
Saya mengalami masalah yang sama setelah menginstal versi terakhir dari openssl 1.1.0c, saya menyelesaikan masalah menyalin file perpustakaan
libcrypto.so.1.1
,libcrypto.a
danlibssl.so
dari/usr/local/lib64
ke perpustakaan berbagi di/usr/lib64
.Setelah menyalin pustaka, Anda perlu membuat tautan simbolik.
Setelah membuat tautan simbolis yang membangun kembali cache ldconfig juga diperlukan:
sumber
Dengan versi asli OpenSSL Anda tahu cara menemukan lib bersama karena
/usr/lib64
termasuk dalam jalur pencarian tautan. Ketika Anda mengunduh dan mengompilasi salinan "lokal" OpenSSL, lib yang dibagikan ditempatkan/usr/local/lib64
secara default. Jadi Anda mungkin hanya perlu menambahkan direktori ini ke jalur pencarian linker, seperti ini (sebagai root):kemudian jalankan:
Saya yakin ini akan menyelesaikan masalah Anda.
sumber
sudo echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf
akan menghasilkan kesalahan "izin ditolak" karena bagian kedua dari perintah (file menulis) tidak dieksekusi sebagai root. Jika ini terjadi, cobasudo sh -c "echo '/usr/local/lib64' >> /etc/ld.so.conf.d/openssl.conf"
saja.Saya mendapatkan kesalahan ini menggunakan Termux di ChromeOS, yang menyebabkan program
npm
dannode
baris perintah macet.Menjalankan
pkg upgrade
memperbaiki masalah!sumber
Anda dapat menginstalnya kembali menggunakan
yum install -y openssl-devel
sumber
openssl-devel
bergantung pada paket yang dipanggilopenssl
. Ingat bahwa sudah lama saya tidak menyentuhyum
, jadi saya tidak bisa memverifikasi sintaks perintah untuk Anda.code
yum remove openssl yum remove openssl-devel yum clean allopenssl
, (dan tidakopenssl-devel
) harus menjadi awal yang baik.Apa yang dikatakan @benedict berhasil untuk saya. Namun Anda mungkin menemukan bahwa beberapa symlink mengarah ke versi yang lebih lama. Menjalankan
ls -l libcrypto*
dari / usr / libs akan menunjukkan kepada Anda tautan. Seperti pada contoh di bawah ini:Maka Anda ingin menghapus tautan yang ada terlebih dahulu dengan mengetik
sudo rm libcrypto.so
dan kemudian menyalin libcrypto.so.1.1 seperti yang disebutkan oleh @benedict. Akhirnya Anda dapat membuat tautan baru.sudo ln -s libcrypto.so.1.1 libcrypto.so
Semoga ini membantu.
sumber
The
libcrypto.so
milikopenssl-libs
paket. Jika Anda secara manual menghapus (dengan--nodeps
) paket ini atau merusaknya dengan memutakhirkannya, Anda akan kehilangan akses ke yum, wget, curl, ssh, dll. Jika sistem memiliki akses Internet, unduh perintahopenssl-libs
menggunakan/usr/bin/GET
. Sintaksnya akan terlihat seperti di bawah ini jika Anda mencoba mengembalikan versiopenssl-libs-1.0.2k-8.el7.x86_64
:Ini akan membuat
openssl-libs-1.0.2k-8.el7.x86_64.rpm
paket untuk Anda, Anda dapat menggunakan ini untuk menginstal ulang atau mengekstrak.so
file yang hilang .sumber
Saya mengalami masalah yang persis sama ... Saya telah menyelesaikannya dengan menjalankan perintah berikut.
ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
Ini akan membuat softlink dan Anda siap melakukannya.
sumber
Ini adalah solusi terbaik yang saya temukan di sekitar ... solusi lain yang disediakan di internet, tidak akan selamat dari sistem reboot;)
OS: Ubuntu 16.04
Komentari pengaturan direktori lib dan tambahkan jalur yang bagus
Setelah selesai mengedit, jalankan perintah ini:
Maka Anda akan memiliki pengaturan yang baik ketika Anda menjalankan:
ldd / usr / bin / openssl
Sebelum perbaikan ini:
Setelah perbaikan saya berikan:
sumber
Pada CentOS 7
libssl.so.1.1
berada di/usr/local/ssl/lib
.Jadi saya hanya perlu menambahkan jalur ini ke lokasi default, di mana loader dinamis mencari perpustakaan. Saya membuat file terpisah untuk biner openssl saya, bernama
openssl-1.1.1c.conf
, di/etc/ld.so.conf.d
folder:echo "/usr/local/ssl/lib" > /etc/ld.so.conf.d/openssl-1.1.1c.conf
Sekarang berhasil.
sumber
Setelah membangun dan menginstal open ssl openssl-1.1.0f, saya memperbaiki kesalahan yang sama untuk lib libssl.so.1.1 membuat tautan lunak:
ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
sumber