Except they aren&#x27;t. Not even remotely. The package for some scripting language like python or PHP might have binaries it&#x27;s depending on, or might have a code written in another language. Pretty much any project-wise language-specific dependency manager can include something that is not actually a library or a bunch of source code, but an <i>utility</i> exposed globally (like unit-testing tool or framework code generator). There are dozens of projects which started out as a domain-specific library (and thus subject for being operated via PDM or LPM <i>only</i>) and soon end up being used as an utility, useful for end-user (because difference between a library and a tool here was a 50 lines of code, exposing some existing methods and which we would like to have anyway for testing). Such tool then is installed via several package managers (and additionally from the source code, because github is far ahead of your PM repository, yeah…) and can cause version incompatibility problems or something even more obscure. And that&#x27;s just from the top of my head: there can be hundreds of cases which I did not remember right now or even think of, ever. And neither have you.<p>In fact, pretending that these are <i>different things</i> and that &quot;developer&quot; is something drastically different from &quot;user&quot; is precisely the reason, why all (or, well, <i>most</i>) package managers in existance are so fucked up. The hard truth we must accept before we talk about package managers is that there&#x27;s no hard lines in this domain. It&#x27;s a complex problem and must be dealt with accordingly, without exceptional reductionism.