This package manager does what you want. pkgmgr isn’t afraid to package software. We’ll package X Window Server, TeX Live, macFUSE, any free, non-free, open-source, or closed-source software regardless of license.
We use standard time-tested nomenclature. Packages are called packages. The package repository is called the package repository. Binaries are binaries and source code is source code.
Any UNIX base installation should be able to bootstrap pkgmgr. For the most part pkgmgr is implemented with gmake (GNU Make) and sh (the POSIX shell or a Bourne compatible shell).
pkgmgr works in two modes: system mode and project mode. System mode manages packages for your operating system. Project mode manages packages for a project.
Each package is selected from the FreeBSD Ports Collection and
translated from a FreeBSD port into a pkgmgr package. If a package has
a Selectfile it may select some variables, rules, patches, or other
components from other sources. For instance MacPorts tends to have the
better package descriptions, so we often import description and
long_description from MacPorts. If another ports collection has some
preferable attribute for a package we select the preferable attribute.
Package names and categories are likewise selected based on some notion of better or best, but are always indexed so a user of any of the package managers can easily find and install packages without fuss.
If a pakage repository has a package that others don’t we try to include it, even if it is old, abandoned, or there’s only one person on the planet that uses it.
Don’t do anything unless the user explicitly request it to be done.
- Don’t upgrade a package unless requested
- Don’t update the package repository unless requested
- Don’t remove or uninstall anything unless requested
Additionally
- Don’t break the user’s system
- Don’t break packages or builds
- Facilitate both stable and cutting edge use
- A user should be able to use their packages for years without needing to upgrade or reinstall
- A user should be able to upgrade to new versions if they choose
- Don’t be cute or clever, just work