Jump to page content

Repositories

Caveats

Most if not all pages are just rough notes, and these pages as a whole are far from complete. More notes will be added in time, eventually, maybe.

If, from reading these notes, you conclude that I am off my rocker, you won’t be the first, and you may even be right. These pages may simply position me as an acolyte to the late Gene Ray.

No doubt there are a dozen and one reasons why none of this would ever work, but perhaps somewhere deep down there is a tiny fragment that could be used for something.

Overview

There is almost certainly going to be at least one official repository, for software that does not merit inclusion in the standard distribution. Repositories also allow for different distribution sizes, such as full and minimal, and differing levels of completion.

For third-party software there are two models: repository-based and independent hosting. Linux largely prefers the repository-based model, where a great deal of software is hosted in the official repositories for the distribution, and both iOS and Android have application stores where all software is meant to be found. Microsoft Windows traditionally favoured the independent-hosted approach where software vendors hosted their own downloads, in whatever manner suited them. Microsoft have since created their own store but it is not mandatory and even their own software does not all use it.

Software supplied from a central repository is supposed to be vetted and safe, but this is never guaranteed to be true. Apple are quite obstinate about this, while Linux lets you install software from packages downloaded directly from third-party vendors if needed.

Possible model

Users will be able to select from one of a number of package streams:

  1. Bleeding edge
  2. Beta
  3. Stable (as in Ubuntu)
  4. Conservative (as in Debian)

As with Linux, users can also add extra repositories.

Packages will try to satisfy their dependencies within their own repository first. A package from Conservative will look for its dependencies in Conservative, and fall back to Stable otherwise (although the odds of this succeeding is slim due to API/ABI changes between Conserative and Stable). More specifically, a package in a custom repository will try to find more packages from that same repository first, and then look in Stable or Conservative otherwise (depending on system configuration).