xpm 0.22.0 copy "xpm: ^0.22.0" to clipboard
xpm: ^0.22.0 copied to clipboard

Universal package manager for any unix-like distro including macOS. Also experimental Windows support.

xpm - uniX Package Manager #

What is xpm? #

XPM is a package manager for unix systems like Linux, BSD, MacOS, etc. It can be a wrapper for native package managers or a package manager itself by using its way of installing packages.

Our key values #

  • Easy to install, update, remove and search (and filter)
  • No questions asked, can run in a non-interactive way
  • Easy to create new installers or a full repository
  • Be agnostic, following unix standards and relying on very known tools
  • Include all popular distros, and macOS
  • Prefer native pm way and falls back to xpm way

Installation #

Just run the following command in your terminal:

curl -sL xpm.link | sh

Usage #

To search for a package:

xpm <package>

To install a package:

xpm i <package>

To remove a package:

xpm r <package>

For all commands, run xpm --help

How it works #

XPM provides a set of tools to let community create their installers, or a group of installers (repository). The only requirement is to follow the xpm spec. The spec is a set of bash functions that must be implemented in order to be a valid installer. The required methods are: install_any, remove_any, validate. The rest are optional, but highly recommended. The others can be: install_apt, install_pacman, etc.

Architecture #

XPM takes care of detecting the operating system and the package manager, and then it calls the installer. The installer is a bash script that follows the [xpm spec]. Before call the bash script, it provides important variables to the script, like the package manager available, xpm commands to let download files, move to binary system folder, change permissions, move|copy|delete files, and even create shortcuts. All of this without need to know or rely in the operating system.

XPM tries to use the native package manager way, but if it's not available, it will use its own way. For example, if you are using a debian based distro, and you want to install micro, it will use apt to install it. But if you are using a distro that doesn't have apt, it will use xpm to install it. The same happens with pacman and dnf, etc. If you want to know more about how it works, you can read the xpm spec.

Contribute with installers #

We have a main repository with many popular installers, but we need more. If you want to contribute with an installer, you can make a PR to xpm-popular. If you want to create a repository with your own installers, you can do it. Just follow the xpm spec.

Contribute to XPM #

CI tests

We rely on dart lang. If you want to contribute, just follow good practices and make a PR. We will review it and merge it if it's ok. Don't forget to run the tests before make a PR:

dart pub get && dart format --fix . && dart analyze && dart test

The binaries are automatically generated and published in the releases page.

License #

Our code uses BSD 4-Clause “Original” or “Old” License

Dart SDK and his own packages are licensed under the BSD 3-Clause "New" or "Revised" License

3
likes
0
pub points
0%
popularity

Publisher

verified publisherverseles.com

Universal package manager for any unix-like distro including macOS. Also experimental Windows support.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

all_exit_codes, args, console, console_bars, crypto, dio, dloader, executable, interact, isar, path, process_run, pub_semver, slug

More

Packages that depend on xpm