Blog/content/posts/2022/alpine-add-package-from-edge.md
2022-08-13 09:10:36 +03:00

2.5 KiB
Raw Blame History

title date draft tags
Установить пакет из edge в Alpine Linux 2022-07-31T15:38:09+03:00 false
linux
tips
alpine linux

Пердисловие

Стало мне необходимо обновить язык программирования Crystal до версии 1.5.0.

Имеем версию дистрибутива 3.16:

cat /etc/os-release
  NAME="Alpine Linux"
  ID=alpine
  VERSION_ID=3.16.0
  PRETTY_NAME="Alpine Linux v3.16"
  HOME_URL="https://alpinelinux.org/"
  BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"

Crystal 1.5.0 лежит в edge, а в Alpine Linux 3.16 на момент напиcания статьи версия пакета 1.4.1.

Добавляем новый репозиторий и устанавливаем (обновляем) пакет

Списки репозиториев хранятся в файле /etc/apk/repositories:

cat /etc/apk/repositories
  https://dl-cdn.alpinelinux.org/alpine/v3.16/main
  https://dl-cdn.alpinelinux.org/alpine/v3.16/community

Добавляем новый:

echo "@edge https://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories

Подробнее здесь - Repository pinning.

Можно указать ссылку на репозиторий через параметр --repository:

apk add librdkafka --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community

Проблемы

В моём случае всё не так просто, потому что необходимо обновить ещё llvm14-libs.

apk add crystal@edge
  ERROR: unable to select packages:
    so:libLLVM-14.so (no such package):
      required by: crystal-1.5.0-r0[so:libLLVM-14.so]

Устанавливаем:

apk add llvm14-libs --repository=https://dl-cdn.alpinelinux.org/alpine/edge/main
apk add crystal@edge
  (1/2) Upgrading crystal@edge (1.4.1-r0 -> 1.5.0-r0)
  (2/2) Purging llvm13-libs (13.0.1-r2)
apk add shards@edge
  (1/2) Installing yaml (0.2.5-r0)
  (2/2) Installing shards@edge (0.17.0-r0)
crystal -v
  Crystal 1.5.0 (2022-07-15)

  LLVM: 14.0.6
  Default target: x86_64-alpine-linux-musl