I'm looking for a reasonably up-to-date and comprehensive web page that documents differences in how to use different package managers.
A page documenting usage of various package managers
package-management
Related Solutions
Binary packages are compiled with the assumption that they will be installed to specific locations in /
. This is not always easily changed, and it would take additional QA effort (which is difficult enough in the first place!) to determine whether specific binaries are or aren't relocatable.
To an extent, you can use things like fakechroot to create an entire system in a subdirectory as a non-root user, but this is tedious and fragile.
You will have better luck with source packages. Gentoo Prefix and Rootless GoboLinux are both package managers that can install to non-/
locations and may be usable by non-root
users.
The closest thing I've seen to what you're asking for is a project I found a while back on github called fpm
. Stands for Effing Package Manager.
Sources:
- gem (even autodownloaded for you)
- python modules (autodownload for you)
- pear (also downloads for you)
- directories
- rpm
- deb
- node packages (npm)
Targets:
- deb
- rpm
- solaris
- tar
- directories
The app fpm
is a Ruby gem so you install it like so:
$ gem install fpm
Once installed you can build a package as follows:
$ fpm -s <source type> -t <target type> [list of sources]...
OS Package Managers vs. Programming Language Managers
I would caution you in thinking of these as both package managers. OS packages are necessary to manage applications, but programming languages such as Perl, Ruby, and Python can be managed completely independent from the OS with tools such as:
- Python: pyenv, virtualenv, and virtualenvwrapper
- Perl: perlbrew
- Ruby: rvm
- R: Renv
None of the above programming language package managers require to be run as root. You can if you want to, but in general they manage both the base installation of the programming language in addition to any addon modules, gems, etc. that you install too. This is really the most appropriate way to manage programming languages such as these, especially if they're being setup on a system for a particular application's use.
For more examples see my answers to previous U&L questions where I've covered the programming language package managers:
Best Answer
The ArchLinux wiki provides a Rosetta Stone for various package managers.