There are a lot of language-specific package managers like cpan for perl, cabal for haskell etc. When we want to install some software, it can sometimes be installed from a corresponding repo, with installation instruction just like (say, Yaxy) npm install yaxy or cpan something or cabal install something.

These package managers have slightly different syntaxes, they all need root privileges and/or custom setup, or (in case of Yaxy) just a newer version of interpreter (nodejs packaged by Ubuntu was too old to run it).

Is there a wrapper for different package managers that unifies/automates setup for different package managers?

Edit: what I want is a way to execute installation command like that npm install yaxy and make it working without manual installing system npm+nodejs, getting non-functional executable, finding the simplest way to install fresher nodejs on my system, reinstalling...

  • 3
    $0.02 I have a hard time seeing a need for that: if you can deal with the "slightly different syntaxes" between eg. perl and js and haskell, then surely the relatively minor differences between their package managers is inconsequential. Not to mention that they (or at least, the ones I've used) are already so incredibly simple making them even easier to use is a bit like the idea of "instant tea".
    – goldilocks
    Commented Jul 18, 2013 at 12:41
  • I think it may cause confusion because two or more of perl js and haskell could have the same name of packages.
    – eccstartup
    Commented Jul 18, 2013 at 12:44
  • I said package managers' syntaxes differ slightly, not languages of course. Well, now I better understand my question so I'll rewrite it. The main point is that I'd like to just install utility packaged as programming language module using single command and not doing initial manual setup like installing RVM.
    – AvImd
    Commented Jul 18, 2013 at 21:57
  • 1
    Does this answer your question? Why isn't there a truly unified package manager for Linux?
    – dank8
    Commented May 10, 2023 at 2:36
  • 1
    @dank8 it does not. A tool like Nix might but I haven't worked with it yet to be able to tell.
    – AvImd
    Commented May 12, 2023 at 18:19

1 Answer 1


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.


  • gem (even autodownloaded for you)
  • python modules (autodownload for you)
  • pear (also downloads for you)
  • directories
  • rpm
  • deb
  • node packages (npm)


  • 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:

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:

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .