Để làm việc trên một dự án cũ cũ, tôi cố gắng thiết lập cơ sở hình ảnh docker trên Ubuntu 20.04 bằng phiên bản cũ của curl 7.27.0
.
Vì vậy, tôi cài đặt curl từ các nguồn
ENV CURL_VERSION 7.27.0
CHẠY cd /tmp && \
wget "https://curl.se/download/curl-$CURL_VERSION.tar.gz" -O curl.tgz && \
tar -xvzf curl.tgz && \
cd curl-$CURL_VERSION && \
./configure --with-Secure-Transport --enable-libcurl-option && \
thực hiện && thực hiện cài đặt
Quá trình cài đặt thành công và có thể thấy rằng phiên bản curl như sau
curl 7.27.0 (x86_64-unknown-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0 ) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Giao thức: tệp dict ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Các tính năng: AsynchDNS IDN IPv6 Tệp lớn NTLM NTLM_WB SPNEGO SSL libz TLS-SRP
Chúng ta có thể thấy rằng các giao thức https
nằm trong danh sách các giao thức đang hoạt động.
Sau đó, một số lệnh khác chạy trên docker build chẳng hạn cập nhật apt-get
hoặc ldconfig
vân vân..
Sau đó, khi lệnh gọi curl tiếp theo được thực hiện sau đó, tôi gặp lỗi sau:
curl: (1) Giao thức "https" không được hỗ trợ hoặc bị vô hiệu hóa trong libcurl
Vì vậy, khi tôi kiểm tra lại phiên bản curl, tôi thấy điều này:
cuộn tròn 7.27.0 (x86_64-unknown-linux-gnu) libcurl/7.27.0 zlib/1.2.11
Giao thức: dict file ftp gopher http imap ldap pop3 rtsp smtp telnet tftp
Các tính năng: IPv6 Largefile libz
Có vẻ như một số giao thức đã bị vô hiệu hóa sau khi chạy cập nhật apt
hoặc ldconfig
và rằng phiên bản libcurl đã bị hạ cấp xuống cùng một phiên bản curl.
Tôi không thể hiểu tại sao điều này lại xảy ra và điều gì gây ra điều này. Vì vậy, câu hỏi của tôi là, làm thế nào tôi có thể ngăn một số giao thức bị vô hiệu hóa? hoặc libcurl lib bị hạ cấp? Ngoài ra, mặc dù, giải thích về những gì đã xảy ra?