Hey everyone,
I recently wanted to try out a new browser I've heard good things about called Zen. It's based on Firefox but focused on security and a distraction-free experience. Since I've named both my Qtile and Zsh configs "zen," I thought it was only fitting to give it a shot.
So, I went to the Zen Browser website and, to my disappointment, there was no official Debian package available. I'm not a fan of manual installations for larger applications if I can avoid it; I much prefer the clean installation, updating, and removal that a package manager provides.
So, I didn't do what any sane person would: walk away disappointed... No, I wrote a script to grab the latest binary release and build a .deb
package for me. Because of course I did. 🙂
New Repo: create-deb-scripts
After writing the script for Zen Browser, I realized there are a few other applications I use that also don't provide official .deb
files. This led me to create a new repository to house these little helper scripts.
Each script in this repository follows the same simple but effective process:
- Check Dependencies: It first ensures you have the necessary tools installed (
curl
,jq
,tar
,dpkg-deb
). - Fetch Latest Release: It uses the GitHub API to find the latest official release of the application.
- Download Binary: It downloads the correct tarball for Linux x86_64 systems.
- Build Package Structure: It creates a proper Debian package directory structure, placing the application files in
/opt/
, creating a wrapper script in/usr/local/bin/
so you can run it from anywhere, and adding icons and a.desktop
file for proper integration with your desktop environment. - Create
.deb
File: Finally, it usesdpkg-deb
to build the final.deb
package, which you can then install normally.
So far, I have scripts to create Debian packages for:
- Zen Browser: The privacy-focused web browser that started it all.
- Zed Editor: A high-performance, multiplayer code editor.
These packages should also work for Ubuntu and any other Debian-based distribution, though I've only tested them on my own setup.
If you have one that you think should be added to the repo, let me know!
As always, Michael Garcia a.k.a. TheCrazyGM