golangの日記

Go言語を中心にプログラミングについてのブログ

curl 8.4.0 ビルド手順

default-gray.png


「過去最悪」の脆弱性に対処した「curl 8.4.0」が公開 とのことで curl をビルド&インストールする。





環境

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.3 LTS"



ダウンロード

https://curl.se/download.html または https://github.com/curl/curl/releases からソースコードと asc ファイルをダウンロード

$ wget https://curl.se/download/curl-8.4.0.tar.gz
$ wget https://curl.se/download/curl-8.4.0.tar.gz.asc



検証

検証

$ gpg --verify curl-8.4.0.tar.gz.asc
gpg: assuming signed data in 'curl-8.4.0.tar.gz'
gpg: Signature made Wed 11 Oct 2023 02:40:25 PM JST
gpg:                using RSA key 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
gpg: Can't check signature: No public key

署名のチェックができないと言われたら RSA key を使ってインポートする

$ gpg --keyserver hkps://keyserver.ubuntu.com --recv-key 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
gpg: key 5CC908FDB71E12C2: public key "Daniel Stenberg <daniel@haxx.se>" imported
gpg: Total number processed: 1
gpg:               imported: 1

再び検証

gpg --verify curl-8.4.0.tar.gz.asc
gpg: assuming signed data in 'curl-8.4.0.tar.gz'
gpg: Signature made Wed 11 Oct 2023 02:40:25 PM JST
gpg:                using RSA key 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
gpg: Good signature from "Daniel Stenberg <daniel@haxx.se>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 27ED EAF2 2F3A BCEB 50DB  9A12 5CC9 08FD B71E 12C2


ビルド&インストール

展開して移動

$ tar zxvf curl-8.4.0.tar.gz
$ cd curl-8.4.0

ビルドとインストール( how to install curl and libcurl )

$ ./configure --with-openssl

$ make

# 長いのでテストは省略してもいいと思う
$ make test

$ sudo make install

バージョン確認でエラーになる

$ curl -V
curl: symbol lookup error: curl: undefined symbol: curl_easy_header

調べると libcurl4 を再インストールしろとのこと。

$ sudo apt reinstall libcurl4

$ curl -V
curl 8.4.0 (x86_64-pc-linux-gnu) ...

$ type curl
curl is /usr/local/bin/curl

アンインストールは sudo make uninstall です。ずっと curl を「シーユーアールエル」と頭の中で読んできたけど、正しくは「カール」というらしい。