piu
piu copied to clipboard
Cross platform package manager wrapper
piu (Platform Independent Updater)
piu makes cross-platform package management stink less.
piu is an all-in-one wrapper for different package managers. It was
born out of frustration over constantly typing the wrong command or
passing the wrong flags when on different Linux distros.
Features
piuworks the same across distros, no more memorising each package manager and its quirks- Auto-update package repositories if they're old when installing or upgrading the system (no need for additional flags).
- Includes a built-in option to install locally downloaded packages,
even when the standard package manager doesn't support that; such as
dpkgvs.apt - Print the number of updates available, suitable for use in a status bar or shell scripts
sudoautomatically if additional permissions are needed. No more...
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
- And most important: less typing! Compare
piu utoapt update && apt upgrade
Currently Supports
Alpine Linux, Arch Linux, Debian, elementary OS, Fedora, macOS, Manjaro, Linux Mint, OpenSUSE, SteamOS, Ubuntu, and Void Linux
:copyright: above brands, logos, and trademarks are property of their respective owners.
Installation
$ curl https://raw.githubusercontent.com/beyondmeh/piu/master/piu -o piu && chmod +x piu && sudo mv piu /usr/local/bin
Alternatively, if you have something like ~/bin setup, just download
piu there.
Uninstall
$ sudo rm /usr/local/bin/piu
Optional sudo Setup
While not required, if you will be using piu in a status bar script
you should setup sudo to allow the package manager to sync its cache
without prompting for a password.
This will allow piu to automatically refresh the package manager's
cache periodically. Otherwise, piu will simply state the cache is
out-of-date.
Add the following to /etc/sudoers, depending on your distribution:
apt (Debian & Ubuntu)
%wheel ALL=(ALL) NOPASSWD: /usr/bin/apt update
pacman (Arch Linux)
%wheel ALL=(ALL) NOPASSWD: /usr/bin/pacman -Sy
xbps (Void Linux)
%wheel ALL=(ALL) NOPASSWD: /usr/bin/xbps-install -S
NOTE: updating the package cache is relatively innocuous and safe to
perform automatically without password; it does not install, update, or
replace any programs. Most package managers need additional permissions
simply because the cache is usually in /var, where most users don't
have write permission.
Bug Reports
Submit bug reports via GitHub's Issue Tracker
Contributing
piu makes package manage stink even less thanks to all of its contributors, both on GitHub and elsewhere.
The project's skunk logo was drawn by the very talented Kelly. It has been digitized, cropped, and optimized for the web using GIMP and OptiPNG.
All the versions of the the logo, including the original drawing, are located in the
.readme-assets/logofolder. All versions of the skunk logo are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
If you can make piu better or add support for a missing distro, please feel free to submit a pull request. There are no further requirements, contributing to piu is easy and also doesn't stink!
License
Copyright © 2017 - 2023 BeyondMeh, except where otherwise noted.
Licensed under the ISC license.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.