Compile cURL dengan Dukungan HTTP/3 di Ubuntu dan Debian
Compile cURL dengan Dukungan HTTP/3 di Ubuntu dan Debian. Oke di tutorial ini saya akan sharing sedikit mengenai bagaimana cara install curl versi terbaru dengan dukungan HTTP/3. Sayangnya repository Ubuntu maupun Debian belum menyediakan curl dengan dukungan HTTP/3. Wajar, karena fitur ini sebenarnya masih tahap eksperimental. Namun jika kalian ingin mencobanya, kalian bisa compile curl dari source.
Install Dependensi
Pertama, kita install beberapa dependensi yang bisa kita dapatkan dari repository Ubuntu.
Patched OpenSSL
Kita akan compile openssl versi patched. Tidak diinstall ke sistem, hanya sebagai modul pendukung curl.
Modul ini juga dibutuhkan untuk dukungan HTTP/3 di curl.
Ini adalah dukungan HTTP/2 untuk curl.
Terakhir adalah install curl. Masih di direktori /tmp, download source code curl dari link berikut https://curl.haxx.se/download.html. Saat artikel ini ditulis, versi terbarunya adalah curl 7.67.0.
Oke mungkin sekian tutorial kali ini, semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.
Install Dependensi
Pertama, kita install beberapa dependensi yang bisa kita dapatkan dari repository Ubuntu.
sudo apt-get update
sudo apt install git zlib1g-dev libcunit1 libcunit1-dev libev-dev libc-ares-dev libxml2-dev libjansson-dev libjemalloc-dev libsystemd-dev libevent-dev libunwind-dev cython python3-dev python-setuptools -yNah, selanjutnya adalah instalasi modul modul yang tidak tersedia di repository, atau yang tersedia di repository namun terlalu jadul sehingga kita compile saja dari source.
Patched OpenSSL
Kita akan compile openssl versi patched. Tidak diinstall ke sistem, hanya sebagai modul pendukung curl.
cd /tmpNghttp3
git clone --depth 1 -b OpenSSL_1_1_1d-quic-draft-24 https://github.com/tatsuhiro-t/openssl
cd openssl
./config enable-tls1_3 --prefix=$PWD/build
make -j$(nproc)
make install_sw
Modul ini juga dibutuhkan untuk dukungan HTTP/3 di curl.
cd /tmpNgtcp2
git clone https://github.com/ngtcp2/nghttp3
cd nghttp3
autoreconf -i
./configure --prefix=$PWD/build --enable-lib-only
make -j$(nproc) check
make install
cd /tmp
git clone https://github.com/ngtcp2/ngtcp2
cd ngtcp2
autoreconf -i
./configure PKG_CONFIG_PATH=$PWD/../openssl/build/lib/pkgconfig:$PWD/../nghttp3/build/lib/pkgconfig LDFLAGS="-Wl,-rpath,$PWD/../openssl/build/lib"
make -j$(nproc) checkNghttp2
sudo make install
Ini adalah dukungan HTTP/2 untuk curl.
cd /tmpInstall cURL
git clone https://github.com/tatsuhiro-t/nghttp2.git
cd nghttp2
autoreconf -i
automake
autoconf
./configure
make -j$(nproc) check
sudo make install
Terakhir adalah install curl. Masih di direktori /tmp, download source code curl dari link berikut https://curl.haxx.se/download.html. Saat artikel ini ditulis, versi terbarunya adalah curl 7.67.0.
cd /tmp
https://curl.haxx.se/download/curl-7.67.0.tar.gz
tar -xzvf curl-7.67.0.tar.gz
cd curl-7.67.0
./configure PKG_CONFIG_PATH=/usr/lib/pkgconfig --libdir=/tmp/curl-7.67.0/lib/ --with-ssl=/tmp/openssl/build --with-nghttp3=/tmp/nghttp3/build --with-ngtcp2 --with-nghttp2 --enable-ares --enable-threaded-resolver --disable-static
make -j$(nproc) checkSelesai.
sudo make install
Oke mungkin sekian tutorial kali ini, semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.