How to Install SQLite 3 on CentOS 9 Stream – Quick, Clean Steps
You’ll learn how to get the latest stable SQLite 3 straight from the package manager, what to do if the repo is missing, and a quick sanity check to make sure your install works.
Check Your Current Version
sqlite3 --version
If you see something like `3.7.15` or no output at all, you’re either on an old build or the binary isn’t installed yet. That’s a good reason to start here.
Enable the Base Repositories
CentOS 9 Stream ships with dnf as its package manager and already has everything you need in the default repos. Just make sure they’re enabled:
sudo dnf repolist
You should see `AppStream`, `BaseOS`, and maybe a few extras listed. If any of them are disabled, re‑enable with:
sudo dnf config-manager --set-enabled AppStream BaseOS
I’ve seen people accidentally disable the BaseOS repo when cleaning up after an old migration; that’s why I double‑check.
Install via DNF
The command is straightforward, but it’s good to know what it brings:
sudo dnf install sqlite
This pulls `sqlite-3.39.4-1.el9.x86_64` (or whatever the latest patch is). The package includes the runtime binary and the development headers (`sqlite-devel`) so you’re ready for any Python, PHP, or C projects that need to link against it.
Why this matters: installing from `dnf` guarantees dependencies are resolved and you get automatic updates when new SQLite releases hit the CentOS mirrors. No manual patching required unless you have a very specific use case.
Verify Installation
sqlite3 --version
You should see something like:
3.39.4 2022-07-18 13:12:21
If the version matches what `dnf` reported, you’re good to go.
Optional: Build from Source If You Need a Different Version
Sometimes you need a newer patch that hasn’t landed in the official repo yet. I ran into this when my Python web app required SQLite 3.40 for a specific pragma that was only available after a security fix.
sudo dnf groupinstall "Development Tools" sudo dnf install zlib-devel wget https://sqlite.org/2022/sqlite-autoconf-3400000.tar.gz tar xzf sqlite-autoconf-3400000.tar.gz cd sqlite-autoconf-3400000 ./configure --prefix=/usr/local make -j$(nproc) sudo make install
Afterward, clean the old binary path and point to the new one:
sudo mv /usr/bin/sqlite3 /usr/bin/sqlite3.old ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3 sqlite3 --version
You’ll see the newer number. Remember: building from source means you’re responsible for future updates unless you script it yourself.
Common Pitfalls
Wrong repo enabled
If `dnf install sqlite` says “No matching Packages found,” make sure BaseOS is active.
Missing development headers
Some applications will fail to compile if only the runtime binary is installed. Installing `sqlite-devel` solves that.
Path confusion after source build
Your system might still be pointing at `/usr/bin/sqlite3`. Double‑check the path if you’re seeing an older version.
That’s it—SQLite 3 is up and running on your CentOS 9 Stream box, ready for any project or script you throw its way. If something feels off, check the repo list first; that usually clears the mystery.