#Что означает ошибка
Error: Transaction failed during almalinux-deploy
Миграция CentOS на AlmaLinux скриптом almalinux-deploy.sh может прерваться: нет места, конфликты сторонних пакетов, не найдены репозитории (особенно на CentOS 8 после EOL), неподдерживаемая версия или архитектура. Скрипт поддерживает переход на ту же мажорную версию (8→8, Stream 8→8). Для CentOS 7 нужен промежуточный шаг обновления.
Проверьте журнал скрипта и сделайте резервную копию.
Сначала исправьте блокирующие факторы.
Скрипт almalinux-deploy заменяет пакеты CentOS пакетами AlmaLinux. Ошибки возникают из-за недоступных старых репозиториев, неподдерживаемой версии или конфликтов сторонних пакетов.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Недоступны репозитории CentOS 8 | EOL. | Переключите на vault. |
| Сторонние пакеты | Конфликт. | Удалите. |
| Нехватка места | / или /var. | Освободите. |
| Версия не 8.x | Неподдерживаемо. | Обновите сначала. |
#Пошаговое решение
- Сделайте снимок или резервную копиюДо миграции CentOS или перехода между крупными версиями Enterprise Linux определите точный выпуск через
cat /etc/redhat-releaseи архитектуруuname -m. Учтите, что переход CentOS 7 → AlmaLinux 9 через ELevate требует двух последовательных поддерживаемых этапов: сначала до EL8, затем до EL9; инструментalmalinux-deployпредназначен не для произвольного обновления между крупными версиями. Сохраните полный образ сервера и базу данных отдельно, попробуйте восстановление на копии и получите доступ к консоли хостинга. Не запускайте случайный сценарий из интернета сразу на рабочем сервере. - Обновите систему и освободите местоСначала уточните дистрибутив и его текущую версию. Откройте штатный менеджер обновлений или используйте пакетный менеджер вашей системы; перед массовым обновлением на сервере сделайте резервную копию или снимок и проверьте совместимость.
- Для CentOS 8 переведите репозитории на vaultCentOS Linux 8 завершил поддержку и его старые рабочие зеркала могут быть недоступны. Прежде чем менять репозитории, выполните
cat /etc/centos-releaseи создайте снимок виртуальной машины или полный резервный образ системы. Если это именно CentOS Linux 8 (не CentOS Stream 8), обратитесь к официальной процедуре получения архивных пакетов из CentOS Vault для конкретной версии; вручную подменять URL в неизвестном.repoфайле без проверки подписей опасно. Если у вас Stream или другая ветка, этот шаг пропустите. - Запустите almalinux-deploy.shУтилита almalinux-deploy изменяет дистрибутив, основные пакеты и загрузочные компоненты; запускать её можно только на поддерживаемой исходной системе, при наличии полной резервной копии и доступа к консоли сервера. Откройте официальный репозиторий проекта AlmaLinux Migration Tool и сверяйте актуальную версию скрипта, контрольную сумму/подпись и перечень поддерживаемых исходных выпусков. Не используйте команду вида
curl URL | bashсо случайной ссылкой. Запускайте подтверждённый официальный сценарий в тестовой копии, прочитайте журнал и только затем планируйте переход боевого сервера с возможностью отката. - Проверьте os-release и distro-syncПосле миграции или после исправления ошибки входа сначала откройте консоль сервера и выполните
cat /etc/os-release. Система должна сообщать именно AlmaLinux ожидаемой основной версии, а не смешение пакетов CentOS/AlmaLinux. Проверьтеsudo dnf checkиrpm -q almalinux-release, затемsudo dnf repolistдля просмотра действующих репозиториев. Не выполняйте вслепуюdnf distro-sync: он может заменить или удалить несовместимые пакеты; сначала просмотрите планsudo dnf distro-sync --assumeno, сверяйте его с официальным руководством и резервной копией. Проверьте SSH, сеть, службы приложений и перезагрузку в согласованное окно. - Подтвердите результат миграции не только по названию ОСПосле контролируемого перехода и перезапуска проверьте
cat /etc/os-release,uname -r,sudo dnf check,systemctl --failedи работу всех критичных сервисов. Найденные остатки пакетов CentOS сначала исследуйте, не удаляйте массово. При отказе сети или загрузки откатывайтесь на проверенный снимок, а не перезапускайте сценарий миграции вслепую. - Только определение исходного выпуска и свободного местаLinux · Терминал (Bash)КомандаТолько определение исходного выпуска и свободного места. Выполнение загруженного сценария с правами root без проверки контрольной суммы, совместимости пути миграции и резервной копии опасно.
cat /etc/redhat-releaserpm -q centos-release almalinux-releasedf -h / /boot
#Если не помогло
Перед миграцией обязательно сделайте копию данных.
#Подготовка и запуск
Сделайте снимок ВМ или резервную копию. Обновите систему текущего релиза: sudo dnf update -y, перезагрузитесь. Освободите место (нужно несколько ГБ на / и /var). Скачайте скрипт с : curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh, sudo bash almalinux-deploy.sh. Журнал: /var/log/almalinux-deploy.log.
#Типичные ошибки
Для CentOS 8 после EOL предварительно переключите репозитории на vault.centos.org. Конфликты сторонних репозиториев: временно отключите EPEL, Remi, Docker (dnf --disablerepo), затем включите заново. Ошибки Package ... conflicts — удалите конфликтующий пакет (dnf remove) и повторите. Сообщение о версии/архитектуре: скрипт поддерживает x86_64 и aarch64. /boot заполнен — удалите старые ядра. Пакеты, оставшиеся от CentOS (centos-*), удаляются самим скриптом.
#После миграции и откат
Проверьте: cat /etc/os-release, dnf distro-sync -y, rpm -qa | grep -i centos. Установите актуальное ядро и перезагрузитесь. Отката встроенного нет: восстановление — из снимка. Если миграция остановилась на середине, не перезагружайтесь вслепую: изучите журнал, исправьте причину и перезапустите скрипт (он идемпотентен). Для CentOS 7 используйте для перехода 7→8→9 по шагам.
-y и загрузка/исполнение удалённого сценария не являются безопасным единым действием для производственного сервера.cat /etc/os-releaserpm -qa | grep -E "(centos|almalinux)-release"