Packaging Systems Comparison
Feature |
pkgsrc |
FreeBSD Ports |
OpenBSD Ports |
mports |
Gentoo Portage |
dpkg/rpm + apt |
Used by |
NetBSD, DragonflyBSD |
FreeBSD |
OpenBSD |
MidnightBSD |
Gentoo, Sabayon |
Ubuntu, Debian, Fedora, Redhat |
Source-based |
|
|
|
|
|
|
Binary Packages |
|
|
|
|
|
|
Primary Focus |
? |
src |
bin |
? |
src |
bin |
Packages and ports integration |
? |
? |
? |
|
||
"One to Many" Packages |
? |
|
? |
|
? |
|
"Sub" Packages |
|
|
|
|
|
|
Self-contained packages |
? |
? |
? |
? |
? |
? |
Isolated Builds |
|
(Poudriere) |
|
(recently) |
? |
|
PREFIX clean |
|
|
|
|
|
|
CFLAGS clean |
|
|
|
|
|
|
Customizable |
? |
? |
? |
? |
? |
? |
Rerrolled distfiles support |
? |
? |
? |
? |
? |
? |
Differential updates (deltas) |
? |
? |
? |
? |
? |
? |
MASTER_SITE priority/sorting |
? |
? |
? |
? |
? |
? |
Hack collection / porting scripts |
? |
? |
? |
? |
? |
? |
Parallel building |
? |
? |
? |
? |
? |
? |
Multiple versions of the same app |
(dirs) |
(dirs) |
? |
(dirs) |
(*.ebuild) |
(branches) |
Multiple coexisting versions of the same app (symlink/wrapper) |
? |
? |
? |
? |
? |
? |
Virtual ports/packages |
? |
|
? |
? |
|
|
Config files updating tool |
? |
? |
? |
? |
? |
? |
Startup scripts management tool |
? |
? |
? |
? |
? |
? |
Automatic restart of daemons |
? |
? |
? |
? |
? |
? |
Automatic packaging list |
? |
? |
? |
? |
? |
? |
Automatic management of users/groups |
? |
? |
? |
? |
? |
? |
Initial configuration and integration of apps |
? |
? |
? |
? |
? |
? |
License Framework |
? |
? |
? |
? |
? |
? |
Track moved ports |
|
|
? |
? |
? |
? |
Footnotes
There are source packages, which contain both the full source code of the program and local patches, and are manually compiled and uploaded by the maintainer. (1)
A Gentoo derivate called Sabayon is developing a tool called [http://en.wikipedia.org/wiki/Sabayon_Linux#Features entropy], which uses binmerge for binary packages. (2)
Some features are only supported by ports, like versioned dependencies. Also ports install directly, without generating packages. (3)
Ports create the package and then uses the package tools to install. (4)
Primary/Sub Ports and FLAVORS (5)
Packages are split in -doc, -dev, -common, -data, etc. The good point is that packages which don't depend on the architecture are built only once, runtime dependencies don't require headers, and documentation is optional. However to build anything you need all the -dev versions. (6)
References
Symbol |
Description |
|
Fully supported |
|
Partially supported, workaround used or WIP |
|
Not supported |
See also
PackageSystemsComparison for a more general discussion.
References
Infrastructure PRs usually contain patches, see also closed ones which were not committed.
Number of packages of Linux distributions (note that Debian and Ubuntu split most of them in components and offer many built with different options).
Conference paper about package management (with comparison and ideas): PDF TXT.
Lightweight FreeBSD package cluster in a jail (<!> TODO: take ideas from here).
Upak (effort to unify packages).
A discussion of what pkgsrc offers that FreeBSD does not.
Notes
MarkLinimon: If updating, you may wish to start with this netbsd-users mailing list: NetBSD vs FreeBSD thread
CategoryPorts CategoryPackages CategoryStale CategoryNeedsContent