2 stable releases
new 1.1.0 | Apr 14, 2025 |
---|---|
1.0.0 | Apr 7, 2025 |
0.1.5 |
|
0.1.4 |
|
#600 in Command line utilities
349 downloads per month
54KB
1.5K
SLoC
Please Installer
Please Installer is a unified interface package manager for many OSes inspired by UPT. Even 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 default stable
cargo 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
(nightly version), use the command:
cargo install please-install --git=https://codeberg.org/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
move move package to another vendor
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
You can call help
on subcommands as well:
❯ 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 <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
Or even a bit more complex:
❯ please help move from to
Usage: please move from <ORIGIN> to [OPTIONS] <DESTINATION>
Arguments:
<DESTINATION> destination 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 (in case 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
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, yum, 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 |
Alternative vendors:
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
on GNU/Linux, macOS, and BSD, or
%APPDATA%\please.toml
on Windows.
Valid options and default values are:
assume-yes = false # assume yes for all prompts if true
su = false # run as root (user must be sudoer) if true
vendor = "" # select a specific package manager from the available list
pager = "" # use the supplied pager to paginate search and list; in search, $args is replaced by the query
The default pager is given by the PAGER
environment variable.
You also may supply sections to add per-subcommand settings. Valid sections are
[install]
, [remove]
, [update]
, [upgrade]
, [search]
, and [list]
.
Suggested configuration file:
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.please/
directory on
GNU/Linux, macOS, and BSD, and %APPDATA%\info.cacilhas.please\
on Windows.
Known bugs
Check open issues for known bugs and feature requests.
License
This software is licensed under the 3-Clause BSD License.
- Copyright 🄯2024-2025 Rodrigo Cacilhas <montegasppa@cacilhas.info>
- COPYING
Dependencies
~6–17MB
~248K SLoC