Meta-Installer
May 2, 2026
debian
development
packaging
This post is mostly so that future me can find my Debian package without having to ferret around on various laptop and other disks :)
I just set up (yet) another machine. My go-to OS these days is Debian 13, and there’s a certain subset of tools that
I always seem to set up. Previously I’ve tended to pop them in manually, or use a little bash script, but I thought
I’d have a go at making a meta-installer this time instead. I installed equivs (ironically not part of this
meta-installer as I would be using it very rarely I think), and then built the following ns-control file:
Source: dcminter-meta-installer
Maintainer: Dave Minter <dave@paperstack.com>
Section: misc
Priority: optional
Homepage: https://paperstack.com/meta-installer
Build-Depends: debhelper-compat (=13)
Package: dcminter-meta-installer
Architecture: any
Version: 1.0
Maintainer: dave@paperstack.com
Depends: avahi-daemon, sudo, ripgrep, git, curl, htop, unzip, zip, apt-file, awscli, direnv, vim, lshw
Description: Installs Dave's preferred set of basic tooling
The suite of tools that I like to have installed from scratch
on an otherwise fairly bare system (e.g. one installed from
netinst without a desktop etc.)
Note that there’s a newline at the end of that file which is required. Build that with the approprriate incantation:
equivs-build ns-control
That spits out the file dcminter-meta-installer_1.0_amd64.deb
and voila (or viola if you’re musically inclined) a suitable Debian package!
Installing it is as simple as:
sudo apt install ./dcminter-meta-installer_1.0_amd64.deb
Note that it’s important to put the path specifier on the front of the filename because otherwise the package
manager will think you’re trying to install a package with that name, rather than the contents of the file!
One of these days I will figure out the whole rigmarole around setting up a proper PPA repository and signing and so forth. More for the hell of it than anything, though, as downloading this file and running it is probably less work than actually adding an apt source!
The tools it installs
| What | Why? |
|---|---|
avahi-daemon |
Allows for local network resolution (Bonjour/ZeroConf) of the host name on the local network, and not installed by default in minimal Debian |
sudo |
More convenient access to the super-user role - though you can use su instead of course |
ripgrep |
A fast grep (file search) tool |
git |
I’m a developer, need I say more? |
curl |
Another part of the developer’s basic toolkit - wget is installed by default, but curl is generally more useful to me - not to mention that it’s the default loosey-goosey way of installing a lot of tooling these days |
htop |
Prettier than top and shows the load on the various cores |
unzip |
Just generally handy and often required by other installers |
zip |
Likewise handy and often required by other installers |
apt-file |
Very useful tool for identifying which package contains a given cli tool |
awscli |
Provides CLI access to the AWS cloud |
direnv |
A handy tool for managing environment variables |
vim |
My default console editor - tiny-vim and nano are installed by default |
lshw |
Tool for listing the installed hardware |
It’s a pretty neat suite of (free) tooling. I recommend them.
Other stuff
I apt remove tiny-vim in favour of vim (see above), and ensure that my .bashrc exports an EDITOR environment
variable pointing at vim (so I don’t have to do git commit messages in nano!)
Add authorized_keys in the .ssh directory. Then disable username/password logins via ssh.
Do a sudo usermod -a -G sudo dcminter to grant myself sudo rights (by adding myself as one of the sudo user group).
Probably do a dpkg-reconfigure tzdata to (interactively) set my timezone. As a Brit in Sweden I usually end up with
the timezone set to London, because most of the rest of my locale stuff is set to British preferences.
Add l and ll aliases to .bashrc (to correspond to ls -a and ls -al respectively). Not sure which OS I got this
habit from - probably Ubuntu?
Add the backports dependency to my Debian sources (so I can be on a reasonably stable version but still get nice things).
Setup the Docker package repo and install docker-ce etc, from that (because it’s usually much more up-to-date than what’s
available from the docker.io package).
Then, in a rather less generic mode, I might well do one or more of the following…
Install SDKMAN because I do a load of Java stuff and this is a nice way to manage different SDKs.
Install Rust.
Install Claude Code - controversial, but I’m getting a lot of value out of it at the moment.
Install all or part of the JetBRains suite of IDEs. They’re pretty good, and the price they charge is reasonable for the full suite, so I have a full license. I should probably experiment more with VSCode and Zed and things like that, but I’ve never been very excited by IDEs and editors…
Install Sublime Text - again, I have a license, it loads quickly on both Linux and Mac so I tend to use it as my default place for quick note-taking. Pretty good.