Node.jsの古いバージョンをインストールするときに、Alpine apkが「満たされない制約」を報告するのはなぜですか?


1

古いバージョンの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ますか?

回答:


5

それは正しいです。残念ながら、4.4.4は使用できません。

独自のパッケージミラーおよびパッケージビルドを制御しない限り、パッケージバージョンを明示的に使用することは避け、使用中のAlpineリリースでパッケージシステムがそれを処理できるようにしてください。

Alpine 3.4では、4.6.0のみが利用可能です。Alpine 3.4 x86_64パッケージをオンラインでnodejs-ltsで検索

もしあなたがそのように傾いているなら、選択の特定のバージョンを構築するために変更するパッケージのソースがあります。

パッケージソースを確認する

AlpineにはWikiページ:Alpineパッケージの作成があります

「nodejs-lts」パッケージ名は廃止されることに注意してください。

offers = "nodejs-lts = $ pkgver"#後方互換性のために

replaces = "nodejs-current nodejs-lts"#後方互換性のためのnodejs-lts


とった。説明してくれてありがとう。これはFAQの良い候補です。
マシューアダムス

1
だから、バージョンを修正することはできませんか?不変のコンテナイメージを作成するには/
-WHITECOLOR

0

以下を使用して、以前のアルパインリリースの特定のバージョンを使用できます。その例はalia-lib-dev、アルパインエッジで1.1.7-r0に設定されますが、ここではアルパイン3.8から1.1.6-r0に強制されます。

apk add --no-cache --update-cache --repository http://nl.alpinelinux.org/alpine/v3.8/main alsa-lib-dev=1.1.6-r0
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.