Langkah-langkah Membina Pakej OpenSSl 1.1 dari Sumber
Persedian mengikut distribusi
Fedora
sudo dnf install perl-core perl-IPC-Cmd
Debian
sudo apt install perl build-essential
Java/JVM dan libhadoop.so
lebih selesa guna shared .so
.
Berikut langkah lengkap untuk bina OpenSSL 1.1 shared libraries di Fedora:
wget -P ~/Downloads https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz
cd Build
tar -xvf ~/Downloads/openssl-1.1.1w.tar.gz
Bersihkan build lama
Kalau anda sudah compile dengan no-shared
sebelum ini, pastikan direktori bersih:
cd ~/Build/openssl-1.1.1w # contoh kalau ini source
make clean
Konfigurasi semula dengan shared -fPIC
Gunakan --prefix
supaya ia masuk ke /usr/local/openssl1.1
(bukan kacau OpenSSL sistem):
./config --prefix=/usr/local/openssl1.1 shared -fPIC
Opsyen penting:
shared
→ hasilkan.so
(shared objects).-fPIC
→ pastikan posisi-independen (perlu untuk dynamic libraries, terutamanya bila dipanggil JNI).
Kompilasi dan pasang
make -j$(nproc)
make test
sudo make install
Semak hasil
Selepas install, anda patut nampak:
sudo ls -l /usr/local/openssl1.1/lib | egrep 'ssl|crypto'
Output dijangka:
libcrypto.a
libcrypto.so -> libcrypto.so.1.1
libcrypto.so.1.1
libssl.a
libssl.so -> libssl.so.1.1
libssl.so.1.1
Beritahu sistem lokasi lib
Tambah /usr/local/openssl1.1/lib
dalam runtime linker path:
echo "/usr/local/openssl1.1/lib" | sudo tee /etc/ld.so.conf.d/openssl-1.1.conf
sudo ldconfig
Export environment variables (untuk Hadoop/YARN)
Letak dalam /etc/profile.d/hadoop.sh
atau .zshrc
pengguna servis:
export PATH=/usr/local/openssl1.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/openssl1.1/lib:$LD_LIBRARY_PATH
Uji versi
Pastikan binari dan library digunakan betul-betul dari /usr/local/openssl1.1
:
which openssl
openssl version -a
sudo ldd $HADOOP_HOME/bin/container-executor | grep -E 'ssl|crypto'
Jika libssl.so.1.1
dan libcrypto.so.1.1
dipanggil dari /usr/local/openssl1.1/lib
, maka setup betul