What are binary and source packages?

While learning to use a Linux or BSD dedicated server, you are likely to encounter the terms binary and source software packages. Depending on your actual operating system, it may use one, the other or both as default methods of software installation.

A source package is a file archive that contains the full source code of a given software. In order to install that software, you would need to unpack that archive and build the software from source using whatever required building tools are necessary (i.e. make, cmake, or others).

Some operating systems, such as Gentoo or FreeBSD, will also provide package repositories that allow you to automatically build software from source. The advantage is that programs built from source are usually better optimized for your architecture and settings.

A binary package is one that is pre-compiled and built to general specifications that should be compatible with your OS and architecture but that may not be tailored to meet your specific settings. Most Linux distributions include binary package repositories that make installation easy. Binary packages require dependencies to match the specifications spelled out when the packages were originally built. Therefore, installing them manually can sometimes be a pain. When using a repository, however, they are easy to install and much faster than building from source.