Blog

Pacman の multilib を sed で有効化する

March 29, 2020

タイトルの通りで、 Arch Linux の Docker イメージを AUR のビルド用にしたくて、 multilib を使う必要があったので方法を 探してみました。

まず試したのは patch だったのですが、初期インストール状態に含まれていないため、あまり慣れていない sed を使うことに しました。 調べてみると How to edit next line after pattern using sed? - StackExchange にちょうど ArchLinux 用の(こちらは mirrorlist の方ですが)回答がありました。 multilib レポジトリの有効化用に変更したコマンドは以下の通りです。

sed -e '/\[multilib\]/,/^$/{s/^#//}' /etc/pacman.conf

元のコマンド /\[multilib\]/,/^$/{//!s/^#//} には //! が入っていて、これで1行目を無視しているようなのですが、 これがどう動くのかは勉強不足で分かっていません……

とりあえず sed で思ったよりいろんなことができることが分かりました。