---
# System prepended metadata

title: 'curl, libcurl を manjaro linux でバージョンアップする手順'

---

# curl, libcurl を manjaro linux でバージョンアップする手順

## 背景

* curl の任意コード実行脆弱性のため、一応ローカルマシンのバージョンアップしたかった
    * https://curl.se/docs/CVE-2023-38545.html
* かなりやばそう
    * https://x.com/lyiase/status/1712004922995360106?s=20
        * > ・SOCK5にリダイレクトするHTTPサーバー ・細工したSOCKS5サーバー を用意することで、ヒープオーバーフローにより任意のコードが実行可能になる脆弱性なよう。

## 前提

* manjaro linux の pacman はデフォルトで manjaro linux 用のリポジトリに接続するので、arch linux 用のリポジトリには接続しない
* manjaro リポジトリは、arch のリポジトリの内容を2週間後くらいに反映することで動作安定をする戦略をとっている (delayed repository って言うっけ？)
* そのため、curl はまだ 8.4 が使えない

## 方針

* 仕方ないので一時的に manjaro から arch 用リポジトリに接続することにした
    * 本当にこれでよいかはわからん

## 対応内容

* 接続先を変更する
    * /etc/pacman.conf に設定が書いてあるので確認する
        * 自分の場合、 `Include = /etc/pacman.d/mirrorlist` となっていたので、この mirrorlist を編集する
    * ↓に arch 用ミラーが書いてあるので、1つでいいのでここから適当に選んで書き換える
        * https://archlinux.org/mirrorlist/all/https/
* パッケージデータベースの更新
    * sudo pacman -Syy
        * u を指定してないからローカルには同期されない
* curl, libcurl, そのた curl 関連をアップデートする
    * インストール対象確認
        * sudo pacman -Ss curl | grep installed
        * 8.3のはず
    * ↑をもとにインストールする
        * 自分の場合、sudo pacman -S curl libcurl-gnutls lib32-curl
    * インストール後のバージョン確認
        * sudo pacman -Ss curl | grep installed
        * 8.4のはず
* 接続先を manjaro リポジトリに戻す
    * /etc/pacman.d/mirrorlist を戻す
    * sudo pacman -Syy で同期する
    * pacman -Ss curl とかってすると、リポジトリ側が8.3であることが確認できる