cURL aus dem Quellcode kompilieren: Eine Anleitung
Möchten Sie die neueste Version von cURL direkt aus dem Quellcode erstellen? Häufig ist die vorinstallierte cURL-Version Ihres Betriebssystems nicht mehr aktuell. Wenn Sie jedoch die aktuellste Version für spezielle Anforderungen benötigen, ist die Kompilierung aus dem Quellcode unumgänglich.
Ein Beispiel hierfür ist die Nutzung von HTTP/3. Eine ältere cURL-Version wird diese Funktion nicht unterstützen. cURL bietet jedoch noch viel mehr Möglichkeiten.
Die Standardversion von cURL auf CentOS kann wie folgt aussehen:
[[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] ~]#
Die aktuellste Version, beispielsweise 7.67, unterstützt hingegen HTTP/3. In solchen Fällen bleibt oft nur der Weg, cURL selbst zu kompilieren. Das hier angeführte Beispiel ist nur eines von vielen; Ihre Gründe für eine Neukompilierung können variieren.
Die folgenden Anweisungen beziehen sich auf cURL Version 7.67 (zum Zeitpunkt der Erstellung dieses Textes) unter CentOS 8.x und Ubuntu 20.x. Das grundsätzliche Vorgehen bleibt jedoch für andere Versionen identisch.
Vorbereitungen
Zunächst installieren wir alle notwendigen Abhängigkeiten:
- Aktualisieren Sie Ihr System, um die aktuellsten Pakete zu erhalten.
yum update -y
- Installieren Sie die benötigten Pakete für die Kompilierung:
yum install wget gcc openssl-devel -y
wget https://curl.haxx.se/download/curl-7.67.0.tar.gz
- Extrahieren Sie das heruntergeladene Archiv:
gunzip -c curl-7.67.0.tar.gz | tar xvf -
Nach dem Entpacken wird ein neuer Ordner in Ihrem aktuellen Verzeichnis erstellt.
cURL auf CentOS/RHEL kompilieren
Nachdem Sie die neueste cURL-Version heruntergeladen und extrahiert haben, kann die Kompilierung beginnen.
- Wechseln Sie in den neu erstellten Ordner:
cd curl-7.67.0
- Konfigurieren Sie das Projekt mit SSL-Unterstützung:
./configure --with-ssl
- Die Ausgabe sollte in etwa so aussehen:
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
Die Kompilierung kann einige Sekunden dauern. Anschließend überprüfen Sie die Installation.
cURL auf Ubuntu kompilieren
Wir gehen davon aus, dass Sie die neueste cURL-Version wie im Abschnitt „Vorbereitungen“ heruntergeladen haben.
- Wechseln Sie in den Ordner, in dem cURL entpackt wurde.
- Installieren Sie die notwendigen Abhängigkeiten:
apt-get install -y binutils-common binutils make
- Sollten Sie die oben genannten Abhängigkeiten nicht installiert haben, könnte folgender Fehler auftreten:
configure: error: ar not found in PATH. Cannot continue without ar.
- Konfigurieren Sie nun das Projekt mit dem Befehl:
./configure --with-ssl
- Wenn keine Fehler auftreten, starten Sie die Installation:
make
make install
Das ist alles!
Überprüfung
Prüfen Sie die installierte Version mit dem Befehl:
# 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 #
Zusammenfassung
Wie Sie sehen, ist der Prozess der Installation von cURL aus dem Quellcode sehr einfach, wenn Sie die richtigen Schritte befolgen. Wir hoffen, diese Anleitung hilft Ihnen dabei.
Hat Ihnen dieser Artikel gefallen? Teilen Sie ihn gerne mit anderen!