I’m Kayla, and I spend a silly amount of time tinkering on Linux. I’ve installed apps from stores, from package managers, and yep, from those mysterious tar.gz files. You know what? It’s not that scary. A few bumps, sure. But it’s doable, even on a sleepy Tuesday night. For an expanded walkthrough I put together elsewhere, see my companion piece here.
For context: I’m on Ubuntu 22.04 on a ThinkPad X1. At work, I use Fedora on a tiny NUC. I’ll share real examples I ran myself, plus what broke and how I fixed it.
Why use a tar.gz at all?
Sometimes the version in apt or dnf is old. Sometimes the app is new. A tar.gz can be faster than waiting. It can also be lighter than a full package. But it can be messy if you’re not careful.
Here’s the thing: most tar.gz installs fall into two groups:
- A prebuilt binary you can just move to a bin folder.
- Source code you build with “configure, make, make install.” If you’re new to that dance, Fedora’s own quick-docs offer a concise walkthrough in Installing software from source code :: Fedora Docs Site.
I’ll show both. If you want a broader perspective on software installation methods across different distros, check out Desktop Linux Reviews for practical walk-throughs and comparisons.
Need a refresher on all the little flags for tar and unzip utilities? I wrote a no-sweat breakdown right here that pairs neatly with this cheat sheet.
Quick cheat sheet (the moves I always reach for)
- Peek inside the file:
tar -tzf file.tar.gz | head - Extract to a safe place (I like ~/Downloads or /tmp):
tar -xzf file.tar.gz -C ~/Downloads - If it’s a single binary, move it into your PATH:
sudo mv app-binary /usr/local/bin/ - If it has source code (with configure/make), do:
./configure --prefix=/usr/local make -j"$(nproc)" sudo make install
If the command isn’t found after install, add this to your shell:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Real Example #1: Installing ripgrep (binary tar.gz)
I wanted the latest ripgrep (rg) because it searches super fast. The one in apt was behind. So I grabbed the tar.gz from the project’s release page.
What I did:
cd ~/Downloads
# I downloaded: ripgrep-13.0.0-x86_64-unknown-linux-gnu.tar.gz
tar -xzf ripgrep-13.0.0-x86_64-unknown-linux-gnu.tar.gz
cd ripgrep-13.0.0-x86_64-unknown-linux-gnu
sudo mv rg /usr/local/bin/
rg --version
Done. No build. No drama. I also moved the man page so “man rg” works:
sudo mkdir -p /usr/local/share/man/man1
sudo mv doc/rg.1 /usr/local/share/man/man1/
sudo mandb 2>/dev/null || true
What went wrong first try? I extracted the folder right in my home directory. It cluttered things. Now I always use “-C” to control where it goes.
Real Example #2: Building htop from source (classic “configure, make”)
I wanted a fresh htop with some new fields. The tar.gz had source code. For a more distro-agnostic primer on compiling and installing from source, How to Compile and Install Software From Source in Linux lays out the big picture with extra tips.
What I did on Ubuntu:
sudo apt update
sudo apt install build-essential autoconf automake pkg-config libncursesw5-dev
cd ~/Downloads
# I downloaded: htop-3.3.0.tar.gz
tar -xzf htop-3.3.0.tar.gz
cd htop-3.3.0
./autogen.sh 2>/dev/null || true # some releases need this
./configure --prefix=/usr/local
make -j"$(nproc)"
sudo make install
htop --version
My hiccup: “configure” failed the first time. It said it couldn’t find ncurses. The fix was to install libncursesw5-dev. After that, smooth sailing.
If you’re on Fedora:
sudo dnf groupinstall "Development Tools"
sudo dnf install ncurses-devel
Tip: keep the build folder. If “make uninstall” is supported, it will only work from that same folder.
Real Example #3: Hugo (binary tar.gz, simple and sweet)
I blog with Hugo. The “extended” build comes as a tar.gz. No compile. Just copy.
What I did:
cd ~/Downloads
# I downloaded: hugo_extended_0.128.0_Linux-64bit.tar.gz
tar -xzf hugo_extended_0.128.0_Linux-64bit.tar.gz
sudo mv hugo /usr/local/bin/
hugo version
It worked right away. I like when it’s that easy. I brewed tea while it ran. Didn’t even cool down.
My safe habits (learned the hard way)
Before I jump into the bullet-point routine, I keep a running list of broader Linux tips that help me avoid surprises—many of those nuggets are collected in this real-world tips and tricks roundup.
- Use -C so files don’t explode all over your home:
tar -xzf file.tar.gz -C /tmp - Check what’s inside first:
tar -tzf file.tar.gz | head - Read the README or INSTALL file in the folder. Yes, I know. But it helps.
- Prefer /usr/local for system-wide stuff. Use ~/.local for just you.
mkdir -p ~/.local/bin mv app ~/.local/bin/ - Keep a note of what you installed. I keep a little text file named “manual-installs.txt”. Not fancy, but it saves me.
Uninstall tricks (not perfect, but real)
- If you used “sudo make install,” sometimes you can run:
sudo make uninstallIt only works if the project supports it. Some do. Some don’t.
- If it was a single binary you moved, just remove it:
sudo rm /usr/local/bin/rg - For more control, I’ve used “stow” to track files, but that’s a longer chat. On a busy week, I just keep the folder and a note.
Tiny troubleshooting notes
- Command not found? Check PATH:
echo $PATH - Missing headers or libs? On Ubuntu, grab build-essential and common dev deps:
sudo apt install build-essential pkg-config - SSL errors with curl or wget? Update CA certs:
sudo apt install ca-certificates
Sometimes I’ll run:
file ./app-binary
ldd ./app-binary
to see what the binary needs. If it lists “not found,” I know which lib to install.
So, is tar.gz worth it?
Sometimes yes. I like that I’m not stuck waiting on a package repo. I don’t like the clean-up as much. But once you learn the steps, it feels simple. Almost boring. And boring is good for installs.
Honestly, the best test is this: can you get from download to “app –version” in five minutes? With ripgrep or Hugo, I can. With htop, it took longer, but I learned a bit. That trade felt fair.
If you’re still nervous, start with a binary tar.gz like ripgrep. Win one small battle first. Then the rest won’t feel so big.
If you ever want to see how varied and niche the tech community can be—people trade everything from kernel patches to quirky hardware mods in spaces built around their personal passions—you can drop into InstantChat’s Fetish room to lurk or chat; it’s a free, in-browser spot where even the kink-friendly crowd shares surprisingly useful script ideas and device hacks.
Speaking of local scenes you can tap into after you’ve finished your late-night compile session, if you happen to be around northern Ohio and want to socialize offline, the listings at One Night Affair’s Elyria backpage give you a quick glance at nearby meet-ups and personal ads, so you can line up a spontaneous hangout without spending an hour hunting through generic classifieds.
