AlmaLinux 10 is the latest major release of AlmaLinux. You can upgrade an AlmaLinux 9 VPS to it in place with ELevate, the AlmaLinux project's upgrade tool, which is based on Red Hat's Leapp. This guide covers what to check first, how to run the upgrade, and why a fresh install is often the safer choice.

This guide is for AlmaLinux 9, and for AlmaLinux 8, which upgrades to 9 first. It doesn't work for Rocky Linux (see below), and if your server runs cPanel you must use cPanel's own tool instead.

Do I need to upgrade now?

  • AlmaLinux 8 gets security updates until 31 May 2029.
  • AlmaLinux 9 gets security updates until 31 May 2032.
  • AlmaLinux 10 gets security updates until 31 May 2035.

So there's no rush. Upgrade when it suits you, and when the software you run supports AlmaLinux 10.

Our recommendation: reinstall if you can

A major upgrade replaces almost every package on your server. It usually works on a simple server, but it can fail part-way, and it can leave old AlmaLinux 9 packages behind. A fresh AlmaLinux 10 install is cleaner and more predictable: copy your data off the server, reinstall from the Reinstallation tab, set up your software again, then restore your data. See Reinstall your VPS with a different operating system. Reinstalling erases everything on your VPS, so make sure you have copies of everything first.

If your server runs cPanel

Don't use the steps in this guide on a cPanel server. cPanel says that running Leapp directly on a cPanel server will stop it working properly. cPanel has its own version of ELevate, which supports AlmaLinux 8 to 9 and AlmaLinux 9 to 10.

  • Managed cPanel VPS: please don't run an upgrade yourself. Open a support ticket and talk to us first.
  • cPanel on a Cloud VPS you manage yourself: follow cPanel's ELevate documentation. You need a valid cPanel licence and an up-to-date cPanel version. In short, you download cPanel's script, run a check that makes no changes, fix anything it reports, then start the upgrade:
    wget -O /scripts/elevate-cpanel https://raw.githubusercontent.com/cpanel/elevate/release/elevate-cpanel
    chmod 700 /scripts/elevate-cpanel
    /scripts/elevate-cpanel --check
    /scripts/elevate-cpanel --start
    cPanel says the upgrade takes 30 to 90 minutes and several reboots, your sites won't work properly during that time, and the script doesn't back up your server, so take a full backup first. Follow progress with /scripts/elevate-cpanel --log.

If your server runs Rocky Linux

ELevate no longer supports Rocky Linux. Support was dropped in November 2025, because the upgrade data Rocky Linux needs hasn't been contributed to the project. The Rocky Linux project itself doesn't support in-place upgrades between major versions, and only supports a fresh install. To move to Rocky Linux 10, or to AlmaLinux 10, reinstall from the Reinstallation tab.

Before you start

  • SSH access as root or as a user with sudo rights. If you're logged in as root, you can leave sudo off the commands.
  • A backup you can restore. A failed upgrade can leave your server unable to boot. If you have our VPS backup add-on, click Login To Panel on your VPS's management page and check you have a recent backup. If you don't have the add-on, you can add it with Upgrade/Downgrade in the left-hand menu, or copy your files and databases off the server yourself.
  • A processor that supports x86-64-v3. AlmaLinux 10 is built for x86-64-v3 processors by default, with a separate x86-64-v2 version for older ones. Check what your VPS supports:
    /lib64/ld-linux-x86-64.so.2 --help | grep supported
    If you see x86-64-v3 (supported, searched), you're fine. If only x86-64-v2 is marked as supported, don't go any further: the standard ELevate upgrade won't work, and the version that handles x86-64-v2 is still in development, so AlmaLinux doesn't recommend it for production servers. Open a support ticket if you're not sure what to do.
  • Enough free disk space. The upgrade downloads a full set of new packages. Check with df -h, and make sure you have several gigabytes free.
  • Time, at a quiet moment. Allow at least an hour. Your websites and services will be down during the upgrade, and you can't use SSH while the server is rebooting into the upgrade.
  • Third-party repositories. ELevate can upgrade packages from some well-known repositories, such as EPEL, Docker CE, PostgreSQL, MariaDB and nginx. Packages from other repositories can block the upgrade or be left behind.
  • One version at a time. AlmaLinux 8 goes to 9, then 9 goes to 10. You can't skip a version.
  • If you can, try the upgrade on a test server set up the same way first. AlmaLinux strongly recommends this.

Step 1: Update and reboot

ELevate needs a fully updated system:

sudo dnf update -y
sudo reboot

When you're back in, check your version with cat /etc/redhat-release.

Step 2: Install ELevate

sudo dnf install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
sudo dnf install -y leapp-upgrade leapp-data-almalinux

Step 3: Run the pre-upgrade check

sudo leapp preupgrade

This checks your server and makes no changes. It's normal for it to fail the first time. It writes a report to /var/log/leapp/leapp-report.txt. Open it with:

sudo less /var/log/leapp/leapp-report.txt

Each problem has a risk level. Problems marked inhibitor stop the upgrade, so you must fix them. To find them quickly:

sudo grep -i -A 12 "inhibitor" /var/log/leapp/leapp-report.txt

Step 4: Fix the inhibitors

The report explains each problem, and usually how to fix it. Common ones are:

  • Questions that need an answer. Leapp writes these to /var/log/leapp/answerfile. Answer each one with sudo leapp answer --section SECTION_NAME.confirm=True, using the section name given in the report.
  • AlmaLinux 8 to 9 only: AlmaLinux's guide gives these fixes for a firewalld setting and a disk check that usually block the upgrade:
    sudo sed -i "s/^AllowZoneDrifting=.*/AllowZoneDrifting=no/" /etc/firewalld/firewalld.conf
    sudo leapp answer --section check_vdo.confirm=True
  • Unsupported processor: see the x86-64-v3 check in Before you start.
  • Third-party packages or repositories: remove software you no longer need, or remove it now and install it again after the upgrade.

Run sudo leapp preupgrade again until there are no inhibitors left. Read any other high-risk items too, even though they won't stop the upgrade.

Step 5: Run the upgrade

sudo leapp upgrade

This downloads the AlmaLinux 10 packages and gets everything ready. When it finishes, reboot:

sudo reboot

The server starts into a special upgrade mode (ELevate-Upgrade-Initramfs), installs the new packages, then reboots again by itself. SSH doesn't work while this is happening. To watch, click Open Console on your VPS's management page. Don't reboot or power off the VPS while it's upgrading, even if it seems slow.

Step 6: Check the upgrade worked

Once you can log in again, run:

cat /etc/redhat-release
cat /etc/os-release
rpm -qa | grep el9
systemctl --failed

You should see AlmaLinux release 10. The rpm command lists AlmaLinux 9 packages that were left behind, usually from third-party repositories with no AlmaLinux 10 version. Remove the ones you don't need, and find AlmaLinux 10 versions of the ones you do. The full results are in /var/log/leapp/leapp-report.txt and /var/log/leapp/leapp-upgrade.log. Then check your websites and apps, and set up any third-party repositories again using each provider's instructions for AlmaLinux 10 or RHEL 10.

Upgrading from AlmaLinux 8

On AlmaLinux 8, follow Steps 1 to 6 to upgrade to AlmaLinux 9. The commands are the same, and the ELevate package for your version is chosen automatically. Check everything works, then follow the guide again to go from 9 to 10. Two upgrades in a row doubles the chance of something going wrong, so this is where a fresh AlmaLinux 10 reinstall is often the better option.

Troubleshooting

  • The pre-upgrade check keeps failing: read the full report, not just the summary. Each inhibitor has its own explanation and suggested fix. Fix them one at a time and run the check again.
  • The server doesn't come back after the upgrade reboot: click Open Console to see what it's doing. If the upgrade is still running, leave it to finish. If it has stopped at an error or an emergency shell, note the message. The logs are in /var/log/leapp/. If you can't fix it, restore your backup or reinstall.
  • You can't connect over SSH afterwards: log in with Open Console (see Use the web console to access your VPS), then check SSH with systemctl status sshd and your firewall with firewall-cmd --list-all.
  • A website or app stopped working: AlmaLinux 10 brings newer versions of PHP, Python and databases. Check the service with systemctl status SERVICE_NAME and its logs with journalctl -u SERVICE_NAME.

Related guides

Need help?

Our Cloud VPS plans are self-managed, so you're responsible for installing, securing and maintaining the software on your server. If something on our side isn't working, such as the network, or your VPS won't boot, open a support ticket. New to your VPS? Start with our Cloud VPS Getting Started Guide.

Was this answer helpful? 0 Users Found This Useful (0 Votes)