Building and installing¶
Package management¶
A built EPICS module is nothing more than executable and linkable files, data files (like database files or snippets), and metadata. An EPICS module prior to being built is composed of files to generate the built files. The act of installing is just to copy built files into a specific location; typically a standardised directory where your computer knows to look for libraries and binaries.
A package manager, or a package management system, is a collection of software tools to—as the name suggests—manage packages; that knows how to build software according to some standard, that knows where packages should go if building them as well as where to find them if installing them, and that knows where to install as well as where to find installed packages for a machine. In order to manage packages, four key components are necessary outside of the actual project code:
An installation/an intended target for installation
A registry for packages or for source code to produce packages
A (build) back-end
A front-end
When you use a package manager, like apt or npm or pip, you typically only
see the front-end; you do not have to specify where the packages can be found
(although you can often modify this path if you so wish; for example if you have
a custom registry), and you do not have to know about how packages actually have
been built—the only thing of importance is that there exists a built package
that is compatible with your system.