pacman 5.1.0 の makepkg でのパッケージビルドが operation not permitted でコケる場合のワークアラウンド
pacman が 5.1.0
になった。
しかしながらこれに付属する makepkg
でパッケージをビルドしようとすると、 /etc/makepkg.conf
内 BUILDDIR
に指定しているディレクトリによっては Operation not permitted
となってコケる場合がある。
事象としては https://bugs.archlinux.org/task/58790
のとおりで、すでにバグとして報告されているの為そのうち修正ないし対策はされると思う。
ところでいつ対応されるかわからん状況をただ待っているのはつらいという向きもあると思う。 わたしもその質である。 そんな中いろいろやっていたらワークアラウンドをみつけたので書いておくことにした。
内容は単純で /etc/makepkg.conf
内 BUILDDIR
で設定しているディレクトリを
makepkg
する時に使用するユーザが所有するものに変更すればよい。
例えばログインユーザが hoge
で hoge
が fuga
というグループに所属する場合、所有ユーザ及びグループが hoge:fuga
なディレクトリを
BUILDDIR
へ指定してやる。
わたしは普段 tmpfs としてマウントしている /ramdisk
内に scratch/
というディレクトリを tmpfiles
で勝手に作られるようにし、/ramdisk/scratch/
を /etc/makepkg.conf
内 BUILDDIR
に設定している。
こいつは root:root
で 0777
なディレクトリであるため、今回の事象に引っかかってしまった。
今回のワークアラウンドでは /ramdisk/scratch/nosada/
というディレクトリを新たに作成して適当なユーザ及びグループに所有させるように
tmpfiles へ設定を追加し、これを BUIILDDIR
に設定するようにした。
これで pacman 5.1.0 の makepkg
でもパッケージがいつもどおりビルドされるようになり、不安が解消されるに至った。
めでたし。