Ønsker du at bygge den seneste cURL fra kilden?
cURL, der leveres med operativsystemet, er muligvis ikke opdateret, og hvis du har brug for den nyeste version til et bestemt krav, skal du bygge fra kilden.
For nylig testede jeg HTTP/3 ved hjælp af cURL med standardversionen afsendt på CentOS, men det virkede ikke. BTW, der er mere du kan gøre med cURL.
[[email protected] ~]# curl --version curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.44 zlib/1.2.7 libidn/1.28 libssh2/1.8.0 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets [[email protected] ~]#
Den seneste cURL-version (7.67) understøtter dog HTTP/3. Så jeg havde kun én mulighed – byg fra kilden. Dette er blot ét eksempel; du har muligvis nogle andre krav.
Følgende eksempel er til 7.67 (senest som jeg skriver) på CentOS 8.x og Ubuntu 20.x. Men proceduren forbliver den samme for enhver anden version.
Indholdsfortegnelse
Forudsætning
Lad os få de nødvendige afhængigheder installeret.
- Opdater systemet. Selvom dette er valgfrit, foretrækker jeg at gøre det. Jeg har altid opdaterede installerede pakker.
yum update -y
- Installation af de nødvendige pakker
yum install wget gcc openssl-devel -y
wget https://curl.haxx.se/download/curl-7.67.0.tar.gz
- Udpak den downloadede gz-fil
gunzip -c curl-7.67.0.tar.gz | tar xvf -
Det ville oprette en ny mappe i den nuværende arbejdsmappe
Opbygning af cURL på CentOS/RHEL
Når du har downloadet og udtrukket den seneste cURL, er det tid til at bygge dem.
- Gå ind i den nyoprettede mappe efter udpakning
cd curl-7.67.0
- Konfigurer med SSL som nedenfor
./configure --with-ssl
- Du vil se output noget som nedenfor.
configure: Configured to build curl/libcurl: Host setup: x86_64-pc-linux-gnu Install prefix: /usr/local Compiler: gcc CFLAGS: -Werror-implicit-function-declaration -O2 -Wno-system-headers -pthread CPPFLAGS: LDFLAGS: LIBS: -lssl -lcrypto -lssl -lcrypto -lz curl version: 7.67.0 SSL: enabled (OpenSSL) SSH: no (--with-libssh2) zlib: enabled brotli: no (--with-brotli) GSS-API: no (--with-gssapi) TLS-SRP: no (--enable-tls-srp) resolver: POSIX threaded IPv6: enabled Unix sockets: enabled IDN: no (--with-{libidn2,winidn}) Build libcurl: Shared=yes, Static=yes Built-in manual: enabled --libcurl option: enabled (--disable-libcurl-option) Verbose errors: enabled (--disable-verbose) Code coverage: disabled SSPI: no (--enable-sspi) ca cert bundle: /etc/pki/tls/certs/ca-bundle.crt ca cert path: no ca fallback: no LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS: no (--enable-ldaps) RTSP: enabled RTMP: no (--with-librtmp) Metalink: no (--with-libmetalink) PSL: no (libpsl not found) Alt-svc: no (--enable-alt-svc) HTTP2: disabled (--with-nghttp2) HTTP3: disabled (--with-ngtcp2, --with-quiche) ESNI: no (--enable-esni) Protocols: DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP Features: SSL IPv6 UnixSockets libz AsynchDNS NTLM NTLM_WB HTTPS-proxy
make make install
Det vil tage et par sekunder at fuldføre, og når det er gjort; du kan bekræfte versionen for at sikre, at den er installeret korrekt.
Opbygning af cURL på Ubuntu
Jeg antager, at du har downloadet den seneste version som forklaret i forudsætningsafsnittet.
- Gå til mappen, hvor den downloadede cURL er udtrukket
- Installer afhængighederne
apt-get install -y binutils-common binutils make
- Hvis du ikke har ovenstående afhængigheder (binutils) installeret, kan du få følgende fejl.
configure: error: ar not found in PATH. Cannot continue without ar.
- Og det er tid til at bygge nu med kommandoen configure.
./configure --with-ssl
- Hvis ingen fejl fra ovenstående udførelse, så installer endelig med kommandoen make.
make make install
Det er alt!
Verifikation
Brug –version for at se versionsdetaljerne.
# curl --version curl 7.67.0 (x86_64-pc-linux-gnu) libcurl/7.67.0 OpenSSL/1.0.2k-fips zlib/1.2.7 Release-Date: 2019-11-06 Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: AsynchDNS HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL UnixSockets #
Konklusion
Ser du, det er nemt, når du har trinene. Jeg håber, at dette hjælper dig med at installere cURL fra kilden.
Nydt at læse artiklen? Hvad med at dele med verden?