5 ms·
To provide an alternate viewpoint, OPAM isn't that great of a package manager if you've come from other languages or have used a Linux distro's package manager.
by jonathanyc 10y ago
To provide an alternate viewpoint, OPAM isn't that great of a package manager if you've come from other languages or have used a Linux distro's package manager. It's incredibly slow, partly because you're supposed to use an external constraint solver. When it crashes, it leaves lots of things in an inconsistent state. It's environment handling is really picky and gives warnings about not being set up properly even when it is, because it used to (maybe still does) expect itself to be the last thing in a lot of environment variables. It is something I try to avoid when possible.
EDIT: Sorry, realized I replied to the wrong comment. Meant to reply to the grandparent.
- e_d_g_a_r 10y agoWhen it crashes it literally gives you the command to undo the damage. How many package managers do that?
- adrusi 10y agoBetter to not cause the damage in the first place, consolidate the parts of the transaction that were usefully completed into an isolated location, and provide a way to resolve the issue and resume the transaction. I think at least Pacman and Yum do this.
- jallmann 10y agoCalling failed builds "damage" is rather overstating it. If building a specific package fails, OPAM continues with as many other packages as it can. Arguably that's not even "transactional" in the atomic sense, but the behavior is pretty much what you said. Then it gives you the error, and gives you a command to roll back everything to the previous state -- something I cannot do with eg, apt, as far as I know. But that's a bit apples and oranges -- apt, yum, pacman, etc are all binary package managers, with a different set of tradeoffs.
- Drup 10y agoI'm really wondering to which package manager you are comparing, because except cargo, all the other language package managers are either worse, or just straight crap. Linux distro package managers are usually decent, but most of them are binary package managers and don't offer the same set of feature, so it's a bit different (and they are a fair bit older too).