Skip to content

prodigeni/xbps

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XBPS

The X Binary Package System (in short XBPS) is a new binary package system designed and implemented from scratch. Its goal is to be fast, easy to use, bug-free, featureful and portable as much as possible.

The XBPS code is totally compatible with POSIX/SUSv2/C99 standards, and released with a Simplified BSD license (2 clause). There is a well documented API provided by the XBPS Library that is the basis for its frontends to handle binary packages and repositories. Some highlights:

  • Supports multiple local and remote repositories (FTP/HTTP/HTTPS).
  • SHA256 hashes for package metadata, files and binary packages.
  • Supports package states (ala dpkg) to mitigate broken package installs/updates.
  • Ability to resume partial package install/updates.
  • Ability to unpack only files that have been modified in package updates.
  • Ability to use virtual packages.
  • Ability to replace packages.
  • Ability to put packages on hold (to never update them. NEW in 0.16).
  • Ability to preserve/update configuration files.
  • Ability to force reinstallation of any installed package.
  • Ability to downgrade any installed package.
  • Ability to execute pre/post install/remove/update scriptlets.
  • Ability to check package integrity: missing files, hashes, missing or unresolved (reverse)dependencies, dangling or modified symlinks, etc.
  • Low memory footprint.
  • Fast dependency resolver and sorting algorithms.

The latest stable version 0.25 was released on July 5th, 2013.

Build requirements

To build this you'll need:

and optionally:

Build instructions

Standard configure script (not generated by GNU autoconf).

./configure --prefix=/blah
make -jX
make install

By default PREFIX is set /usr/local and may be changed by setting --prefix in the configure script. The DESTDIR variable is also supported at the install stage.

There are some more options that can be tweaked, see them with `./configure --help'.

Good luck!