On Fri, 2020-12-18 at 14:11 +0200, Adrian Bunk wrote:
> On Fri, Dec 18, 2020 at 09:11:42AM +0100, Raphael Hertzog wrote:
> > On the top of my head:
> > - as a user, I like to have to only know about "apt/dpkg" instead
> >   of pip/npm/gem/...
> 
> This sounds as if you are making the case for a higher level tool
> that calls lower level tools like apt and npm.

While there have been several attempts at a universal packaging system
(Nix, RPM, Dpkg/apt, pacman...), none have truly come to be the "one true
system".  Further, simply implementing such a system as an abstraction of
several underlying systems would be impossible, from a design perspective.

Every packaging system treats installed packages differently.  NPM will
favor just installing into a local folder: pip has a separate set of
installed packages for every python version.  Gem permits many versions of
the same package to be co-installed: apt would literally explode if you
tried that [1].

Almost none of these packaging tools are really intended to install end-
user programs.  They leave that task up to the distribution.  Yes, sure,
many of them will try it: but when was the last time you saw an Electron
app on the npm registry, or a PyQT app that didn't recommend you install
some things separately with apt?  Our theoretical system would need to
locate such packages and their dependencies, even when such dependencies
are on many disparate packaging systems.  It would need to manage numerous
different views of the list of installed package, some of which are
completely inconsistent.  

Furthermore, look at namespacing.  If I call magic-installer imagemagick,
do I mean the NPM package, or the apt package?  Both?  I'm sure you could
find an example of a single package name duplicated across all the various
managers: imagemagick was just the first to come to mind.  And if you say,
"well, obviously, every package name would be prefixed with its manager",
then why are we even bothering with this exercise, when we could just use
the manager?

While I do agree that it would be great if things like this could work
more smoothly, I have to disagree that the way to do that is through
another package manager.  The limitations on our current tools are a
direct result of their design requirements: I can't see that changing
soon.

[1]: Trust me: since I tried, I was never able to regrow my eyebrows, and
I still find chunks of .deb files all over the house.

Thanks for reading,
Calum

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to