記録は作業の証

鉄道とコンピュータ

netctl環境でpkgfile-update.serviceがfailする問題を直す

pkgfile

pkgfileはファイルを所有しているパッケージを高速に検索できるプログラムである。そのパッケージをインストールしていなくても検索できるため、システムにないコマンドが入力されたら候補となるパッケージを提案するフックが作られている。

参考:

pkgfile - ArchWiki

問題

このpkgfileはsystemdユニットファイルを持っており、システム起動時や一定間隔ごとにデータベースの更新処理を行う。データベースはインターネットからダウンロードしてくるため、ネットワーク設定が完了する前のタイミングではユニットがfailしてしまう。自分はネットワーク設定にnetctlを利用しているのだが、解決法が長いこと分からなかった。

解決法

pkgfile - ArchWikiではなくsystemd - ArchWikiのほうに解決法が書かれていた。

netctl環境でpkgfileを導入するには次のステップを踏まなければならない。

# pacman -Syu
# pacman -S pkgfile
# systemctl enable netctl-wait-online.service # <- これが必要
# systemctl enable pkgfile-update.timer