Langkah-langkah Membina Pakej OpenSSl 1.1 dari Sumber
Berikut langkah lengkap untuk bina OpenSSL 1.1 shared libraries di Fedora.
Persedian mengikut distribusi
Fedora
bash
sudo dnf install perl-core perl-IPC-Cmd
Debian
bash
sudo apt install perl build-essential
Muat turun
bash
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 susun dengan opsyen no-shared
sebelum ini, pastikan direktori bersih:
bash
cd ~/Build/openssl-1.1.1w # contoh kalau ini source
make clean
Konfigurasi semula dengan opsyen ‘shared -fPIC’
Gunakan --prefix
supaya ia masuk ke /usr/local/openssl1.1
(tanpa mengganggu OpenSSL sistem):
bash
./config --prefix=/usr/local/openssl1.1 shared -fPIC
Opsyen penting:
shared
→ hasilkan.so
(shared objects).-fPIC
→ pastikan posisi independent (perlu untuk libraries dinamik, terutamanya apabila dipanggilJNI
).
Kompilasi dan pasang
bash
make -j$(nproc)
make test
sudo make install
Semak hasil
Selepas pasang, jalankan arahan berikut:
bash
sudo ls -l /usr/local/openssl1.1/lib | egrep 'ssl|crypto'
Anda patut nampak:
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:
bash
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
:
bash
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 penyediaan pakej telahpun dilakukan dengan betul.
Rujukan:
Kali terakhir dikemaskini: