以前、上記のような記事を書いておりました。当時はAlpine:edge
で試していたわけですが、6月にAlpine 3.8が公開になってから試していなかったので、改めて試してみました。
# cat /etc/alpine-release 3.8.0 # knot knotc -V knotc (Knot DNS), version 2.7.0
おや、動作する・・・
今確認すると、<code>/lib/ld-musl-aarch64.so.1</code>
は1.1.19-r10
みたい。当時はedgeでやっていたので、たぶん1.1.18-r3
辺りではないかなーと推測されます。(当時のバージョンを忘れてしまいました)
1.1.19とほんの少しだけバージョンアップしているので、これが改善の結果なのかなと。userspace-rcu-dev
については、当時は0.10.0-r0
でしたが、3.8では0.10.1-r0
と、こちらも少しだけバージョンアップしています。
ということで、Alpine自体のバージョンアップで解決してしまいました。
分かるまでは、Alpineでglibcをbuildしたものを使って入れ替える、というイメージを公開している方が何人かいらっしゃるようで、そちらを参考に、今回のKnot DNSのbuildを検証しようと思ったのですが、ことごとくx86_64しかなかったため、結局AArch64環境で検証するために、glibcのbuildから行わなくてはならず、そこまでscratchするのはなー、とちょっとしり込みしているところでした。
ちなみに参考しようと思っていた、Dockerでglibcの人たちは以下のようなところになります。
sgerrand/alpine-pkg-glibc: A glibc compatibility layer package for Alpine Linux
frol/docker-alpine-glibc: Carefully crafted Alpine Docker image with glibc (~12MB)
自力解決は出来ませんでしたが、とりあえず問題が解消して良かったです。
今考えると、alpine:edge
だけでなく、3.7やそれ未満のバージョンでも確認するべきでしたね。