I keep notes here. Most of these are related to travel, work, or books.
Updates, Apt versus Snap versus Flatpak
linuxQuestion: How can I Tell What Needs Updating Outside of APT (Ubuntu) #
Answer #
Written 100% by ChatGPT
This guide explains how to identify software on your Ubuntu system that does not get updated by apt, and how to check updates for each category.
1. APT-managed software (baseline) #
sudo apt update
apt list --upgradable
Anything listed here is handled by APT and updated with:
sudo apt upgrade
If something is not listed, it is managed elsewhere.
2. Snap-managed software #
Snaps are very common on modern Ubuntu and are not updated by APT.
List installed snaps #
snap list
Show pending snap updates #
snap refresh --list
Force snap updates #
sudo snap refresh
Executables under /snap/bin are snap-managed.
Examples:
- Chromium
- Firefox (on newer Ubuntu)
- VS Code
- Slack
3. Flatpak-managed software #
If Flatpak is installed, it is another parallel update system.
List Flatpak apps #
flatpak list
Update Flatpak apps #
flatpak update
APT has no visibility into Flatpak apps.
4. AppImage programs #
AppImages are completely unmanaged.
How to find them:
find ~ /opt -iname "*.AppImage" 2>/dev/null
Updating usually means:
- Downloading a new AppImage
- Or using
appimageupdate(if supported)
5. Manually installed software #
Check common manual install locations:
ls /opt
ls /usr/local/bin
Anything here is outside APT control.
6. Language-specific package managers #
These maintain their own ecosystems.
Python #
pip list --outdated
pipx list
Node.js #
npm -g outdated
Rust #
cargo install --list
Ruby #
gem outdated
APT does not manage any of these.
7. Firmware updates (fwupd) #
Firmware updates are handled separately:
fwupdmgr get-updates
This may include:
- BIOS / UEFI
- SSD firmware
- Thunderbolt controllers
8. Self-updating applications #
Some applications update themselves:
- Google Chrome
- Zoom
- Dropbox
- Steam
Check background update timers:
systemctl list-timers
9. Identify where programs come from #
which chromium firefox code slack docker python node
Interpretation:
/usr/bin→ likely APT/snap/bin→ Snap/usr/local/bin→ manual- Other paths → investigate
Mental Model #
Think in layers:
| Layer | Update mechanism |
|---|---|
| OS libraries | APT |
| Desktop apps | APT / Snap / Flatpak |
| Developer tools | Language managers |
| Portable apps | AppImage |
| Firmware | fwupd |
| Vendor apps | Self-updating |
Recommended maintenance routine #
apt list --upgradable
snap refresh --list
flatpak update
fwupdmgr get-updates
Stick to one or two ecosystems where possible to reduce update complexity.