Personal tools
     DOCUMENTATION

Conary:Collection Taxonomy

From rPath Wiki

Jump to: navigation, search
  Conary Developer Community Go to the community main page  

The following information describes the various collection mechanisms which Conary uses:

  • Repositories contain troves and files
  • Groups contain references to troves (anything except files)
    • A group, package, component, or fileset is a trove. A file is not a trove.
  • packages contain references to components
  • components contain references to files.
  • filesets contain references to files

Examples:

  • group-c-devel is a group
  • MAKEDEV is a package
  • MAKEDEV:sources is a component
  • dev is a package (note: built from MAKEDEV:sources)
  • dev:runtime is a component
  • tmpwatch is a package
  • tmpwatch:runtime is a component
  • fileset-minboot is a fileset

Files

  • A file is content, permissions, mtime, flags, EAs, ACLs (analog of an inode)
  • A file reference is path, fileId, version (analog of a directory entry in a versioning filesystem)

In respect to files, a repository is like a Unix filesystem with versioning added; it contains a set of files (inodes) plus a structured set of troves referencing the files (directory structure).

Repositories

A repository is a collection of versions of troves and files with the following properties:

  • Self-referential integrity: Every reference within a repository to a version in that repository is satisfied within that repository.
  • Nothing can be erased from a repository

A cache or mirror has similar functionality to a repository from the standpoint of installing software, but it has key differences:

  • It does not necessarily contain every version of every item in it
  • It may represent more than one repository
  • Items may be erased

A mirror is populated programatically (replicating a whole repository, or a whole branch of a repository, or some other rule); a cache is populated as it is accessed. Actually, they are probably the same thing, configured differently; there might be many gradations of configuration between pure cache and pure mirror.

Neither exists at this time.

Databases

A database is specific to an individually-installed system, and contains the information about the system that cannot be inferred from the installed filesystem

  • state of the locally-installed troves (including file references, but not files, except for config files)
  • various indexes

The label local@local:LOCAL is reserved to mean the local database and filesystem of an installed system.

Summary

RepositoryCache/MirrorInstalled System
All versions of troves and filesof multiple repositoriesdatabase
Cannot erasedemand/policy