Use do-release-upgrade to move Ubuntu to a new release. Use apt to update software inside the release you already have. That is the clean rule. Ubuntu’s own server upgrade guide uses sudo do-release-upgrade for moving between Ubuntu versions [source: Ubuntu].
TLDR: do-release-upgrade is the safer tool for jumping from Ubuntu 22.04 to 24.04, or from 23.10 to 24.04. apt update and apt upgrade are for normal package updates, like getting a newer Firefox build or kernel patch. Example: if a laptop has 2,100 packages and 5 third party PPAs, do-release-upgrade can pause, warn you, and disable risky sources before the big move. Doing the same by editing APT files by hand can turn a 45 minute job into a sad two hour cleanup.
Two tools. Two jobs.
Ubuntu upgrades can sound like soup.
There is apt update. There is apt upgrade. There is apt full-upgrade. Then there is do-release-upgrade.
They all sound like they should upgrade Ubuntu. Annoying, right?
But they are not the same.
- APT manages packages.
do-release-upgrademanages the whole release jump.
Think of APT as the mechanic who changes tires, oil, and brake pads. Think of do-release-upgrade as the person who moves your whole car to a new model year. Similar garage. Very different job.
What APT actually does
APT stands for Advanced Package Tool. It is the everyday workhorse on Ubuntu.
You use it like this:
sudo apt updatechecks what package versions are available.sudo apt upgradeinstalls safe upgrades.sudo apt full-upgradecan install or remove packages to finish upgrades.sudo apt install nginxinstalls a package.sudo apt remove vlcremoves a package.
APT is great. It is fast. It is boring in the best way.
But APT does not plan a full Ubuntu release upgrade by itself. It does not politely check your upgrade path. It does not read Ubuntu release rules for you. It does not manage all the messy bits that happen when moving from one Ubuntu version to another.
What do-release-upgrade does
do-release-upgrade is the official upgrade manager for Ubuntu releases.
It does a pile of checks before it starts breaking furniture.
- It checks if a new Ubuntu release is available.
- It confirms your upgrade path.
- It changes software sources for the new release.
- It disables many third party repositories.
- It checks free disk space.
- It warns about packages that may be removed.
- It runs upgrade steps in a controlled order.
- It keeps logs if things go sideways.
Honestly, it feels like the tool was built after years of users doing weird things with sources.list. Because yes, we have all been tempted.
The big mistake: editing APT sources by hand
Some users try this move:
- Open
/etc/apt/sources.list. - Replace
jammywithnoble. - Run
sudo apt update. - Run
sudo apt full-upgrade. - Hope the screen does not turn into a crime scene.
Can this work?
Sometimes. On very simple systems. With clean sources. With no weird PPAs. With no drivers. With luck.
Should you do it?
No, not for a normal Ubuntu system.
Manual APT release upgrades skip helpful checks. They can leave old packages behind. They can pull packages from the wrong place. They can mix old and new release files. That is how you get a system that boots, but feels cursed.
Expect to waste time on tiny errors like held packages, broken drivers, or a desktop that logs in to a black screen. It is not fun. It is not brave. It is just unpaid sysadmin cosplay.
When to use each command
Use this simple table.
| Task | Best tool | Example |
|---|---|---|
| Install security updates | apt |
sudo apt update && sudo apt upgrade |
| Install a new app | apt |
sudo apt install htop |
| Move from Ubuntu 22.04 LTS to 24.04 LTS | do-release-upgrade |
sudo do-release-upgrade |
| Move from Ubuntu 23.10 to 24.04 | do-release-upgrade |
sudo do-release-upgrade |
| Fix broken package installs | apt |
sudo apt --fix-broken install |
A safe release upgrade flow
Here is the simple path. Do this before a release upgrade.
- Back up your files. Yes, really.
- Install current updates with
sudo apt update. - Then run
sudo apt upgrade. - Reboot if a kernel update landed.
- Remove junk packages with
sudo apt autoremove. - Start the release upgrade with
sudo do-release-upgrade.
On a server, use tmux or screen. A lost SSH session during an upgrade is pure pain. It is the kind of pain that makes coffee taste like regret.
If you run an LTS release, you may not see the next LTS upgrade right away. Ubuntu often waits for the first point release before offering it to many LTS users. That helps dodge early upgrade bugs. Boring? Yes. Sensible? Also yes.
What about apt dist-upgrade?
This one confuses people.
apt dist-upgrade and apt full-upgrade can remove or install packages to complete upgrades. They are powerful. They are useful.
But they still work inside the package system. They do not replace do-release-upgrade.
So yes, do-release-upgrade may use APT behind the scenes. That does not mean you should skip the manager and drive the engine with a spoon.
Common user story
Meet Sam.
Sam has Ubuntu 22.04 LTS on a work laptop. It has Docker, VS Code, a graphics driver, and three PPAs. Sam wants Ubuntu 24.04 LTS.
If Sam uses apt by hand, the PPAs may still point to the old release. One may not support the new release at all. A graphics package may block the upgrade. Sam may spend Friday night reading error messages. Nobody wants that.
If Sam uses do-release-upgrade, the tool disables many third party sources, shows package changes, and gives Sam a chance to stop. It is still not magic. But it is a seatbelt.
Before you press Enter
Check three boring things first.
- Disk space: Have several GB free. More is better.
- Power: Plug in your laptop.
- Backups: Keep a copy away from the machine.
Also check PPAs. If you rely on a special app repo, see if it supports the target Ubuntu version. If not, remove it now. Future you will be less grumpy.
Best rule
Use APT for normal updates.
Use do-release-upgrade for Ubuntu release upgrades.
That one rule saves time. It prevents weird package mixes. It keeps the upgrade process closer to what Ubuntu expects. You still need backups. You still need patience. But you are using the right tool for the job, and that matters.
If you remember nothing else, remember this: APT updates the house. do-release-upgrade moves you to a new house.