テクニカルプア

備忘録と若干の補足

pacman 5.1.0 の makepkg でのパッケージビルドが operation not permitted でコケる場合のワークアラウンド

pacman が 5.1.0 になった。 しかしながらこれに付属する makepkg でパッケージをビルドしようとすると、 /etc/makepkg.confBUILDDIR に指定しているディレクトリによっては Operation not permitted となってコケる場合がある。 事象としては https://bugs.archlinux.org/task/58790 のとおりで、すでにバグとして報告されているの為そのうち修正ないし対策はされると思う。

ところでいつ対応されるかわからん状況をただ待っているのはつらいという向きもあると思う。 わたしもその質である。 そんな中いろいろやっていたらワークアラウンドをみつけたので書いておくことにした。

内容は単純で /etc/makepkg.confBUILDDIR で設定しているディレクトリを makepkg する時に使用するユーザが所有するものに変更すればよい。 例えばログインユーザが hogehogefuga というグループに所属する場合、所有ユーザ及びグループが hoge:fugaディレクトリを BUILDDIR へ指定してやる。

わたしは普段 tmpfs としてマウントしている /ramdisk 内に scratch/ というディレクトリを tmpfiles で勝手に作られるようにし、/ramdisk/scratch//etc/makepkg.confBUILDDIR に設定している。 こいつは root:root0777ディレクトリであるため、今回の事象に引っかかってしまった。

今回のワークアラウンドでは /ramdisk/scratch/nosada/ というディレクトリを新たに作成して適当なユーザ及びグループに所有させるように tmpfiles へ設定を追加し、これを BUIILDDIR に設定するようにした。 これで pacman 5.1.0 の makepkg でもパッケージがいつもどおりビルドされるようになり、不安が解消されるに至った。

めでたし。