Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

pkgmgr/pkgmgr

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pkgmgr - a universal package manager

About

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.

Dependencies

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).

Modes

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.

How pkgmgr curates its package repository

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.

Philosophy

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

About

a universal package manager

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.