beyondmeh / piu

Cross platform package manager wrapper

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

piu (Platform Independent Updater)

Skunk Logo

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

  • piu works 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 dpkg vs. apt
  • Print the number of updates available, suitable for use in a status bar or shell scripts
  • sudo automatically 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 u to apt update && apt upgrade

Currently Supports

Alpine Linux, Arch Linux, Debian, elementary OS, Fedora, macOS, Manjaro, Linux Mint, OpenSUSE, SteamOS, Ubuntu, and Void Linux

Alpine Linux   Arch Linux   Linux Mint   macOS   Ubuntu  

Elementary OS   Debian   Manjaro   Fedora   Void Linux OpenSUSE  

©️ 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/logo folder. 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.