mirror of
https://github.com/foo-dogsquared/wiki.git
synced 2025-01-31 07:57:57 +00:00
aea7015cd5
Apparently, the convention (at least starting from 2018) is to make the keywords and block names to be in lowercase as stated from one of the following discussions at https://orgmode.org/list/87tuuw3n15.fsf@nicolasgoaziou.fr/. The files was updated with a one liner of shell. However, this is Emacs and org-mode does have an API to let you do stuff in your config and interact with the documents internally so it is not an elegant solution in any way.
34 lines
2.7 KiB
Org Mode
34 lines
2.7 KiB
Org Mode
#+title: Software packaging
|
|
#+author: "Gabriel Arazas"
|
|
#+email: "foo.dogsquared@gmail.com"
|
|
#+date: "2020-09-13 19:42:06 +08:00"
|
|
#+date_modified: "2020-09-14 00:15:26 +08:00"
|
|
#+language: en
|
|
#+options: toc:t
|
|
#+property: header-args :exports both
|
|
|
|
|
|
I've been dabbling with software packaging for a few days (as of 2020-09-13) and all I can say that it is a rewarding experience having to know different tools (e.g., build systems, version control systems).
|
|
It even made me comfortable in exploring the source code of several projects unlike before.
|
|
|
|
One of the most boring yet vital parts of maintaining a distribution (e.g., [[http://www.debian.org/][Debian]], [[http://archlinux.org/][Arch Linux]], [[https://www.freebsd.org/][FreeBSD]], [[https://www.microsoft.com/software-download/windows10][Windows 10]]) is software packaging.
|
|
It allows for a more convenient software management process for the users and make the operating system more usable with more software readily available.
|
|
As a consequence, derived distros can take advantage of the already existing package ecosystem of its parent distro (Ubuntu with Debian's package list, for instance).
|
|
|
|
What makes Linux more comfortable to work with is how most of its distribution integrates package management within its users.
|
|
[fn:: Windows is starting to catch up with its [[https://github.com/microsoft/winget-cli/][official package manager]] (along with others such as [[https://scoop.sh/][Scoop]] and [[https://chocolatey.org/][Chocolatey]]) but it happened decades after Linux have it already.
|
|
Better late than never, I guess.]
|
|
To install a package, you just need a package manager which is installed on most Linux-based systems (e.g., ~apt install $PKG~, ~pacman -S $PKG~, ~nix-env -i $PKG~, ~guix package -i $PKG~).
|
|
|
|
Several of the problems I've encountered while practicing packaging (aside from unfamiliarity, of course) is of the following:
|
|
|
|
- How distinct each project could be in case they don't follow the standard.
|
|
Not really a problem as most of them has documentation available for it.
|
|
|
|
- Some of them are built with assumptions or a preset environment which may need patching.
|
|
|
|
- Sparse documentation for building the software.
|
|
Some of them are particularly intuitive but in case it is lacking, you're on your own (unless they're open for discussions and pull requests).
|
|
|
|
The process of software packaging might vary but in my case, it is pretty straightforward with [[file:2020-09-04-16-07-47.org][Nix package manager]] (though not-so-great with its [[https://nixos.org/learn.html][documentation]]) and even more so with [[file:2020-08-19-08-21-44.org][GNU Guix]] with its [[https://guix.gnu.org/help][open communication and well-made documentation]].
|