QUIK TIP
QUIK TIP
» SOURCE-BASED INSTALL ATION
QUIK TIP
» MORE PACK AGING OPTIONS
Assembling a .DEB file by hand isn’t that difficult, just a little finicky. They consist of a text file (debianbinary) and two archives (control.tar. xz and data. tar.xz). A post on the Ubuntu Forums (https:// ubuntuforums. org/show thread.php?t= 910717) gives a great stepthrough of assembling a binary Debian package.
See how the control files are put together by opening an existing .DEB file. They’re archived with the ar command, so at the terminal the following will extract their contents: ar -x <package file>. Most desktop archive tools will open these as well.
The original install system was to download the source code, compile it and run it. Subsequent processes such as make install would place all the compiled resources in their proper locations. But another valuable method for building from source is by compiling the source packages. In Debian-based distros you can compile and install the programs from their source code using a command such as: sudo apt-src --build install <package name>
For Flatpaks, check out Flathub on GitHub (https:// github.com/ flathub). Browse some of the manifests for existing programs and how they’re constructed. Some are written in JSON, but it’s easy enough to read if you know your way around YAML.
If Debian and Flatpak formats aren’t to your taste, here’s some more resources you can explore to try your hand at packaging applications.
OUR EXPERT
For most people there’s little value in compiling these source packages. However, being able to compile software from source in general is a useful skill. And you don’t need to be a developer to do it. If you become comfortable with the old-school make ; make install process, the chances of you not being able to use a given program because it’s “not available” dwindles to almost nothing.
˃ alien: Available from the Ubuntu/Debian repos, it’ll convert Red Hatformat .rpm packages into .deb files that you can install.
Aaron Peters has spent well over 20 years exploring the Linux ecosystem, yet still needed to dig into how this whole packaging thing works.