About dpr

A meta-package interface to most common packaging systems. Instead of learning the syntax of a package manager, let dpr do the translation for you.

The problem

Imagine you are using more than one operating system. Or even more than one flavour of Linux. Every time you switch from Debian to Fedora, to Manjaro, to Windows, to OSX, you have to use another package manager with different incompatible syntax.

Even if you are well aware of the current operating system, do you always remember by heart how to uninstall a package, how to search for a file or how to upgrade your system? Wouldn't be better if you can stick to one syntax, the one you know better, and manage all package managers with the same syntax?

The solution

Then dpr might be for you. dpr could be used as a command line proxy, to manage the different command line switches of the current package manager. And it is multi-platform. The syntax is the same no matter if you are using apt or brew or choco. dpr will try to figure out what you mean and execute the appropriate command.

dpr doesn't replace the current system's package management. On the contrary it utilizes the operating system package manager to perform the actual commands.

The caveat

dpr doesn't support all available commands. Neither has a complex argument parsing system. It is basically trying to do all common tasks, and especially those who are similar acrosss package managers.

If you need to do some specific tasks, then the only way to do this is through the original packaging commands, except if your just want to fine tune a well known command.

Documentation

The list of available dpr-specific commands could be retrieved when the --help command line argument is provided. First it will show its own arguments and then it will nadover the argument to the underlying command.

Face is the name of the argument interface. It is required to select one in order for dpr to know how to handle the user arguments. The first time you run dpr, it will ask you to select a face. If no selection is made, then a default internal "dpr" face will be used with the following commands:

  • info: present information about a specific package
  • install: install a package
  • list: list installed packages
  • list [PACKAGE]: show files contained in a package
  • remove: uninstall a package
  • search: search for a package
  • where: search for the appearance of a file in packages
  • update: update the package database with the latest package information
  • upgrade upgrade all upgradable packages
  • upgrade [PACKAGE]: upgrade a specific package
Please note that the actual argument syntax is dependent of the face being selected.

Target is the name of the underlying packager. Usually it is selected automatically based on the operating system and the availablity of package managers. Otherwise it might be required to explicitly define it.

Installation

Automatic installation

The following command will install dpr as an executable under the ~/bin folder:

curl https://dpr.yot.is/get | bash -
or under windows
curl.exe https://dpr.yot.is/get | cmd.exe

Precompiled binaries

There are precompiled binaries for all supported operating systems in GitHub.

Manual installation

Please download the source code from GitHub. You need to have a nim compiler installed. Then execute a make default to compile dpr.