1

Я пытаюсь установить более старую версию Node.js (4.4.4) на Alpine. Вот мои команды:

apk update
apk add nodejs-lts=4.4.4-r0

Когда я выполняюсь, я получаю сообщение об ошибке (выполняется от имени пользователя root, потому что я использую образ Docker Alpine:3.4):

/ # 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?

2 ответа2

4

Это правильно. К сожалению, 4.4.4 недоступен.

Вам следует избегать явного указания версий пакета, если вы не управляете собственным зеркалом пакета и сборками пакета, а разрешите системе пакетов обрабатывать ее для используемой версии Alpine.

Для Alpine 3.4 доступна только 4.6.0. Поиск Alpine 3.4 x86_64 онлайн-пакетов для nodejs-lts

Если вы так склонны, вот источник пакета, который нужно изменить, чтобы создать конкретную выбранную версию.

Просмотрите исходный код пакета

У Alpine есть вики-страница: Создание пакета Alpine.

Обратите внимание, что имя пакета 'nodejs-lts' устарело.

обеспечивает = "nodejs-lts = $ pkgver" # для обратной совместимости

replaceses = "nodejs-current nodejs-lts" # nodejs-lts для обратной совместимости

0

Вы можете использовать конкретную версию из предыдущего альпийского релиза, используя следующую, например, alia-lib-dev которая установлена в 1.1.7-r0 в альпийском крае, но здесь принудительно должна быть 1.1.6-r0 из альпийского 3.8:

apk add --no-cache --update-cache --repository http://nl.alpinelinux.org/alpine/v3.8/main alsa-lib-dev=1.1.6-r0

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .