create, install, list, pull, push, remove – trivial package management


contrib/create [ –d dependency ] [ –f ] [ –r root ] [ –u user ] [ –x exclude ] name name.proto
contrib/install [ –f ] [ –r root ] user/name
contrib/list [ –c | –v ] [ user | user/name ]
contrib/pull [ –c file ] [ –s file ] name
contrib/push name
contrib/remove name


Contrib is a simple package management system based on replica(1). It can be used to create, install, upgrade and remove software packages in the sources repository. To create a package and become its maintainer it is necessary to have an authenticated sources account and a contrib directory /n/sources/contrib/$user.
Create builds a new package name, and performs an initial push to sources. The file structure is defined by name.proto. The –f option can be used to force the recreation of the package. Dependencies can be specified with the –d name option. If the package is staged away from its final destination a root directory for the published package may be specified with –r root. If the user has a different name for their sources account from their current user account then this may be specified with the –u user option. Use the –x option to exclude the exclude files from the synchronization. When create runs it puts the current window into hold mode and reads text describing the package. The first line of this text is printed by contrib/list and should be a short summary of the package's contents.
Install the package name maintained by the user user to the local file system. The –f option forces the installation to continue irrespective of missing dependent packages. Packages are normally installed at / however an alternative root directory may be specified with –r root.
List the available packages and a one line description of each. The –v option produces a more verbose multi–line form. The –c option lists changes to the packages since the last pull if installed or the its creation if not.
Update the local package name from sources. Locally modified files cause a warning and are not overwritten unless the –c or –s options are used – as described in replica(1).
Used by the package maintainer to update the package name on sources from the local system.
When push runs it puts the current window into hold mode and reads text describing the changes to the package.
Print the commands necessary to remove the package name, this allows the commands to be edited before they are sent to the shell. The commands printed for files which have been modified with respect to the repository are commented out.


Install the abaco web browser.
% contrib/install fgb/abaco


/usr/$user/lib/replica          databases of packages created locally.
/dist/replica/*                 databases of packages installed locally.
/n/sources/contrib/rob/replica   database of rob's packages.
/n/sources/contrib/rob/root      files representing in rob's packages.




proto(2), replica(1), replica(8)


Send bug reports to