2 stable releases

new 1.1.0 Apr 14, 2025
1.0.0 Apr 7, 2025
0.1.5 Apr 7, 2025
0.1.4 Sep 13, 2024

#1031 in Command line utilities

Download history 221/week @ 2025-04-07

221 downloads per month

BSD-3-Clause

49KB
1.5K SLoC

Please Installer

Please Installer is a unified interface package manager for many OSes inspired by UPT. Even though it has started as a fork from UPT, Please Installer was completely rewritten from scratch.

Please Installer is a beta release, not much is properly tested.

Such as UPT, Please Installer relies on the platform’s package manager to perform its tasks.

Installation

First install rustup using your system package manager, and then run:

rustup toolchain install nightly-2024-09-01
cargo +nightly-2024-09-01 install please-install

Note that, in order to use cargo and please on Posix systems, you need to put $CARGO_HOME/bin (usually $HOME/.cargo/bin) into PATH.

Development version

In order to install from HEAD, use the command:

cargo +nightly-2024-09-01 install please-install --git=https://github.com/cacilhas/please.git

Usage

❯ please help
A unified interface package manager for many OSes

Usage: please [OPTIONS] [DEFAULT_VENDOR] <COMMAND>

Commands:
  install        install package(s)
  reinstall-all  reinstall known installed package(s)
  remove         remove package(s)
  upgrade        upgrade package(s)
  search         search for package(s)
  info           get info for a package
  update         update database
  list           list installed packages
  list-vendors   list available vendors
  help           Print this message or the help of the given subcommand(s)

Arguments:
  [DEFAULT_VENDOR]  [possible values: unknown, upt, cargo, go, npm, uv, pkgx, apt, yay, yum, pacman, rua, apk, emerge, guix, nix-env, slackpkg, cards, dnf, eopkg, opkg, urpm, xbps, zypper, flatpak, snap]

Options:
  -x, --skip-settings    skip settings
  -c, --config <CONFIG>  configuration file
  -d, --dry-run          dry run (do not actually execute commands)
  -y, --yes              assume yes for all prompts
  -s, --su               run as root (user must be sudoer)
  -v, --vendor <VENDOR>  set the installer command [possible values: unknown, upt, cargo, go, npm, uv, pkgx, apt, yay, yum, pacman, rua, apk, emerge, guix, nix-env, slackpkg, cards, dnf, eopkg, opkg, urpm, xbps, zypper, flatpak, snap]
  -h, --help             Print help
  -V, --version          Print version

❯ please help install install package(s)

Usage: please install [OPTIONS] [PACKAGE]...

Arguments: [PACKAGE]... package(s) to be installed

Options: -x, --skip-settings skip settings -c, --config configuration file -d, --dry-run dry run (do not actually execute commands) -y, --yes assume yes for all prompts -s, --su run as root (user must be sudoer) -v, --vendor set the installer command [possible values: unknown, upt, cargo, go, npm, uv, pkgx, apt, yay, yum, pacman, rua, apk, emerge, guix, nix-env, slackpkg, cards, dnf, eopkg, opkg, urpm, xbps, zypper, flatpak, snap] -h, --help Print help


Supported vendors (backend package managers) are basically the same supported by
UPT:

| OS                                                   | Tools                |
|------------------------------------------------------|----------------------|
| windows                                              | scoop, choco, winget |
| macos                                                | brew, port           |
| ubuntu, debian, linuxmint, pop, deepin, elementary kali, raspbian, aosc, zorin, antix, devuan, bodhi, lxle, sparky | apt, snap, flatpak   |
| fedora, redhat, rhel, amzn, ol, almalinux, rocky, oubes, centos, qubes, eurolinux | dnf, yum, flatpak |
| arch, manjaro, endeavouros, arcolinux, garuda, antergos, kaos | pacman, yay, flatpak |
| alpine, postmarket                                   | apk                  |
| opensuse, opensuse-leap, opensuse-tumbleweed         | zypper, flatpak      |
| nixos                                                | nix-env, flatpak     |
| gentoo, funtoo                                       | emerge, flatpak      |
| void                                                 | xbps, flatpak        |
| mageia                                               | urpm, flatpak        |
| slackware                                            | slackpkg, flatpak    |
| solus                                                | eopkg, flatpak       |
| openwrt                                              | opkg, flatpak        |
| nutyx                                                | cards, flatpak       |
| crux                                                 | prt-get, flatpak     |
| freebsd, ghostbsd                                    | pkg                  |
| android                                              | termux               |
| haiku                                                | pkgman               |

## Settings

Please Installer can read settings from a configuration file in [TOML][] format
supplied by the option `--config=<CONFIG>`, by default
`$XDG_CONFIG_HOME/please.toml`.

Valid options and default values are:

assume-yes = false # assume yes for all prompts su = false # run as root (user must be sudoer) vendor = "" # use a specific package manager from the available list pager = "" # use a specific pager to paginate search and list; in search, $args is replaced by the query


The default pager is given by `PAGER` environment variable; if it’s supplied in
the configuration file, Please Installer will assume `--paginate`.

You also may supply sessions to add per-subcommand settings. Valid
sessions are `[install]`, `[remove]`, `[update]`, `[upgrade]`, `[search]`, and
`[list]`.

Suggested configuration file:

```toml
assume-yes = true

[install]
su = true

[list]
pager = "bat --file-name='installed packages'"

[remove]
su = true

[search]
pager = "bat --file-name='search $args'"

[upgrade]
su = true

[update]
su = true

Note

Var data is stored in $XDG_DATA_HOME/info.cacilhas.info directory.

Known bugs

Check open issues for known bugs and feature requests.

License

This software is licensed under the BSD-3-Clause License.

Dependencies

~6–17MB
~247K SLoC