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.
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.
The --yes option makes every command as non-interactive as possible: all confirmation
prompts of the underlying package manager are automatically accepted. Without it, no prompt is
forced and every question reaches you. Read-only commands (search, info, list, files, where,
orphan) are unaffected.
Automatic installation
The following command will install dpr as an executable under the ~/.local/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.
You can contact me through the CrossMobile website