Möchten Sie die neueste cURL-Version aus dem Quellcode erstellen?
das mit dem Betriebssystem ausgelieferte cURL ist möglicherweise nicht auf dem neuesten Stand, und wenn Sie die neueste Version für eine bestimmte Anforderung benötigen, müssen Sie sie aus dem Quellcode erstellen.
Kürzlich habe ich HTTP/3 mit cURL in der standardmäßig ausgelieferten Version unter CentOS getestet, aber das hat nicht funktioniert. Übrigens gibt es noch mehr, was Sie mit cURL machen können.
[root@lab ~]# 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
Protokolle: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet <a href="https://geekflare.com/tftp-servers-for-windows/">tftp</a>
Merkmale: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
[root@lab ~]#
Die neueste cURL-Version (7.67) unterstützt jedoch HTTP/3. Ich hatte also nur eine Möglichkeit – aus dem Quellcode bauen. Dies ist nur ein Beispiel; vielleicht haben Sie andere Anforderungen.
Das folgende Beispiel gilt für 7.67 (die neueste Version, die ich gerade schreibe) auf CentOS 8.x und Ubuntu 20.x. Die Vorgehensweise bleibt jedoch für jede andere Version gleich.
Voraussetzung
Lassen Sie uns die erforderlichen Abhängigkeiten installieren.
- Aktualisieren Sie das System. Obwohl dies optional ist, ziehe ich es vor, dies zu tun. Ich habe immer aktuelle Pakete installiert.
yum update -y
- Installieren Sie die erforderlichen Pakete
yum install wget gcc openssl-devel -y
- Laden Sie den neuesten cURL-Quellcode herunter – Sie können die offizielle Download-Seite besuchen, um die neueste Version zu erfahren.
wget https://curl.haxx.se/download/curl-7.67.0.tar.gz
- Entpacken Sie die heruntergeladene
gz-Datei
gunzip -c curl-7.67.0.tar.gz | tar xvf -
Es wird ein neuer Ordner im aktuellen Arbeitsverzeichnis erstellt
CURL auf CentOS/RHEL erstellen
Nachdem Sie das neueste cURL heruntergeladen und extrahiert haben, ist es an der Zeit, es zu bauen.
- Gehen Sie nach dem Entpacken in den neu erstellten Ordner
cd curl-7.67.0
- Konfigurieren Sie mit SSL wie folgt
./konfigurieren --mit-ssl
- Sie werden eine Ausgabe wie die folgende sehen.
configure: Konfiguriert, um curl/libcurl zu bauen:
Host-Setup: x86_64-pc-linux-gnu
Installationspräfix: /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: aktiviert (OpenSSL)
SSH: no (--with-libssh2)
zlib: aktiviert
brotli: no (--with-brotli)
GSS-API: no (--with-gssapi)
TLS-SRP: no (--enable-tls-srp)
resolver: POSIX threaded
IPv6: aktiviert
Unix-Sockets: aktiviert
IDN: nein (--with-{libidn2,winidn})
Build libcurl: Shared=yes, Static=yes
Built-in manual: aktiviert
--libcurl Option: aktiviert (--disable-libcurl-option)
Verbose errors: aktiviert (--disable-verbose)
Code coverage: deaktiviert
SSPI: nein (--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: aktiviert
RTMP: no (--with-librtmp)
Metalink: nein (--mit-libmetalink)
PSL: nein (libpsl nicht gefunden)
Alt-svc: nein (--enable-alt-svc)
HTTP2: deaktiviert (--with-nghttp2)
HTTP3: deaktiviert (--with-ngtcp2, --with-quiche)
ESNI: nein (--enable-esni)
Protokolle: DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP
Funktionen: SSL IPv6 UnixSockets libz AsynchDNS NTLM NTLM_WB HTTPS-Proxy
- Installieren wir sie
make
make install
Es dauert ein paar Sekunden, bis der Vorgang abgeschlossen ist. Danach können Sie die Version überprüfen, um sicherzustellen, dass sie erfolgreich installiert wurde.
CURL auf Ubuntu erstellen
Ich gehe davon aus, dass Sie die neueste Version, wie im Abschnitt Voraussetzungen beschrieben, heruntergeladen haben.
- Gehen Sie in den Ordner, in den das heruntergeladene cURL extrahiert wurde
- Installieren Sie die Abhängigkeiten
apt-get install -y binutils-common binutils make
- Wenn Sie die oben genannten Abhängigkeiten (binutils) nicht installiert haben, erhalten Sie möglicherweise die folgende Fehlermeldung.
configure: Fehler: ar nicht in PATH gefunden. Kann ohne ar nicht fortfahren.
- Und jetzt ist es an der Zeit, mit dem Befehl
configure
zu bauen.
./configure --mit-ssl
- Wenn bei der obigen Ausführung kein Fehler auftritt, installieren Sie abschließend mit dem make-Befehl.
make
make install
Das war’s schon!
Überprüfung
Verwenden Sie --version
, um die Versionsangaben zu sehen.
# 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
Protokolle: 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
#
Fazit
Sie sehen, es ist ganz einfach, wenn Sie die Schritte kennen. Ich hoffe, dies hilft Ihnen bei der Installation von cURL aus dem Quellcode.