質問: 古いバージョンのnode.jsをインストールすると、alpine apkが「満足できない制約」を報告するのはなぜですか? 古いバージョンのnode.js(4.4.4)をalpineにインストールしようとしています。これが私のコマンドです:apk update apk add nodejs-lts=4.4.4-r0 実行すると、エラーが発生します(alpine:3.4 dockerイメージを使用しているため、rootとして実行しています)。/ # apk update fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/apkindex.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/apkindex.tar.gz v3.4.6-64-gd029d25 [http://dl-cdn.alpinelinux.org/alpine/v3.4/main] v3.4.6-33-g38ef2d2 [http://dl-cdn.alpinelinux.org/alpine/v3.4/community] ok: 5977 distinct packages available / # apk add nodejs-lts=4.4.4-r0 error: unsatisfiable constraints: nodejs-lts-4.6.0-r0: breaks: world[nodejs-lts=4.4.4-r0] 特定の古いバージョンのパッケージをapkにインストールするにはどうすればよいですか?
回答: それは正しいです。残念ながら、4.4.4は使用できません。独自のパッケージミラーとパッケージビルドを制御しない限り、パッケージバージョンを明示的にしないでください。使用中のアルパインリリース用にパッケージシステムで処理できるようにしてください。alpine 3.4の場合、使用できるのは4.6.0のみです。 nodejs-ltsのオンラインalpine 3.4 x86_64パッケージを検索 あなたがそうしたいと思っているなら、ここにパッケージのソースがあり、選択した特定のバージョンをビルドするために変更します。 パッケージソースを確認 アルパインにはwikiページがあります: アルパインパッケージの作成 。「nodejs-lts」パッケージ名は廃止されていることに注意してください。 extends = "nodejs-lts = $ pkgver"#後方互換性のため replaces = "nodejs-current nodejs-lts"#下位互換性のためのnodejs-lts