Jadi saya membangun openssl
./config
make
sudo make install
sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`
Saya membuat ikal
./configure --with-ssl
make
make install
OpenSSL terlihat terpasang dengan benar:
openssl version
OpenSSL 1.0.1g 7 Apr 2014
namun curl menggunakan versi openssl lama (1.0.1f alih-alih 1.0.1g):
curl --version
curl 7.37.0 (x86_64-unknown-linux-gnu) libcurl/7.37.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 libssh2/1.4.3 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
bagaimana cara membuat ikal menggunakan versi baru?
Saya ingin mencoba versi terbaru, karena saya berkelahi dengan beberapa bug openssl / curl yang aneh # 1 # 2
Sunting: Saya juga mencoba ./configure --with-ssl=/usr/local/ssl/include/openssl
, tidak berhasil
Sunting2: Sejauh ini saya juga mencoba:
sudo ./configure --with-ssl --with-libssl-prefix=/usr/local/ssl
./configure --with-ssl=/usr/local/ssl
PKG_CONFIG_PATH=/usr/local/ssl/lib/pkgconfig ./configure
PKG_CONFIG_PATH=/usr/local/ssl/lib/pkgconfig ./configure --with-ssl
PKG_CONFIG_PATH=/usr/local/ssl/lib/pkgconfig ./configure --with-ssl=/usr/local/ssl/include/openssl
tidak berhasil ...
configure: error: OpenSSL libs and/or directories were not found where specified!
Silakan lihat edit saya - tidak ada kesalahan dengan--with-ssl=/usr/local/ssl/include/openssl
tetapi openssl lama digunakan. Opsi kedua mengkonfigurasi ikal tanpa HTTPSopenssl.pc
suatu tempat, Anda harus menunjukPKG_CONFIG_PATH
ke direktori di mana file itu berada (dan pastikan Anda telahpkg-config
menginstal, tentu saja).--with-ssl
tidak ada HTTPS, dengan--with-ssl
itu melempar kesalahanconfigure: error: OpenSSL libs and/or directories were not found where specified!
/usr/local/ssl
Apakah yang saya butuhkan untuk membangun curl 7.43 di ubuntu 15.04
sumber
curl
tidak bisa mendeteksi sayaopenssl
, jadi saya melakukan langkah-langkah yang tepat inilibssl-dev
dan itu bekerja seperti pesona!Apa yang saya temukan, ketika saya menjalani latihan yang sama, adalah bahwa ikal tidak dapat bekerja dengan openssl perpustakaan statis. Itu selalu mencari dinamis, tidak peduli apa yang saya lakukan, jadi akhirnya saya melakukan tiga hal yang bekerja untuk saya
Perintah terakhir dengan flag -V akan menampilkan versi openssl yang digunakan oleh curl. Saya telah menambahkan / usr / local / lib ke LD_LIBRARY_PATH untuk memastikan bahwa curl menggunakan versi libcurl yang tepat.
sumber
LD_LIBRARY_PATH
yang saya tambahkan ke bash_profile. Saya melakukan sesuatu yang serupa, tetapi alih-alih baris pertama, saya menggunakanexport CFLAGS=-fPIC; ./config shared
(tidak mengaktifkan-bagi). Untuk curl, saya menggunakan--with-ssl=/usr/local/ssl
meskipun path arg mungkin sudah berlebihan.Ini adalah jalan yang panjang dan sulit bagi saya. Jam dan jam (Anda tahu bagaimana itu). Inilah yang saya temukan:
Untuk Ubuntu 12.04 / 14.04 Anda harus menginstal secara manual openssl dan curl
Instal secara manual openssl 1.0.2g:
JIKA ANDA INGIN NGHTTP2 (opsional / direkomendasikan):
Instal curl secara manual:
Langkah Terakhir
Sekarang setelah Anda selesai, coba
$ curl --version
dan pastikan Anda melihat versi openssl yang benar di sana. Secara khusus openssl> = 1.0.2g (dan nghttp2 jika Anda memilihnya)kutipan: ikal opennssl
sumber
Setelah berjuang beberapa jam, saya berhasil mengaktifkan https dengan libcurl 7.38 di ubuntu 15.05
sumber
Saya berhasil mengkompilasi curl menggunakan pustaka OpenSSL statis. Ini adalah versi tl; dr:
OpenSSL
ikal
Bagian
LIBS="-ldl"
itu penting.sumber
Mengkompilasi openssl menggunakan konfigurasi default hanya menghasilkan pustaka statis , jadi, jika Anda ingin menggunakan pustaka statis di curl, Anda dapat melakukannya seperti ini:
LIBS="-ldl -lpthread" ./configure --disable-shared --prefix=/usr/local/curl --with-ssl=/usr/local/ssl
Saya mencari jawabannya dari sini .
CATATAN: mengikuti cara ini hanya menghasilkan perpustakaan statis ikal.
sumber
Saya biasanya mengikuti jawaban Jacksonkr, tetapi saya membutuhkan semua yang disebutkan di atas oleh orang lain bersama-sama:
--disable-shared
adalah opsional, kurasa, hanya saja aku membutuhkannyasumber