Dependency management in BSDs? reddit / BSD ---------------------------------------------------------------------- bitmadness · 2015-08-04 06:53 I've been using Fedora 22, and the best part is DNF, Fedora's new package manager, which uses advanced SMT methods to calculate dependencies. I've not had a single problem! What is the state of dependency management in the various BSDs? Are there any plans to put in a similar state of the art tool in any of them? ---------------------------------------------------------------------- phessler · 2015-08-04 12:30 OpenBSD has had state of the art dependency management for 10+ years for now. Glad to see Fedora catch up! ---------------------------------------------------------------------- Bceverly · 2015-08-04 14:02 It actually is quite impressive. Given that it takes about five minutes to install an OpenBSD virtual machine, I would highly recommend spinning one up and giving it a try. ---------------------------------------------------------------------- daemonpenguin · 2015-08-04 14:08 I think all of the BSDs have had similar dependency management for years. Package management on the BSDs automatically handles dependencies is usually faster than working with packages on Fedora. ---------------------------------------------------------------------- BumpitySnook · 2015-08-04 15:11 > I've been using Fedora 22, and the best part is DNF, Fedora's new package manager, which uses advanced SMT methods to calculate dependencies. I've not had a single problem! I didn't have problems with yum before dnf either. The change is mostly obnoxious to me in that it breaks my muscle memory and existing yum plugins. > What is the state of dependency management in the various BSDs? Are there any plans to put in a similar state of the art tool in any of them? Um... ports have had dependencies expressed similarly to spec/RPM forever. Nothing new there. pkgng (pkg(1)) is relatively new. I don't think it uses libsolv, for example, but I don't know that that's a problem. ---------------------------------------------------------------------- BumpitySnook · 2015-08-04 15:12 I'm not sure what distinction OP is trying to draw with "advanced SMT methods" or you with your "state of the art" comment. Fedora's had solid dependency management for 10+ years now too. ---------------------------------------------------------------------- BumpitySnook · 2015-08-04 15:13 > Package management on the BSDs automatically handles dependencies is usually faster than working with packages on Fedora. Citation needed? Dependencies have been automatic with yum on Fedora for ~10 years. ---------------------------------------------------------------------- daemonpenguin · 2015-08-04 18:28 I agree, Fedora has had decent dependency resolution for quite some time. I remember when Fedora Core 2 got YUM, it was a massive step in the right direction. I don't have any complaints with how Fedora's package manager resolves dependencies, only its speed, which is noticeably slower than just about every other Linux and BSD package manager. ---------------------------------------------------------------------- BumpitySnook · 2015-08-04 19:05 Fedora Core 2 was released in May 2004. I do recall yum being slower than other tools back in the mid-2000s. `apt-rpm` was available on Fedora at the time and worked as fast as `apt` anywhere else. As I remember it, sometime around Fedora Core 6 or 7 rpm was finally updated after a long period of stagnation and it broke `apt-rpm`. No one bothered to fix `apt-rpm`, so I switched back to yum. By that time it was fast enough, I think. This would have been Oct 2006 or May 2007 (depending on FC6 or 7). (I don't think yum is "noticeably slower than just about every other Linux and BSD package manager" anymore.) Meanwhile, pkgng has really only been usable for what, a year or so? The FreeBSD binary package servers were hacked in 2013 or 2014 and binary packages were yanked and not available for quite some time. Meanwhile `pkg(1)` still has some undesirable behaviors; [this blog post is from February 2015](http://ivoras.net/blog/tree/2015/Feb-why- freebsds-pkg-sucks.html). Ports itself may have fast dependency solving (I don't know), but of course that is entirely negated by the time required to compile everything from source :-). ---------------------------------------------------------------------- daemonpenguin · 2015-08-04 21:45 I tried DNF yesterday on a Fedora installation. It's still definitely notably slow compared to other package managers. Your post seem to indicate you think before pkg-ng on FreeBSD there was just ports. But prior to pkg-ng, there was pkg_add which also handled ports just fine for years. Binary package management with fast dependency resolution is not new to the BSDs. ---------------------------------------------------------------------- BumpitySnook · 2015-08-04 22:32 I don't have much experience with DNF yet, but I haven't noticed it being significantly slower than yum. Yum is still the primary packager on F21. I don't think binary packages were available prior to pkgng, whether pkg_add existed or not. Did they? And if so, did pkg_add automatically fetch dependencies? I think binary package management is rather new to the BSDs. ---------------------------------------------------------------------- mioelnir · 2015-08-05 02:30 > I don't think it uses libsolv, for example, but I don't know that that's a problem. While it does not use libsolv, it does use a SAT solver as well. ---------------------------------------------------------------------- rhavenn · 2015-08-05 07:07 Sure they did. They've had binary packages for a long time. Like 1997 or so at least. pkg_add worked, it just wasn't very good or flexible and ports allowed options. ---------------------------------------------------------------------- daemonpenguin · 2015-08-05 13:48 I didn't say DNF was slower than YUM. in fact, DNF is faster than YUM. (Which makes sense given its nature.) But DNF, while faster than YUM is still slower than just about every other binary package manager. Of course binary packages existed on FreeBSD before pkg-ng came along. FreeBSD's pkg_add was used to install binary packages (and resolve dependencies) for many years before pkg-ng existed. I've been using binary packages on FreeBSD with automatic dependency resolution for around a decade now.