🐧 Как обновить Alpine Linux до последней версии

by itisgood

Команда разработчиков Alpine Linux анонсировала последний стабильный релиз Alpine Linux 3.15.0 24 ноября 2021 года.

Это пошаговое руководство покажет, как обновить Alpine Linux до последней доступной стабильной версии или версии rolling release.

Что нового в Alpine Linux 3.15?

Alpine Linux 3.15.0 – это первый релиз в стабильной серии v3.15.

В нем используется последняя версия ядра Linux 5.15 LTS.

Версия Alpine Linux 3.15.0 содержит множество важных обновлений и изменений.

Вот некоторые заметные изменения:

  • Модули ядра теперь сжимаются с помощью gzip.
  • Драйверы фреймбуфера были отключены в ядре и заменены на simpledrm.
  • qt5-qtwebkit и связанные с ним пакеты были удалены из-за отсутствия поддержки со стороны разработчиков.
  • Порт MIPS64 прекращен в использовании.

Другими значительными обновлениями являются:

  • llvm 12
  • nodejs 16.13 (LTS) / nodejs-current 17.0
  • postgresql 14
  • openldap 2.6
  • ruby 3.0
  • rust 1.56
  • openjdk 17
  • kea 2.0
  • xorg-server 21.1
  • GNOME 41
  • KDE Plasma 5.23 / KDE Applications 21.08 / Plasma Mobile Gear 21.10
  • Поддержка шифрования диска в программе установки
  • Поддержка модулей ядра вне дерева с помощью AKMS (по мотивам DKMS)
  • Начальная поддержка безопасной загрузки UEFI на x86_64

Команда разработчиков Alpine также объявила, что “sudo” будет заменен на “doas”.

Начиная с Alpine Linux 3.16, “sudo” будет перемещен в  community.

Теперь давайте обновимся до Alpine Linux 3.15 с более ранних версий.

Хотите верьте, хотите нет, но обновить Alpine Linux очень легко, быстро и просто.

Прежде чем продолжить обновление и модернизацию вашей Alpine Linux, сделайте резервную копию важных данных, которые вы не можете позволить себе потерять.

Обновление Alpine Linux

Давайте проверим текущую установленную версию Alpine Linux с помощью команды:

$ cat /etc/alpine-release

Пример вывода:

3.14.2

Как вы видите, текущая установленная версия Alpine Linux – 3.14.2

Давайте обновим ее до последней версии, т.е. версия Alpine Linux будет 3.15.0.

Далее обновите список доступных пакетов и обновите установленные пакеты до последних доступных версий, выполнив поочередно следующие команды Apk:

$ sudo apk update
$ sudo apk upgrade

В качестве альтернативы вы можете объединить обе команды в одну, как показано ниже:

$ sudo apk -U upgrade

или:

$ sudo apk --update-cache upgrade

Итак, мы обновили все установленные пакеты в Alpine Linux.

Пришло время начать обновление!

Alpine Linux доступен в двух редакциях, stable release и rolling release.

Сначала мы рассмотрим, как обновить Alpine Linux до стабильного выпуска.

1. Обновление Alpine Linux до последней стабильной версии

В этом разделе показано, как обновить Alpine 3.x.x до последней версии.

Я предполагаю, что в настоящее время у вас установлена версия 3.x.x.

1.1. Обновление репозиториев Alpine Linux

Отредактируйте файл /etc/apk/repositories с помощью команды:

$ sudo setup-apkrepos

Вам будет представлен список доступных зеркал и три варианта выбора.

Первый вариант – выбрать одно зеркало из списка.

Второй вариант – обнаружить и добавить самое быстрое зеркало из списка.

И третий вариант – отредактировать файл /etc/apk/repositories для обновления списка хранилищ.

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

Чтобы обновить репозитории, введите e и нажмите клавишу ENTER:

Available mirrors:
1) dl-cdn.alpinelinux.org
2) uk.alpinelinux.org
3) dl-4.alpinelinux.org
4) dl-5.alpinelinux.org
5) mirror.yandex.ru
.
.
.
53) mirror.kumi.systems
54) mirror.sabay.com.kh
55) alpine.northrepo.ca
56) alpine.bardia.tech
57) mirrors.ocf.berkeley.edu
58) mirrors.pardisco.co

r) Add random from the above list
f) Detect and add fastest mirror from above list
e) Edit /etc/apk/repositories with text editor

Enter mirror number (1-58) or URL to add (or r/f/e/done) [f]: e

Файл откроется в текстовом редакторе по умолчанию, т.е. vi.

Если вы задали другой $EDITOR в вашем $PATH, то файл откроется в этом редакторе.

Моим редактором по умолчанию является vi.

Вот исходное содержимое моего файла /etc/apk/repositories:

https://sjc.edge.kernel.org/alpine/v3.14/main
https://sjc.edge.kernel.org/alpine/v3.14/community

Измените номер версии 3.14 для отражения последней версии 3.15.

Для этого нажмите “i”, чтобы войти в режим вставки и обновить номер версии (т.е. 3.15), а затем нажмите ESC и введите :wq, чтобы сохранить файл и выйти.

После обновления номера версии файл должен выглядеть как показано ниже:

https://sjc.edge.kernel.org/alpine/v3.15/main
https://sjc.edge.kernel.org/alpine/v3.15/community

Если вы не знаете точный номер последней версии, просто замените v3.x на latest-stable, как показано ниже:

https://sjc.edge.kernel.org/alpine/latest-stable/main     
https://sjc.edge.kernel.org/alpine/latest-stable/community

Нажмите ESC и введите :wq, чтобы сохранить файл и выйти.

После выхода индексы хранилища будут обновлены автоматически.

Вы также можете сделать это вручную с помощью команды:

$ sudo apk update

Пример вывода:

fetch https://sjc.edge.kernel.org/alpine/latest-stable/main/x86_64/APKINDEX.tar.gz
fetch https://sjc.edge.kernel.org/alpine/latest-stable/community/x86_64/APKINDEX.tar.gz
v3.15.0-11-g233c924df0 [https://sjc.edge.kernel.org/alpine/latest-stable/main]
v3.15.0-11-g233c924df0 [https://sjc.edge.kernel.org/alpine/latest-stable/community]
OK: 15920 distinct packages available

1.2. Запустите обновление Alpine Linux

Теперь выполните следующую команду для обновления Alpine Linux до последней доступной стабильной версии:

$ sudo apk upgrade --available

Здесь используется флаг –available, чтобы заставить все пакеты обновиться, даже если они имеют одинаковые номера версий.

Пример вывода:

Upgrading critical system libraries and apk-tools:
(1/2) Upgrading musl (1.1.24-r10 -> 1.2.2-r7)
(2/2) Upgrading apk-tools (2.10.8-r0 -> 2.12.7-r3)
Executing busybox-1.31.1-r21.trigger
Continuing the upgrade transaction with new apk-tools:
(1/92) Replacing acct (6.6.4-r0 -> 6.6.4-r0)
(2/92) Upgrading busybox (1.31.1-r21 -> 1.34.1-r3)
Executing busybox-1.34.1-r3.post-upgrade
(3/92) Upgrading alpine-baselayout (3.2.0-r7 -> 3.2.0-r18)
Executing alpine-baselayout-3.2.0-r18.pre-upgrade
Executing alpine-baselayout-3.2.0-r18.post-upgrade
(4/92) Installing ifupdown-ng (0.11.3-r0)
(5/92) Upgrading libcrypto1.1 (1.1.1l-r0 -> 1.1.1l-r7)
.
.
.
(90/92) Upgrading wget (1.20.3-r1 -> 1.21.2-r2)
(91/92) Purging libtls-standalone (2.9.1-r1)
(92/92) Purging libgcc (9.3.0-r2)
Executing busybox-1.34.1-r3.trigger
Executing kmod-29-r2.trigger
Executing ca-certificates-20191127-r7.trigger
Executing mkinitfs-3.6.0-r0.trigger
==> initramfs: creating /boot/initramfs-virt
Executing syslinux-6.04_pre1-r9.trigger
/boot is device /dev/vda1
OK: 131 MiB in 91 packages

Наконец, перезапустите все службы, которые были обновлены, и перезагрузите систему, выполнив следующие команды:

$ sudo sync
$ sudo reboot

После входа в систему проверьте, обновлен ли Alpine Linux до последней версии:

$ cat /etc/alpine-release 
3.15.0

Проверьте версию запущенного ядра:

$ uname -r
5.15.4-0-virt

2. Конвертация стабильной версии Alpine Linux в rolling release

Некоторые из вас возможно могут захотеть преобразовать стабильную версию Alpine Linux в rolling development edition под названием edge.

Для этого отредактируйте файл /etc/apk/repositories командой:

$ sudo setup-apkrepos

Введите “e” и нажмите ENTER, чтобы отредактировать файл репозитория.

Измените номер версии на edge:

https://sjc.edge.kernel.org/alpine/edge/main         
https://sjc.edge.kernel.org/alpine/edge/community

Сохраните файл и выйдите.

Обновите индекс пакетов и начните обновление со стабильной версии Alpine Linux до версии rolling release, выполнив следующую команду:

$ sudo apk upgrade --update-cache --available

или,

$ sudo apk upgrade -U -a

После завершения задачи обновления перезагрузите систему:

$ sudo sync
$ sudo reboot

Проверьте версию и ядро Alpine Linux.

3. Обновление с Alpine Linux 2.x до Alpine Linux 3.x

Некоторые из вас, возможно, все еще используют Alpine Linux версии 2.x.x.

Если это так, то в этой части мы объясним, как обновить Alpine Linux 2.x до последней версии 3.x.

Прежде всего, обновите репозитории и обновите все установленные пакеты в вашей системе Alpine:

$ sudo apk update
$ sudo apk upgrade

Затем установите статически связанные версии busybox и apk-tools.

Это следует сделать до обновления системы, так как старая версия musl перестанет работать после изменения libc.

$ sudo apk add busybox-static apk-tools-static

Вывод:

fetch https://sjc.edge.kernel.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch https://sjc.edge.kernel.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
(1/2) Installing apk-tools-static (2.10.1-r0)
(2/2) Installing busybox-static (1.28.4-r3)
Executing busybox-1.28.4-r3.trigger
OK: 148 MiB in 80 packages

Далее измените репозитории, как показано в разделе 1.1. Раздел “Обновление репозиториев Alpine Linux”.

Перед выполнением фактического обновления рекомендуется смоделировать процесс обновления, чтобы заранее найти проблемы:

$ sudo apk.static upgrade --no-self-upgrade --available --simulate

Если ошибок нет, выполните следующую команду для обновления Alpine Linux 2.x до версии 3.x:

$ sudo apk.static upgrade --no-self-upgrade --available

После завершения процесса обновления перезапустите все обновленные службы и перезагрузите систему:

$ sudo sync
$ sudo reboot

см. также:

 

You may also like

Leave a Comment