💨

apkで ERROR: unable to select packages:が出たときは

2022/08/02に公開

以前作ったDockerImageで作業していたら、phpのextensionが足りないせいでエラーが起きたため、apkで必要なパッケージを追記すればいけるでしょう、と思ったらそうではなかったので忘れないように記事化。

terminal
#4 5.036 ERROR: unable to select packages:
#4 5.099   so:libavif.so.14 (no such package):
#4 5.099     required by: php82-gd-8.2.0_beta1-r2[so:libavif.so.14]

特定のパッケージがどのレポジトリにあるのか確認する。

dockerでimageをビルドするときにログをよく見てみると、パッケージをどのレポから引っ張ってこようとしているのか確認できる。

terminal
#4 4.117 fetch https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
#4 4.642 fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
#4 4.736 fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz

このリンクからブラウザ上で、パッケージあるかなあと探しに行っても良いし、便利な検索サイトがあるのでそちらで下記の条件で絞り込んで期待したパッケージがあるのかチェックすれば良い。
https://pkgs.alpinelinux.org/packages?name=php81*&branch=edge&repo=community&arch=x86_64

どのレポジトリにあるのかわかったら、--repositoryオプションを使ってレポジトリを指定し、ほしいパッケージを引っ張ってくることができる。

Discussion