Команда разработчиков 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
см. также:
- 👥 Как добавлять и удалять пользователей в Alpine Linux
- 📦 Как найти версию пакета в системах Linux
- 🐧 Как удалить пакет / программное обеспечение Linux с помощью CLI