smart-oxe /

Filename Size Date modified Message
contrib
sandbox
smart
375 B
10.8 KB
17.6 KB
313 B
2.7 KB
399 B
71 B
2.4 KB
5.2 KB

Features

Global:

  • Modular.
  • Interface creation is simple.
  • Backend based, completely package-manager-agnostic.
  • Easily portable for any package manager.

Priority system:

  • Packages with higher priorities are considered a better option even when package versions state otherwise.
  • Using priorities one may avoid unwanted upgrades, force downgrades, select packages in given channels as preferential, and other kinds of interesting setups.
  • When a package has no explicit priority, the channel priority is used. The channel priority may be changed using the 'channel' command, and defaults to 0 when not set.

Mirror system:

  • Mirrors are URLs that supposedly provide the same contents as are available in other URLs, named origins.
  • There is no internal restriction on the kind of information which is mirrored. Once an origin URL is provided, and one or more mirror URLs are provided, these mirrors will be considered for any file which is going to be fetched from an URL starting with the origin URL.
  • Whether the mirror will be chosen or not will depend on the history of downloads from this mirror and from other mirrors for the same URL.
  • Mirrors are automatically balanced so that the faster mirrors and with less errors are chosen.
  • When errors occur, the next mirror is tried.

Cache system:

  • Recognizes multiple versions of the same package name.
  • Package names decoupled from the upgrade procedure. Only thing that matters is upgrades relations, which are introduced implicitly by the loader system, when necessary.

Dependency solving algorithm:

  • Very fast.
  • Works by computing weights for different alternatives.
  • Different notions of weight implemented by separate policies. Policies for upgrading, removing and installing are implemented.
  • Upgrades select the best option, not the latest available version.
  • Algorithm is smart enough to even reinstall a package if necessary, if it detects that different packages with same name-version have different relations, and the one not installed is a better option.
  • Works with broken packages in the system. Only packages which are related to the operations being made will be checked for correctness (may be instructed to fix everything if desired).

Downloading system:

  • Very fast

  • Easily extensible

  • Multi-threaded

  • Download resuming

  • Timestamp checking

  • Parallel threaded uncompression

  • Natively supported schemes:
    • file
    • ftp
    • http
    • https
    • scp
  • Additional schemes when pycurl is available:
    • ftps
    • telnet
    • dict
    • ldap

Supported channel/repository formats

  • APT-RPM
  • URPMI
  • RPM metadata
  • Plain RPM header lists
  • Local directory with RPM files
  • Red Carpet
  • Slackware Package Repository
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.