FreeBSD: pkgng does not do everything like apt – get

Pkgng is a modern package manager for FreeBSD supposed to better manage the installation, upgrade and uninstallation of third-party packages. My reaction, like many was “an apt – get like on FreeBSD, finally!”. Yes, but it is necessary to differentiate the package management tool, and the binary deposits themselves.

Indeed, FreeBSD is an operating system that is composed of a set of software. But when you want another software, e.g. dovecot, historically it must use the ports. Ports, it is a tree containing scripts that will download the sources and compile the software and their dependencies. At the time of compile, a ncurses interface will offer the user to select the options he needs or not. For example, for dovecot, can activate or MySQL support.

FreeBSD supplied also deposits in which these third-party software are already compiled, we thus gain quite some time. But these binary versions do not allow to choose options. For example, dovecot has no MySQL support. What can be done if it is needed? Well it goes back to the ports, and it compiles.

Debian and apt – get solved this problem by cutting a package into several modules. For example, for dovecot, there are several packages, as seen here. The dovecot package will install the basic version. If you want mysql support, additionally installed package dovecot-mysql.

Pkgng and binary software deposits simply provide compiled versions of the ports. There is no management option, probably because these systems are designed to use one and the other at the same time. But in practice it is problematic. There is the same problem with PHP if php – fpm, it is an option to be enabled when compiling php55. The php55 version that comes binary deposits does not support php – fpm.

Pkgng does not as simple as Debian FreeBSD when it comes to managing packages, therefore not to be illusions. In practice, it still much used ports.