Wie erstellt und installiert man die neueste cURL-Version unter CentOS und Ubuntu?

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!